diff --git a/contracts/zero-ex/CHANGELOG.json b/contracts/zero-ex/CHANGELOG.json index 50f9e195db..69e75db6b6 100644 --- a/contracts/zero-ex/CHANGELOG.json +++ b/contracts/zero-ex/CHANGELOG.json @@ -13,6 +13,10 @@ { "note": "Add `MetaTransactions` and `SignatureValidator` features", "pr": 2610 + }, + { + "note": "Update `TransformERC20` and `MetaTransactions` to handle signed calldata.", + "pr": 2626 } ], "timestamp": 1594788383 diff --git a/contracts/zero-ex/contracts/src/IZeroEx.sol b/contracts/zero-ex/contracts/src/IZeroEx.sol new file mode 100644 index 0000000000..c1ccfb28e3 --- /dev/null +++ b/contracts/zero-ex/contracts/src/IZeroEx.sol @@ -0,0 +1,53 @@ +/* + + Copyright 2020 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.6.5; +pragma experimental ABIEncoderV2; + +import "./features/IOwnable.sol"; +import "./features/ISimpleFunctionRegistry.sol"; +import "./features/ITokenSpender.sol"; +import "./features/ISignatureValidator.sol"; +import "./features/ITransformERC20.sol"; +import "./features/IMetaTransactions.sol"; + + +/// @dev Interface for a fully featured Exchange Proxy. +interface IZeroEx is + IOwnable, + ISimpleFunctionRegistry, + ITokenSpender, + ISignatureValidator, + ITransformERC20, + IMetaTransactions +{ + // solhint-disable state-visibility + + /// @dev Fallback for just receiving ether. + receive() external payable; + + // solhint-enable state-visibility + + /// @dev Get the implementation contract of a registered function. + /// @param selector The function selector. + /// @return impl The implementation contract address. + function getFunctionImplementation(bytes4 selector) + external + view + returns (address impl); +} diff --git a/contracts/zero-ex/contracts/src/features/IMetaTransactions.sol b/contracts/zero-ex/contracts/src/features/IMetaTransactions.sol index 16be3986b8..0c9f4e4b9a 100644 --- a/contracts/zero-ex/contracts/src/features/IMetaTransactions.sol +++ b/contracts/zero-ex/contracts/src/features/IMetaTransactions.sol @@ -28,7 +28,7 @@ interface IMetaTransactions { /// @dev Describes an exchange proxy meta transaction. struct MetaTransactionData { // Signer of meta-transaction. On whose behalf to execute the MTX. - address signer; + address payable signer; // Required sender, or NULL for anyone. address sender; // Minimum gas price. diff --git a/contracts/zero-ex/contracts/src/features/ITransformERC20.sol b/contracts/zero-ex/contracts/src/features/ITransformERC20.sol index 416c47eb62..b9a8894219 100644 --- a/contracts/zero-ex/contracts/src/features/ITransformERC20.sol +++ b/contracts/zero-ex/contracts/src/features/ITransformERC20.sol @@ -37,6 +37,33 @@ interface ITransformERC20 { bytes data; } + /// @dev Arguments for `_transformERC20()`. + struct TransformERC20Args { + // The taker address. + address payable taker; + // The token being provided by the taker. + // If `0xeee...`, ETH is implied and should be provided with the call.` + IERC20TokenV06 inputToken; + // The token to be acquired by the taker. + // `0xeee...` implies ETH. + IERC20TokenV06 outputToken; + // The amount of `inputToken` to take from the taker. + // If set to `uint256(-1)`, the entire spendable balance of the taker + // will be solt. + uint256 inputTokenAmount; + // The minimum amount of `outputToken` the taker + // must receive for the entire transformation to succeed. If set to zero, + // the minimum output token transfer will not be asserted. + uint256 minOutputTokenAmount; + // The transformations to execute on the token balance(s) + // in sequence. + Transformation[] transformations; + // The hash of the calldata for the `transformERC20()` call. + bytes32 callDataHash; + // The signature for `callDataHash` signed by `getQuoteSigner()`. + bytes callDataSignature; + } + /// @dev Raised upon a successful `transformERC20`. /// @param taker The taker (caller) address. /// @param inputToken The token being provided by the taker. @@ -57,12 +84,23 @@ interface ITransformERC20 { /// @param transformerDeployer The new deployer address. event TransformerDeployerUpdated(address transformerDeployer); + /// @dev Raised when `setQuoteSigner()` is called. + /// @param quoteSigner The new quote signer. + event QuoteSignerUpdated(address quoteSigner); + /// @dev Replace the allowed deployer for transformers. /// Only callable by the owner. - /// @param transformerDeployer The address of the trusted deployer for transformers. + /// @param transformerDeployer The address of the new trusted deployer + /// for transformers. function setTransformerDeployer(address transformerDeployer) external; + /// @dev Replace the optional signer for `transformERC20()` calldata. + /// Only callable by the owner. + /// @param quoteSigner The address of the new calldata signer. + function setQuoteSigner(address quoteSigner) + external; + /// @dev Deploy a new flash wallet instance and replace the current one with it. /// Useful if we somehow break the current wallet instance. /// Only callable by the owner. @@ -95,27 +133,9 @@ interface ITransformERC20 { returns (uint256 outputTokenAmount); /// @dev Internal version of `transformERC20()`. Only callable from within. - /// @param callDataHash Hash of the ingress calldata. - /// @param taker The taker address. - /// @param inputToken The token being provided by the taker. - /// If `0xeee...`, ETH is implied and should be provided with the call.` - /// @param outputToken The token to be acquired by the taker. - /// `0xeee...` implies ETH. - /// @param inputTokenAmount The amount of `inputToken` to take from the taker. - /// @param minOutputTokenAmount The minimum amount of `outputToken` the taker - /// must receive for the entire transformation to succeed. - /// @param transformations The transformations to execute on the token balance(s) - /// in sequence. + /// @param args A `TransformERC20Args` struct. /// @return outputTokenAmount The amount of `outputToken` received by the taker. - function _transformERC20( - bytes32 callDataHash, - address payable taker, - IERC20TokenV06 inputToken, - IERC20TokenV06 outputToken, - uint256 inputTokenAmount, - uint256 minOutputTokenAmount, - Transformation[] calldata transformations - ) + function _transformERC20(TransformERC20Args calldata args) external payable returns (uint256 outputTokenAmount); @@ -134,4 +154,11 @@ interface ITransformERC20 { external view returns (address deployer); + + /// @dev Return the optional signer for `transformERC20()` calldata. + /// @return signer The transform deployer address. + function getQuoteSigner() + external + view + returns (address signer); } diff --git a/contracts/zero-ex/contracts/src/features/MetaTransactions.sol b/contracts/zero-ex/contracts/src/features/MetaTransactions.sol index 55b73ed92d..975520a6a5 100644 --- a/contracts/zero-ex/contracts/src/features/MetaTransactions.sol +++ b/contracts/zero-ex/contracts/src/features/MetaTransactions.sol @@ -26,6 +26,7 @@ import "../fixins/FixinCommon.sol"; import "../fixins/FixinEIP712.sol"; import "../migrations/LibMigrate.sol"; import "../storage/LibMetaTransactionsStorage.sol"; +import "./libs/LibSignedCallData.sol"; import "./IMetaTransactions.sol"; import "./ITransformERC20.sol"; import "./ISignatureValidator.sol"; @@ -43,18 +44,27 @@ contract MetaTransactions is using LibBytesV06 for bytes; using LibRichErrorsV06 for bytes; - /// @dev Intermediate state vars to avoid stack overflows. + /// @dev Intermediate state vars used by `_executeMetaTransactionPrivate()` + /// to avoid stack overflows. struct ExecuteState { + // Sender of the meta-transaction. address sender; + // Hash of the meta-transaction data. bytes32 hash; + // The meta-transaction data. MetaTransactionData mtx; + // The meta-transaction signature (by `mtx.signer`). bytes signature; + // The selector of the function being called. bytes4 selector; + // The ETH balance of this contract before performing the call. uint256 selfBalance; + // The block number at which the meta-transaction was executed. uint256 executedBlockNumber; } - struct TransformERC20Args { + /// @dev Arguments for a `TransformERC20.transformERC20()` call. + struct ExternalTransformERC20Args { IERC20TokenV06 inputToken; IERC20TokenV06 outputToken; uint256 inputTokenAmount; @@ -379,7 +389,7 @@ contract MetaTransactions is // | transformations (offset) | 160 | = 32 // | transformations (data) | 192 | - TransformERC20Args memory args; + ExternalTransformERC20Args memory args; { bytes memory encodedStructArgs = new bytes(state.mtx.callData.length - 4 + 32); // Copy the args data from the original, after the new struct offset prefix. @@ -388,8 +398,8 @@ contract MetaTransactions is uint256 fromMem; uint256 toMem; assembly { - // Prefix the original calldata with a struct offset, - // which is just one word over. + // Prefix the calldata with a struct offset, + // which points to just one word over. mstore(add(encodedStructArgs, 32), 32) // Copy everything after the selector. fromMem := add(fromCallData, 36) @@ -398,20 +408,27 @@ contract MetaTransactions is } LibBytesV06.memCopy(toMem, fromMem, fromCallData.length - 4); // Decode call args for `ITransformERC20.transformERC20()` as a struct. - args = abi.decode(encodedStructArgs, (TransformERC20Args)); + args = abi.decode(encodedStructArgs, (ExternalTransformERC20Args)); } + // Parse the signature and hash out of the calldata so `_transformERC20()` + // can authenticate it. + (bytes32 callDataHash, bytes memory callDataSignature) = + LibSignedCallData.parseCallData(state.mtx.callData); // Call `ITransformERC20._transformERC20()` (internal variant). return _callSelf( state.hash, abi.encodeWithSelector( ITransformERC20._transformERC20.selector, - keccak256(state.mtx.callData), - state.mtx.signer, // taker is mtx signer - args.inputToken, - args.outputToken, - args.inputTokenAmount, - args.minOutputTokenAmount, - args.transformations + ITransformERC20.TransformERC20Args({ + taker: state.mtx.signer, // taker is mtx signer + inputToken: args.inputToken, + outputToken: args.outputToken, + inputTokenAmount: args.inputTokenAmount, + minOutputTokenAmount: args.minOutputTokenAmount, + transformations: args.transformations, + callDataHash: callDataHash, + callDataSignature: callDataSignature + }) ), state.mtx.value ); diff --git a/contracts/zero-ex/contracts/src/features/SignatureValidator.sol b/contracts/zero-ex/contracts/src/features/SignatureValidator.sol index 27a8251868..b7e6b1b71a 100644 --- a/contracts/zero-ex/contracts/src/features/SignatureValidator.sol +++ b/contracts/zero-ex/contracts/src/features/SignatureValidator.sol @@ -106,11 +106,18 @@ contract SignatureValidator is override returns (bool isValid) { - try this.validateHashSignature(hash, signer, signature) { - isValid = true; - } catch (bytes memory) { - isValid = false; - } + // HACK: `validateHashSignature()` is stateless so we can just perform + // a staticcall against the implementation contract. This avoids the + // overhead of going through the proxy. If `validateHashSignature()` ever + // becomes stateful this would need to change. + (isValid, ) = _implementation.staticcall( + abi.encodeWithSelector( + this.validateHashSignature.selector, + hash, + signer, + signature + ) + ); } /// @dev Validates a hash-only signature type. Low-level, hidden variant. diff --git a/contracts/zero-ex/contracts/src/features/TransformERC20.sol b/contracts/zero-ex/contracts/src/features/TransformERC20.sol index 85b4b1b651..e7bafaa355 100644 --- a/contracts/zero-ex/contracts/src/features/TransformERC20.sol +++ b/contracts/zero-ex/contracts/src/features/TransformERC20.sol @@ -31,9 +31,11 @@ import "../external/FlashWallet.sol"; import "../storage/LibTransformERC20Storage.sol"; import "../transformers/IERC20Transformer.sol"; import "../transformers/LibERC20Transformer.sol"; +import "./libs/LibSignedCallData.sol"; import "./ITransformERC20.sol"; import "./ITokenSpender.sol"; import "./IFeature.sol"; +import "./ISignatureValidator.sol"; import "./ISimpleFunctionRegistry.sol"; @@ -43,6 +45,8 @@ contract TransformERC20 is ITransformERC20, FixinCommon { + using LibSafeMathV06 for uint256; + using LibRichErrorsV06 for bytes; /// @dev Stack vars for `_transformERC20Private()`. struct TransformERC20PrivateState { @@ -55,10 +59,7 @@ contract TransformERC20 is /// @dev Name of this feature. string public constant override FEATURE_NAME = "TransformERC20"; /// @dev Version of this feature. - uint256 public immutable override FEATURE_VERSION = _encodeVersion(1, 1, 0); - - using LibSafeMathV06 for uint256; - using LibRichErrorsV06 for bytes; + uint256 public immutable override FEATURE_VERSION = _encodeVersion(1, 2, 0); constructor() public FixinCommon() { // solhint-disable-next-line no-empty-blocks @@ -76,6 +77,8 @@ contract TransformERC20 is _registerFeatureFunction(this.createTransformWallet.selector); _registerFeatureFunction(this.getTransformWallet.selector); _registerFeatureFunction(this.setTransformerDeployer.selector); + _registerFeatureFunction(this.setQuoteSigner.selector); + _registerFeatureFunction(this.getQuoteSigner.selector); _registerFeatureFunction(this.transformERC20.selector); _registerFeatureFunction(this._transformERC20.selector); this.createTransformWallet(); @@ -95,6 +98,18 @@ contract TransformERC20 is emit TransformerDeployerUpdated(transformerDeployer); } + /// @dev Replace the optional signer for `transformERC20()` calldata. + /// Only callable by the owner. + /// @param quoteSigner The address of the new calldata signer. + function setQuoteSigner(address quoteSigner) + external + override + onlyOwner + { + LibTransformERC20Storage.getStorage().quoteSigner = quoteSigner; + emit QuoteSignerUpdated(quoteSigner); + } + /// @dev Return the allowed deployer for transformers. /// @return deployer The transform deployer address. function getTransformerDeployer() @@ -106,6 +121,17 @@ contract TransformERC20 is return LibTransformERC20Storage.getStorage().transformerDeployer; } + /// @dev Return the optional signer for `transformERC20()` calldata. + /// @return signer The signer address. + function getQuoteSigner() + public + override + view + returns (address signer) + { + return LibTransformERC20Storage.getStorage().quoteSigner; + } + /// @dev Deploy a new wallet instance and replace the current one with it. /// Useful if we somehow break the current wallet instance. /// Only callable by the owner. @@ -147,42 +173,26 @@ contract TransformERC20 is payable returns (uint256 outputTokenAmount) { + (bytes32 callDataHash, bytes memory callDataSignature) = + LibSignedCallData.parseCallData(msg.data); return _transformERC20Private( - keccak256(msg.data), - msg.sender, - inputToken, - outputToken, - inputTokenAmount, - minOutputTokenAmount, - transformations + TransformERC20Args({ + taker: msg.sender, + inputToken: inputToken, + outputToken: outputToken, + inputTokenAmount: inputTokenAmount, + minOutputTokenAmount: minOutputTokenAmount, + transformations: transformations, + callDataHash: callDataHash, + callDataSignature: callDataSignature + }) ); } /// @dev Internal version of `transformERC20()`. Only callable from within. - /// @param callDataHash Hash of the ingress calldata. - /// @param taker The taker address. - /// @param inputToken The token being provided by the taker. - /// If `0xeee...`, ETH is implied and should be provided with the call.` - /// @param outputToken The token to be acquired by the taker. - /// `0xeee...` implies ETH. - /// @param inputTokenAmount The amount of `inputToken` to take from the taker. - /// If set to `uint256(-1)`, the entire spendable balance of the taker - /// will be solt. - /// @param minOutputTokenAmount The minimum amount of `outputToken` the taker - /// must receive for the entire transformation to succeed. If set to zero, - /// the minimum output token transfer will not be asserted. - /// @param transformations The transformations to execute on the token balance(s) - /// in sequence. + /// @param args A `TransformERC20Args` struct. /// @return outputTokenAmount The amount of `outputToken` received by the taker. - function _transformERC20( - bytes32 callDataHash, - address payable taker, - IERC20TokenV06 inputToken, - IERC20TokenV06 outputToken, - uint256 inputTokenAmount, - uint256 minOutputTokenAmount, - Transformation[] memory transformations - ) + function _transformERC20(TransformERC20Args memory args) public virtual override @@ -190,50 +200,21 @@ contract TransformERC20 is onlySelf returns (uint256 outputTokenAmount) { - return _transformERC20Private( - callDataHash, - taker, - inputToken, - outputToken, - inputTokenAmount, - minOutputTokenAmount, - transformations - ); + return _transformERC20Private(args); } /// @dev Private version of `transformERC20()`. - /// @param callDataHash Hash of the ingress calldata. - /// @param taker The taker address. - /// @param inputToken The token being provided by the taker. - /// If `0xeee...`, ETH is implied and should be provided with the call.` - /// @param outputToken The token to be acquired by the taker. - /// `0xeee...` implies ETH. - /// @param inputTokenAmount The amount of `inputToken` to take from the taker. - /// If set to `uint256(-1)`, the entire spendable balance of the taker - /// will be solt. - /// @param minOutputTokenAmount The minimum amount of `outputToken` the taker - /// must receive for the entire transformation to succeed. If set to zero, - /// the minimum output token transfer will not be asserted. - /// @param transformations The transformations to execute on the token balance(s) - /// in sequence. + /// @param args A `TransformERC20Args` struct. /// @return outputTokenAmount The amount of `outputToken` received by the taker. - function _transformERC20Private( - bytes32 callDataHash, - address payable taker, - IERC20TokenV06 inputToken, - IERC20TokenV06 outputToken, - uint256 inputTokenAmount, - uint256 minOutputTokenAmount, - Transformation[] memory transformations - ) + function _transformERC20Private(TransformERC20Args memory args) private returns (uint256 outputTokenAmount) { // If the input token amount is -1, transform the taker's entire // spendable balance. - if (inputTokenAmount == uint256(-1)) { - inputTokenAmount = ITokenSpender(address(this)) - .getSpendableERC20BalanceOf(inputToken, taker); + if (args.inputTokenAmount == uint256(-1)) { + args.inputTokenAmount = ITokenSpender(address(this)) + .getSpendableERC20BalanceOf(args.inputToken, args.taker); } TransformERC20PrivateState memory state; @@ -242,55 +223,65 @@ contract TransformERC20 is // Remember the initial output token balance of the taker. state.takerOutputTokenBalanceBefore = - LibERC20Transformer.getTokenBalanceOf(outputToken, taker); + LibERC20Transformer.getTokenBalanceOf(args.outputToken, args.taker); // Pull input tokens from the taker to the wallet and transfer attached ETH. _transferInputTokensAndAttachedEth( - inputToken, - taker, + args.inputToken, + args.taker, address(state.wallet), - inputTokenAmount + args.inputTokenAmount ); - // Perform transformations. - for (uint256 i = 0; i < transformations.length; ++i) { - _executeTransformation( - state.wallet, - transformations[i], - state.transformerDeployer, - taker, - callDataHash + { + // Validate that the calldata was signed by the quote signer. + // `validCallDataHash` will be 0x0 if not. + bytes32 validCallDataHash = _getValidCallDataHash( + args.callDataHash, + args.callDataSignature ); + // Perform transformations. + for (uint256 i = 0; i < args.transformations.length; ++i) { + _executeTransformation( + state.wallet, + args.transformations[i], + state.transformerDeployer, + args.taker, + // Transformers will receive a null calldata hash if + // the calldata was not properly signed. + validCallDataHash + ); + } } // Compute how much output token has been transferred to the taker. state.takerOutputTokenBalanceAfter = - LibERC20Transformer.getTokenBalanceOf(outputToken, taker); + LibERC20Transformer.getTokenBalanceOf(args.outputToken, args.taker); if (state.takerOutputTokenBalanceAfter > state.takerOutputTokenBalanceBefore) { outputTokenAmount = state.takerOutputTokenBalanceAfter.safeSub( state.takerOutputTokenBalanceBefore ); } else if (state.takerOutputTokenBalanceAfter < state.takerOutputTokenBalanceBefore) { LibTransformERC20RichErrors.NegativeTransformERC20OutputError( - address(outputToken), + address(args.outputToken), state.takerOutputTokenBalanceBefore - state.takerOutputTokenBalanceAfter ).rrevert(); } // Ensure enough output token has been sent to the taker. - if (outputTokenAmount < minOutputTokenAmount) { + if (outputTokenAmount < args.minOutputTokenAmount) { LibTransformERC20RichErrors.IncompleteTransformERC20Error( - address(outputToken), + address(args.outputToken), outputTokenAmount, - minOutputTokenAmount + args.minOutputTokenAmount ).rrevert(); } // Emit an event. emit TransformedERC20( - taker, - address(inputToken), - address(outputToken), - inputTokenAmount, + args.taker, + address(args.inputToken), + address(args.outputToken), + args.inputTokenAmount, outputTokenAmount ); } @@ -385,4 +376,29 @@ contract TransformERC20 is ).rrevert(); } } + + /// @dev Check if a call data hash is signed by the quote signer. + /// @param callDataHash The hash of the callData. + /// @param signature The signature provided by `getQuoteSigner()`. + /// @return validCallDataHash `callDataHash` if so and `0x0` otherwise. + function _getValidCallDataHash( + bytes32 callDataHash, + bytes memory signature + ) + private + view + returns (bytes32 validCallDataHash) + { + if (signature.length == 0) { + return bytes32(0); + } + + if (ISignatureValidator(address(this)).isValidHashSignature( + callDataHash, + getQuoteSigner(), + signature + )) { + return callDataHash; + } + } } diff --git a/contracts/zero-ex/contracts/src/features/libs/LibSignedCallData.sol b/contracts/zero-ex/contracts/src/features/libs/LibSignedCallData.sol new file mode 100644 index 0000000000..16056bd5e3 --- /dev/null +++ b/contracts/zero-ex/contracts/src/features/libs/LibSignedCallData.sol @@ -0,0 +1,72 @@ +/* + + Copyright 2020 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.6.5; +pragma experimental ABIEncoderV2; + +import "@0x/contracts-utils/contracts/src/v06/LibBytesV06.sol"; + + +/// @dev Library for working with signed calldata. +library LibSignedCallData { + using LibBytesV06 for bytes; + + // bytes4(keccak256('SignedCallDataSignature(bytes)')) + bytes4 constant private SIGNATURE_SELECTOR = 0xf86d1d92; + + /// @dev Try to parse potentially signed calldata into its hash and signature + /// components. Signed calldata has signature data appended to it. + /// @param callData the raw call data. + /// @return callDataHash If a signature is detected, this will be the hash of + /// the bytes preceding the signature data. Otherwise, this + /// will be the hash of the entire `callData`. + /// @return signature The signature bytes, if present. + function parseCallData(bytes memory callData) + internal + pure + returns (bytes32 callDataHash, bytes memory signature) + { + // Signed calldata has a 70 byte signature appended as: + // ``` + // abi.encodePacked( + // callData, + // bytes4(keccak256('SignedCallDataSignature(bytes)')), + // signature // 66 bytes + // ); + // ``` + + // Try to detect an appended signature. This isn't foolproof, but an + // accidental false positive should highly unlikely. Additinally, the + // signature would also have to pass verification, so the risk here is + // low. + if ( + // Signed callData has to be at least 70 bytes long. + callData.length < 70 || + // The bytes4 at offset -70 should equal `SIGNATURE_SELECTOR`. + SIGNATURE_SELECTOR != callData.readBytes4(callData.length - 70) + ) { + return (keccak256(callData), signature); + } + // Consider everything before the signature selector as the original + // calldata and everything after as the signature. + assembly { + callDataHash := keccak256(add(callData, 32), sub(mload(callData), 70)) + } + signature = callData.slice(callData.length - 66, callData.length); + } +} diff --git a/contracts/zero-ex/contracts/src/storage/LibTransformERC20Storage.sol b/contracts/zero-ex/contracts/src/storage/LibTransformERC20Storage.sol index 95f22ccbdc..441898ef7f 100644 --- a/contracts/zero-ex/contracts/src/storage/LibTransformERC20Storage.sol +++ b/contracts/zero-ex/contracts/src/storage/LibTransformERC20Storage.sol @@ -32,6 +32,8 @@ library LibTransformERC20Storage { IFlashWallet wallet; // The transformer deployer address. address transformerDeployer; + // The optional signer for `transformERC20()` calldata. + address quoteSigner; } /// @dev Get the storage bucket for this contract. diff --git a/contracts/zero-ex/contracts/test/TestMetaTransactionsTransformERC20Feature.sol b/contracts/zero-ex/contracts/test/TestMetaTransactionsTransformERC20Feature.sol index 7e653068b7..913fa414d7 100644 --- a/contracts/zero-ex/contracts/test/TestMetaTransactionsTransformERC20Feature.sol +++ b/contracts/zero-ex/contracts/test/TestMetaTransactionsTransformERC20Feature.sol @@ -28,24 +28,17 @@ contract TestMetaTransactionsTransformERC20Feature is event TransformERC20Called( address sender, uint256 value, - bytes32 callDataHash, address taker, IERC20TokenV06 inputToken, IERC20TokenV06 outputToken, uint256 inputTokenAmount, uint256 minOutputTokenAmount, - Transformation[] transformations + Transformation[] transformations, + bytes32 callDataHash, + bytes callDataSignature ); - function _transformERC20( - bytes32 callDataHash, - address payable taker, - IERC20TokenV06 inputToken, - IERC20TokenV06 outputToken, - uint256 inputTokenAmount, - uint256 minOutputTokenAmount, - Transformation[] memory transformations - ) + function _transformERC20(TransformERC20Args memory args) public override payable @@ -58,13 +51,14 @@ contract TestMetaTransactionsTransformERC20Feature is emit TransformERC20Called( msg.sender, msg.value, - callDataHash, - taker, - inputToken, - outputToken, - inputTokenAmount, - minOutputTokenAmount, - transformations + args.taker, + args.inputToken, + args.outputToken, + args.inputTokenAmount, + args.minOutputTokenAmount, + args.transformations, + args.callDataHash, + args.callDataSignature ); return 1337; } diff --git a/contracts/zero-ex/package.json b/contracts/zero-ex/package.json index e112c77d23..fed17c3770 100644 --- a/contracts/zero-ex/package.json +++ b/contracts/zero-ex/package.json @@ -39,9 +39,9 @@ "publish:private": "yarn build && gitpkg publish" }, "config": { - "publicInterfaceContracts": "ZeroEx,FullMigration,InitialMigration,IFlashWallet,IAllowanceTarget,IERC20Transformer,IOwnable,ISimpleFunctionRegistry,ITokenSpender,ITransformERC20,FillQuoteTransformer,PayTakerTransformer,WethTransformer,Ownable,SimpleFunctionRegistry,TransformERC20,TokenSpender,AffiliateFeeTransformer,SignatureValidator,MetaTransactions", + "publicInterfaceContracts": "IZeroEx,ZeroEx,FullMigration,InitialMigration,IFlashWallet,IAllowanceTarget,IERC20Transformer,IOwnable,ISimpleFunctionRegistry,ITokenSpender,ITransformERC20,FillQuoteTransformer,PayTakerTransformer,WethTransformer,Ownable,SimpleFunctionRegistry,TransformERC20,TokenSpender,AffiliateFeeTransformer,SignatureValidator,MetaTransactions", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually.", - "abis": "./test/generated-artifacts/@(AffiliateFeeTransformer|AllowanceTarget|Bootstrap|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinGasToken|FlashWallet|FullMigration|IAllowanceTarget|IBootstrap|IERC20Bridge|IERC20Transformer|IExchange|IFeature|IFlashWallet|IGasToken|IMetaTransactions|IOwnable|ISignatureValidator|ISimpleFunctionRegistry|ITestSimpleFunctionRegistryFeature|ITokenSpender|ITransformERC20|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC20Transformer|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibSignatureRichErrors|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibSpenderRichErrors|LibStorage|LibTokenSpenderStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|MetaTransactions|Ownable|PayTakerTransformer|SignatureValidator|SimpleFunctionRegistry|TestCallTarget|TestDelegateCaller|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFullMigration|TestInitialMigration|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC20Token|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestTokenSpender|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestWeth|TestWethTransformerHost|TestZeroExFeature|TokenSpender|TransformERC20|Transformer|TransformerDeployer|WethTransformer|ZeroEx).json" + "abis": "./test/generated-artifacts/@(AffiliateFeeTransformer|AllowanceTarget|Bootstrap|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinGasToken|FlashWallet|FullMigration|IAllowanceTarget|IBootstrap|IERC20Bridge|IERC20Transformer|IExchange|IFeature|IFlashWallet|IGasToken|IMetaTransactions|IOwnable|ISignatureValidator|ISimpleFunctionRegistry|ITestSimpleFunctionRegistryFeature|ITokenSpender|ITransformERC20|IZeroEx|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC20Transformer|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibSignatureRichErrors|LibSignedCallData|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibSpenderRichErrors|LibStorage|LibTokenSpenderStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|MetaTransactions|Ownable|PayTakerTransformer|SignatureValidator|SimpleFunctionRegistry|TestCallTarget|TestDelegateCaller|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFullMigration|TestInitialMigration|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC20Token|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestTokenSpender|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestWeth|TestWethTransformerHost|TestZeroExFeature|TokenSpender|TransformERC20|Transformer|TransformerDeployer|WethTransformer|ZeroEx).json" }, "repository": { "type": "git", diff --git a/contracts/zero-ex/src/artifacts.ts b/contracts/zero-ex/src/artifacts.ts index 0f8eaec40f..b2e9d5b32f 100644 --- a/contracts/zero-ex/src/artifacts.ts +++ b/contracts/zero-ex/src/artifacts.ts @@ -16,6 +16,7 @@ import * as IOwnable from '../generated-artifacts/IOwnable.json'; import * as ISimpleFunctionRegistry from '../generated-artifacts/ISimpleFunctionRegistry.json'; import * as ITokenSpender from '../generated-artifacts/ITokenSpender.json'; import * as ITransformERC20 from '../generated-artifacts/ITransformERC20.json'; +import * as IZeroEx from '../generated-artifacts/IZeroEx.json'; import * as MetaTransactions from '../generated-artifacts/MetaTransactions.json'; import * as Ownable from '../generated-artifacts/Ownable.json'; import * as PayTakerTransformer from '../generated-artifacts/PayTakerTransformer.json'; @@ -26,6 +27,7 @@ import * as TransformERC20 from '../generated-artifacts/TransformERC20.json'; import * as WethTransformer from '../generated-artifacts/WethTransformer.json'; import * as ZeroEx from '../generated-artifacts/ZeroEx.json'; export const artifacts = { + IZeroEx: IZeroEx as ContractArtifact, ZeroEx: ZeroEx as ContractArtifact, FullMigration: FullMigration as ContractArtifact, InitialMigration: InitialMigration as ContractArtifact, diff --git a/contracts/zero-ex/src/index.ts b/contracts/zero-ex/src/index.ts index 4af4cae0b9..20e030544c 100644 --- a/contracts/zero-ex/src/index.ts +++ b/contracts/zero-ex/src/index.ts @@ -8,6 +8,7 @@ export { ISimpleFunctionRegistryEvents, ITokenSpenderContract, ITransformERC20Contract, + IZeroExContract, PayTakerTransformerContract, WethTransformerContract, ZeroExContract, @@ -45,3 +46,4 @@ export { export * from './nonce_utils'; export * from './migration'; +export * from './signed_call_data'; diff --git a/contracts/zero-ex/src/signed_call_data.ts b/contracts/zero-ex/src/signed_call_data.ts new file mode 100644 index 0000000000..49a489a207 --- /dev/null +++ b/contracts/zero-ex/src/signed_call_data.ts @@ -0,0 +1,29 @@ +import { SignatureType } from '@0x/types'; +import { hexUtils } from '@0x/utils'; +import * as ethjs from 'ethereumjs-util'; + +/** + * Generate calldata with a signature appended. + */ +export function signCallData(callData: string, privateKey: string): string { + const prefix = ethjs.sha3('SignedCallDataSignature(bytes)').slice(0, 4); + return hexUtils.concat(callData, prefix, generateCallDataSignature(callData, privateKey)); +} + +/** + * Generate a signature for calldata. + */ +export function generateCallDataSignature(callData: string, privateKey: string): string { + return generateCallDataHashSignature(hexUtils.hash(callData), privateKey); +} + +/** + * Generate a signature for calldata hash. + */ +export function generateCallDataHashSignature(callDataHash: string, privateKey: string): string { + const { r, s, v } = ethjs.ecsign( + ethjs.hashPersonalMessage(ethjs.toBuffer(callDataHash)), + ethjs.toBuffer(privateKey), + ); + return hexUtils.concat(v, r, s, SignatureType.EthSign); +} diff --git a/contracts/zero-ex/src/wrappers.ts b/contracts/zero-ex/src/wrappers.ts index d7da0ff07e..156e6816ec 100644 --- a/contracts/zero-ex/src/wrappers.ts +++ b/contracts/zero-ex/src/wrappers.ts @@ -13,6 +13,7 @@ export * from '../generated-wrappers/i_ownable'; export * from '../generated-wrappers/i_simple_function_registry'; export * from '../generated-wrappers/i_token_spender'; export * from '../generated-wrappers/i_transform_erc20'; +export * from '../generated-wrappers/i_zero_ex'; export * from '../generated-wrappers/initial_migration'; export * from '../generated-wrappers/meta_transactions'; export * from '../generated-wrappers/ownable'; diff --git a/contracts/zero-ex/test/artifacts.ts b/contracts/zero-ex/test/artifacts.ts index 6750466ef4..c8db1d2135 100644 --- a/contracts/zero-ex/test/artifacts.ts +++ b/contracts/zero-ex/test/artifacts.ts @@ -30,6 +30,7 @@ import * as ISimpleFunctionRegistry from '../test/generated-artifacts/ISimpleFun import * as ITestSimpleFunctionRegistryFeature from '../test/generated-artifacts/ITestSimpleFunctionRegistryFeature.json'; import * as ITokenSpender from '../test/generated-artifacts/ITokenSpender.json'; import * as ITransformERC20 from '../test/generated-artifacts/ITransformERC20.json'; +import * as IZeroEx from '../test/generated-artifacts/IZeroEx.json'; import * as LibBootstrap from '../test/generated-artifacts/LibBootstrap.json'; import * as LibCommonRichErrors from '../test/generated-artifacts/LibCommonRichErrors.json'; import * as LibERC20Transformer from '../test/generated-artifacts/LibERC20Transformer.json'; @@ -41,6 +42,7 @@ import * as LibOwnableStorage from '../test/generated-artifacts/LibOwnableStorag import * as LibProxyRichErrors from '../test/generated-artifacts/LibProxyRichErrors.json'; import * as LibProxyStorage from '../test/generated-artifacts/LibProxyStorage.json'; import * as LibSignatureRichErrors from '../test/generated-artifacts/LibSignatureRichErrors.json'; +import * as LibSignedCallData from '../test/generated-artifacts/LibSignedCallData.json'; import * as LibSimpleFunctionRegistryRichErrors from '../test/generated-artifacts/LibSimpleFunctionRegistryRichErrors.json'; import * as LibSimpleFunctionRegistryStorage from '../test/generated-artifacts/LibSimpleFunctionRegistryStorage.json'; import * as LibSpenderRichErrors from '../test/generated-artifacts/LibSpenderRichErrors.json'; @@ -83,6 +85,7 @@ import * as TransformerDeployer from '../test/generated-artifacts/TransformerDep import * as WethTransformer from '../test/generated-artifacts/WethTransformer.json'; import * as ZeroEx from '../test/generated-artifacts/ZeroEx.json'; export const artifacts = { + IZeroEx: IZeroEx as ContractArtifact, ZeroEx: ZeroEx as ContractArtifact, LibCommonRichErrors: LibCommonRichErrors as ContractArtifact, LibMetaTransactionsRichErrors: LibMetaTransactionsRichErrors as ContractArtifact, @@ -113,6 +116,7 @@ export const artifacts = { SimpleFunctionRegistry: SimpleFunctionRegistry as ContractArtifact, TokenSpender: TokenSpender as ContractArtifact, TransformERC20: TransformERC20 as ContractArtifact, + LibSignedCallData: LibSignedCallData as ContractArtifact, FixinCommon: FixinCommon as ContractArtifact, FixinEIP712: FixinEIP712 as ContractArtifact, FixinGasToken: FixinGasToken as ContractArtifact, diff --git a/contracts/zero-ex/test/features/meta_transactions_test.ts b/contracts/zero-ex/test/features/meta_transactions_test.ts index 35020bf632..f5f30fda7f 100644 --- a/contracts/zero-ex/test/features/meta_transactions_test.ts +++ b/contracts/zero-ex/test/features/meta_transactions_test.ts @@ -11,6 +11,7 @@ import { ExchangeProxyMetaTransaction } from '@0x/types'; import { BigNumber, hexUtils, StringRevertError, ZeroExRevertErrors } from '@0x/utils'; import * as _ from 'lodash'; +import { generateCallDataSignature, signCallData } from '../../src/signed_call_data'; import { MetaTransactionsContract, ZeroExContract } from '../../src/wrappers'; import { artifacts } from '../artifacts'; import { abis } from '../utils/abis'; @@ -22,7 +23,7 @@ import { TestMintableERC20TokenContract, } from '../wrappers'; -const { NULL_ADDRESS, ZERO_AMOUNT } = constants; +const { NULL_ADDRESS, NULL_BYTES, ZERO_AMOUNT } = constants; blockchainTests.resets('MetaTransactions feature', env => { let owner: string; @@ -161,6 +162,50 @@ blockchainTests.resets('MetaTransactions feature', env => { value: mtx.value, callDataHash: hexUtils.hash(mtx.callData), taker: mtx.signer, + callDataSignature: NULL_BYTES, + }, + ], + TestMetaTransactionsTransformERC20FeatureEvents.TransformERC20Called, + ); + }); + + it('can call `TransformERC20.transformERC20()` with signed calldata', async () => { + const args = getRandomTransformERC20Args(); + const callData = transformERC20Feature + .transformERC20( + args.inputToken, + args.outputToken, + args.inputTokenAmount, + args.minOutputTokenAmount, + args.transformations, + ) + .getABIEncodedTransactionData(); + const callDataSignerKey = hexUtils.random(); + const callDataSignature = generateCallDataSignature(callData, callDataSignerKey); + const signedCallData = signCallData(callData, callDataSignerKey); + const mtx = getRandomMetaTransaction({ callData: signedCallData }); + const signature = await signMetaTransactionAsync(mtx); + const callOpts = { + gasPrice: mtx.minGasPrice, + value: mtx.value, + }; + const rawResult = await feature.executeMetaTransaction(mtx, signature).callAsync(callOpts); + expect(rawResult).to.eq(RAW_SUCCESS_RESULT); + const receipt = await feature.executeMetaTransaction(mtx, signature).awaitTransactionSuccessAsync(callOpts); + verifyEventsFromLogs( + receipt.logs, + [ + { + inputToken: args.inputToken, + outputToken: args.outputToken, + inputTokenAmount: args.inputTokenAmount, + minOutputTokenAmount: args.minOutputTokenAmount, + transformations: args.transformations, + sender: zeroEx.address, + value: mtx.value, + callDataHash: hexUtils.hash(callData), + taker: mtx.signer, + callDataSignature, }, ], TestMetaTransactionsTransformERC20FeatureEvents.TransformERC20Called, @@ -237,15 +282,16 @@ blockchainTests.resets('MetaTransactions feature', env => { }; const tx = feature.executeMetaTransaction(mtx, signature).callAsync(callOpts); const actualCallData = transformERC20Feature - ._transformERC20( - hexUtils.hash(mtx.callData), - mtx.signer, - args.inputToken, - args.outputToken, - args.inputTokenAmount, - args.minOutputTokenAmount, - args.transformations, - ) + ._transformERC20({ + taker: mtx.signer, + inputToken: args.inputToken, + outputToken: args.outputToken, + inputTokenAmount: args.inputTokenAmount, + minOutputTokenAmount: args.minOutputTokenAmount, + transformations: args.transformations, + callDataHash: hexUtils.hash(mtx.callData), + callDataSignature: NULL_BYTES, + }) .getABIEncodedTransactionData(); return expect(tx).to.revertWith( new ZeroExRevertErrors.MetaTransactions.MetaTransactionCallFailedError( diff --git a/contracts/zero-ex/test/features/transform_erc20_test.ts b/contracts/zero-ex/test/features/transform_erc20_test.ts index a7af7ecd96..4625325a9c 100644 --- a/contracts/zero-ex/test/features/transform_erc20_test.ts +++ b/contracts/zero-ex/test/features/transform_erc20_test.ts @@ -10,7 +10,10 @@ import { } from '@0x/contracts-test-utils'; import { ETH_TOKEN_ADDRESS } from '@0x/order-utils'; import { AbiEncoder, hexUtils, OwnableRevertErrors, ZeroExRevertErrors } from '@0x/utils'; +import { DecodedLogEntry } from 'ethereum-types'; +import * as ethjs from 'ethereumjs-util'; +import { generateCallDataHashSignature, signCallData } from '../../src/signed_call_data'; import { TransformERC20Contract, ZeroExContract } from '../../src/wrappers'; import { artifacts } from '../artifacts'; import { abis } from '../utils/abis'; @@ -21,10 +24,17 @@ import { TestMintableERC20TokenContract, TestMintTokenERC20TransformerContract, TestMintTokenERC20TransformerEvents, + TestMintTokenERC20TransformerMintTransformEventArgs, TransformERC20Events, } from '../wrappers'; +const { NULL_BYTES, NULL_BYTES32 } = constants; + +type MintTokenTransformerEvent = DecodedLogEntry; + blockchainTests.resets('TransformERC20 feature', env => { + const callDataSignerKey = hexUtils.random(); + const callDataSigner = ethjs.bufferToHex(ethjs.privateToAddress(ethjs.toBuffer(callDataSignerKey))); let owner: string; let taker: string; let transformerDeployer: string; @@ -54,6 +64,7 @@ blockchainTests.resets('TransformERC20 feature', env => { allowanceTarget = await new ITokenSpenderContract(zeroEx.address, env.provider, env.txDefaults) .getAllowanceTarget() .callAsync(); + await feature.setQuoteSigner(callDataSigner).awaitTransactionSuccessAsync(); }); const { MAX_UINT256, ZERO_AMOUNT } = constants; @@ -101,7 +112,29 @@ blockchainTests.resets('TransformERC20 feature', env => { }); }); - describe('_transformERC20()', () => { + describe('quote signer', () => { + it('`getQuoteSigner()` returns the quote signer', async () => { + const actualSigner = await feature.getQuoteSigner().callAsync(); + expect(actualSigner).to.eq(callDataSigner); + }); + + it('owner can set the quote signer with `setQuoteSigner()`', async () => { + const newSigner = randomAddress(); + const receipt = await feature.setQuoteSigner(newSigner).awaitTransactionSuccessAsync({ from: owner }); + verifyEventsFromLogs(receipt.logs, [{ quoteSigner: newSigner }], TransformERC20Events.QuoteSignerUpdated); + const actualSigner = await feature.getQuoteSigner().callAsync(); + expect(actualSigner).to.eq(newSigner); + }); + + it('non-owner cannot set the quote signer with `setQuoteSigner()`', async () => { + const newSigner = randomAddress(); + const notOwner = randomAddress(); + const tx = feature.setQuoteSigner(newSigner).callAsync({ from: notOwner }); + return expect(tx).to.revertWith(new OwnableRevertErrors.OnlyOwnerError(notOwner, owner)); + }); + }); + + describe('_transformERC20()/transformERC20()', () => { let inputToken: TestMintableERC20TokenContract; let outputToken: TestMintableERC20TokenContract; let mintTransformer: TestMintTokenERC20TransformerContract; @@ -187,325 +220,552 @@ blockchainTests.resets('TransformERC20 feature', env => { }; } - it("succeeds if taker's output token balance increases by exactly minOutputTokenAmount", async () => { - const startingOutputTokenBalance = getRandomInteger(0, '100e18'); - const startingInputTokenBalance = getRandomInteger(0, '100e18'); - await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); - await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); - const inputTokenAmount = getRandomPortion(startingInputTokenBalance); - const minOutputTokenAmount = getRandomInteger(1, '1e18'); - const outputTokenMintAmount = minOutputTokenAmount; - const callValue = getRandomInteger(1, '1e18'); - const callDataHash = hexUtils.random(); - const transformation = createMintTokenTransformation({ - outputTokenMintAmount, - inputTokenBurnAmunt: inputTokenAmount, - }); - const receipt = await feature - ._transformERC20( - callDataHash, - taker, - inputToken.address, - outputToken.address, - inputTokenAmount, - minOutputTokenAmount, - [transformation], - ) - .awaitTransactionSuccessAsync({ value: callValue }); - verifyEventsFromLogs( - receipt.logs, - [ - { + describe('_transformERC20()', () => { + it("succeeds if taker's output token balance increases by exactly minOutputTokenAmount", async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const callDataHash = hexUtils.random(); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const receipt = await feature + ._transformERC20({ taker, - inputTokenAmount, - outputTokenAmount: outputTokenMintAmount, inputToken: inputToken.address, outputToken: outputToken.address, - }, - ], - TransformERC20Events.TransformedERC20, - ); - verifyEventsFromLogs( - receipt.logs, - [ - { - callDataHash, - taker, - context: wallet.address, - caller: zeroEx.address, - data: transformation.data, - inputTokenBalance: inputTokenAmount, - ethBalance: callValue, - }, - ], - TestMintTokenERC20TransformerEvents.MintTransform, - ); - }); - - it("succeeds if taker's output token balance increases by exactly minOutputTokenAmount, with ETH", async () => { - const startingInputTokenBalance = getRandomInteger(0, '100e18'); - await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); - const inputTokenAmount = getRandomPortion(startingInputTokenBalance); - const minOutputTokenAmount = getRandomInteger(1, '1e18'); - const outputTokenMintAmount = minOutputTokenAmount; - const callValue = outputTokenMintAmount.times(2); - const callDataHash = hexUtils.random(); - const transformation = createMintTokenTransformation({ - outputTokenMintAmount, - inputTokenBurnAmunt: inputTokenAmount, - outputTokenAddress: ETH_TOKEN_ADDRESS, - }); - const startingOutputTokenBalance = await env.web3Wrapper.getBalanceInWeiAsync(taker); - const receipt = await feature - ._transformERC20( - callDataHash, - taker, - inputToken.address, - ETH_TOKEN_ADDRESS, - inputTokenAmount, - minOutputTokenAmount, - [transformation], - ) - .awaitTransactionSuccessAsync({ value: callValue }); - verifyEventsFromLogs( - receipt.logs, - [ - { - taker, inputTokenAmount, - outputTokenAmount: outputTokenMintAmount, + minOutputTokenAmount, + transformations: [transformation], + callDataHash, + callDataSignature: NULL_BYTES, + }) + .awaitTransactionSuccessAsync({ value: callValue }); + verifyEventsFromLogs( + receipt.logs, + [ + { + taker, + inputTokenAmount, + outputTokenAmount: outputTokenMintAmount, + inputToken: inputToken.address, + outputToken: outputToken.address, + }, + ], + TransformERC20Events.TransformedERC20, + ); + verifyEventsFromLogs( + receipt.logs, + [ + { + callDataHash: NULL_BYTES32, + taker, + context: wallet.address, + caller: zeroEx.address, + data: transformation.data, + inputTokenBalance: inputTokenAmount, + ethBalance: callValue, + }, + ], + TestMintTokenERC20TransformerEvents.MintTransform, + ); + }); + + it("succeeds if taker's output token balance increases by exactly minOutputTokenAmount, with ETH", async () => { + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = outputTokenMintAmount.times(2); + const callDataHash = hexUtils.random(); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + outputTokenAddress: ETH_TOKEN_ADDRESS, + }); + const startingOutputTokenBalance = await env.web3Wrapper.getBalanceInWeiAsync(taker); + const receipt = await feature + ._transformERC20({ + taker, inputToken: inputToken.address, outputToken: ETH_TOKEN_ADDRESS, - }, - ], - TransformERC20Events.TransformedERC20, - ); - verifyEventsFromLogs( - receipt.logs, - [ - { + inputTokenAmount, + minOutputTokenAmount, + transformations: [transformation], callDataHash, + callDataSignature: NULL_BYTES, + }) + .awaitTransactionSuccessAsync({ value: callValue }); + verifyEventsFromLogs( + receipt.logs, + [ + { + taker, + inputTokenAmount, + outputTokenAmount: outputTokenMintAmount, + inputToken: inputToken.address, + outputToken: ETH_TOKEN_ADDRESS, + }, + ], + TransformERC20Events.TransformedERC20, + ); + verifyEventsFromLogs( + receipt.logs, + [ + { + callDataHash: NULL_BYTES32, + taker, + context: wallet.address, + caller: zeroEx.address, + data: transformation.data, + inputTokenBalance: inputTokenAmount, + ethBalance: callValue, + }, + ], + TestMintTokenERC20TransformerEvents.MintTransform, + ); + expect(await env.web3Wrapper.getBalanceInWeiAsync(taker)).to.bignumber.eq( + startingOutputTokenBalance.plus(outputTokenMintAmount), + ); + }); + + it("succeeds if taker's output token balance increases by more than minOutputTokenAmount", async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount.plus(1); + const callValue = getRandomInteger(1, '1e18'); + const callDataHash = hexUtils.random(); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const receipt = await feature + ._transformERC20({ taker, - context: wallet.address, - caller: zeroEx.address, - data: transformation.data, - inputTokenBalance: inputTokenAmount, - ethBalance: callValue, - }, - ], - TestMintTokenERC20TransformerEvents.MintTransform, - ); - expect(await env.web3Wrapper.getBalanceInWeiAsync(taker)).to.bignumber.eq( - startingOutputTokenBalance.plus(outputTokenMintAmount), - ); + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + transformations: [transformation], + callDataHash, + callDataSignature: NULL_BYTES, + }) + .awaitTransactionSuccessAsync({ value: callValue }); + verifyEventsFromLogs( + receipt.logs, + [ + { + taker, + inputTokenAmount, + outputTokenAmount: outputTokenMintAmount, + inputToken: inputToken.address, + outputToken: outputToken.address, + }, + ], + TransformERC20Events.TransformedERC20, + ); + verifyEventsFromLogs( + receipt.logs, + [ + { + callDataHash: NULL_BYTES32, + taker, + context: wallet.address, + caller: zeroEx.address, + data: transformation.data, + inputTokenBalance: inputTokenAmount, + ethBalance: callValue, + }, + ], + TestMintTokenERC20TransformerEvents.MintTransform, + ); + }); + + it("throws if taker's output token balance increases by less than minOutputTokenAmount", async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount.minus(1); + const callValue = getRandomInteger(1, '1e18'); + const tx = feature + ._transformERC20({ + callDataHash: hexUtils.random(), + taker, + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + callDataSignature: NULL_BYTES, + transformations: [ + createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }), + ], + }) + .awaitTransactionSuccessAsync({ value: callValue }); + const expectedError = new ZeroExRevertErrors.TransformERC20.IncompleteTransformERC20Error( + outputToken.address, + outputTokenMintAmount, + minOutputTokenAmount, + ); + return expect(tx).to.revertWith(expectedError); + }); + + it("throws if taker's output token balance decreases", async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = ZERO_AMOUNT; + const outputTokenFeeAmount = 1; + const callValue = getRandomInteger(1, '1e18'); + const tx = feature + ._transformERC20({ + callDataHash: hexUtils.random(), + taker, + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + callDataSignature: NULL_BYTES, + transformations: [ + createMintTokenTransformation({ + outputTokenFeeAmount, + inputTokenBurnAmunt: inputTokenAmount, + }), + ], + }) + .awaitTransactionSuccessAsync({ value: callValue }); + const expectedError = new ZeroExRevertErrors.TransformERC20.NegativeTransformERC20OutputError( + outputToken.address, + outputTokenFeeAmount, + ); + return expect(tx).to.revertWith(expectedError); + }); + + it('can call multiple transformers', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(2, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(2, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const callDataHash = hexUtils.random(); + // Split the total minting between two transformers. + const transformations = [ + createMintTokenTransformation({ + inputTokenBurnAmunt: 1, + outputTokenMintAmount: 1, + }), + createMintTokenTransformation({ + inputTokenBurnAmunt: inputTokenAmount.minus(1), + outputTokenMintAmount: outputTokenMintAmount.minus(1), + }), + ]; + const receipt = await feature + ._transformERC20({ + taker, + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + transformations, + callDataHash, + callDataSignature: NULL_BYTES, + }) + .awaitTransactionSuccessAsync({ value: callValue }); + verifyEventsFromLogs( + receipt.logs, + [ + { + callDataHash: NULL_BYTES32, + taker, + context: wallet.address, + caller: zeroEx.address, + data: transformations[0].data, + inputTokenBalance: inputTokenAmount, + ethBalance: callValue, + }, + { + callDataHash: NULL_BYTES32, + taker, + context: wallet.address, + caller: zeroEx.address, + data: transformations[1].data, + inputTokenBalance: inputTokenAmount.minus(1), + ethBalance: callValue, + }, + ], + TestMintTokenERC20TransformerEvents.MintTransform, + ); + }); + + it('fails with invalid transformer nonce', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(2, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(2, '1e18'); + const callValue = getRandomInteger(1, '1e18'); + const callDataHash = hexUtils.random(); + const transformations = [createMintTokenTransformation({ deploymentNonce: 1337 })]; + const tx = feature + ._transformERC20({ + taker, + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + transformations, + callDataHash, + callDataSignature: NULL_BYTES, + }) + .awaitTransactionSuccessAsync({ value: callValue }); + return expect(tx).to.revertWith( + new ZeroExRevertErrors.TransformERC20.TransformerFailedError( + undefined, + transformations[0].data, + constants.NULL_BYTES, + ), + ); + }); + + it('passes the calldata hash to transformer with proper signature', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const callDataHash = hexUtils.random(); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const receipt = await feature + ._transformERC20({ + taker, + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + transformations: [transformation], + callDataHash, + callDataSignature: generateCallDataHashSignature(callDataHash, callDataSignerKey), + }) + .awaitTransactionSuccessAsync({ value: callValue }); + const { callDataHash: actualCallDataHash } = (receipt.logs[0] as MintTokenTransformerEvent).args; + expect(actualCallDataHash).to.eq(callDataHash); + }); + + it('passes empty calldata hash to transformer with improper signature', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const callDataHash = hexUtils.random(); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const receipt = await feature + ._transformERC20({ + taker, + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + transformations: [transformation], + callDataHash, + callDataSignature: generateCallDataHashSignature(callDataHash, hexUtils.random()), + }) + .awaitTransactionSuccessAsync({ value: callValue }); + const { callDataHash: actualCallDataHash } = (receipt.logs[0] as MintTokenTransformerEvent).args; + expect(actualCallDataHash).to.eq(NULL_BYTES32); + }); + + it('passes empty calldata hash to transformer with no signature', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const callDataHash = hexUtils.random(); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const receipt = await feature + ._transformERC20({ + taker, + inputToken: inputToken.address, + outputToken: outputToken.address, + inputTokenAmount, + minOutputTokenAmount, + transformations: [transformation], + callDataHash, + callDataSignature: NULL_BYTES, + }) + .awaitTransactionSuccessAsync({ value: callValue }); + const { callDataHash: actualCallDataHash } = (receipt.logs[0] as MintTokenTransformerEvent).args; + expect(actualCallDataHash).to.eq(NULL_BYTES32); + }); }); - it("succeeds if taker's output token balance increases by more than minOutputTokenAmount", async () => { - const startingOutputTokenBalance = getRandomInteger(0, '100e18'); - const startingInputTokenBalance = getRandomInteger(0, '100e18'); - await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); - await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); - const inputTokenAmount = getRandomPortion(startingInputTokenBalance); - const minOutputTokenAmount = getRandomInteger(1, '1e18'); - const outputTokenMintAmount = minOutputTokenAmount.plus(1); - const callValue = getRandomInteger(1, '1e18'); - const callDataHash = hexUtils.random(); - const transformation = createMintTokenTransformation({ - outputTokenMintAmount, - inputTokenBurnAmunt: inputTokenAmount, - }); - const receipt = await feature - ._transformERC20( - callDataHash, - taker, + describe('transformERC20()', () => { + it('passes the calldata hash to transformer with properly signed calldata', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const bakedCall = feature.transformERC20( inputToken.address, outputToken.address, inputTokenAmount, minOutputTokenAmount, [transformation], - ) - .awaitTransactionSuccessAsync({ value: callValue }); - verifyEventsFromLogs( - receipt.logs, - [ - { - taker, - inputTokenAmount, - outputTokenAmount: outputTokenMintAmount, - inputToken: inputToken.address, - outputToken: outputToken.address, - }, - ], - TransformERC20Events.TransformedERC20, - ); - verifyEventsFromLogs( - receipt.logs, - [ - { - callDataHash, - taker, - context: wallet.address, - caller: zeroEx.address, - data: transformation.data, - inputTokenBalance: inputTokenAmount, - ethBalance: callValue, - }, - ], - TestMintTokenERC20TransformerEvents.MintTransform, - ); - }); + ); + const callData = bakedCall.getABIEncodedTransactionData(); + const signedCallData = signCallData(callData, callDataSignerKey); + const receipt = await bakedCall.awaitTransactionSuccessAsync({ + from: taker, + value: callValue, + data: signedCallData, + }); + const { callDataHash: actualCallDataHash } = (receipt.logs[0] as MintTokenTransformerEvent).args; + expect(actualCallDataHash).to.eq(hexUtils.hash(callData)); + }); - it("throws if taker's output token balance increases by less than minOutputTokenAmount", async () => { - const startingOutputTokenBalance = getRandomInteger(0, '100e18'); - const startingInputTokenBalance = getRandomInteger(0, '100e18'); - await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); - await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); - const inputTokenAmount = getRandomPortion(startingInputTokenBalance); - const minOutputTokenAmount = getRandomInteger(1, '1e18'); - const outputTokenMintAmount = minOutputTokenAmount.minus(1); - const callValue = getRandomInteger(1, '1e18'); - const tx = feature - ._transformERC20( - hexUtils.random(), - taker, + it('passes empty calldata hash to transformer with improperly signed calldata', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const bakedCall = feature.transformERC20( inputToken.address, outputToken.address, inputTokenAmount, minOutputTokenAmount, - [ - createMintTokenTransformation({ - outputTokenMintAmount, - inputTokenBurnAmunt: inputTokenAmount, - }), - ], - ) - .awaitTransactionSuccessAsync({ value: callValue }); - const expectedError = new ZeroExRevertErrors.TransformERC20.IncompleteTransformERC20Error( - outputToken.address, - outputTokenMintAmount, - minOutputTokenAmount, - ); - return expect(tx).to.revertWith(expectedError); - }); + [transformation], + ); + const callData = bakedCall.getABIEncodedTransactionData(); + const signedCallData = signCallData(callData, hexUtils.random()); + const receipt = await bakedCall.awaitTransactionSuccessAsync({ + from: taker, + value: callValue, + data: signedCallData, + }); + const { callDataHash: actualCallDataHash } = (receipt.logs[0] as MintTokenTransformerEvent).args; + expect(actualCallDataHash).to.eq(NULL_BYTES32); + }); - it("throws if taker's output token balance decreases", async () => { - const startingOutputTokenBalance = getRandomInteger(0, '100e18'); - const startingInputTokenBalance = getRandomInteger(0, '100e18'); - await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); - await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); - const inputTokenAmount = getRandomPortion(startingInputTokenBalance); - const minOutputTokenAmount = ZERO_AMOUNT; - const outputTokenFeeAmount = 1; - const callValue = getRandomInteger(1, '1e18'); - const tx = feature - ._transformERC20( - hexUtils.random(), - taker, + it('passes empty calldata hash to transformer with unsigned calldata', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const bakedCall = feature.transformERC20( inputToken.address, outputToken.address, inputTokenAmount, minOutputTokenAmount, - [ - createMintTokenTransformation({ - outputTokenFeeAmount, - inputTokenBurnAmunt: inputTokenAmount, - }), - ], - ) - .awaitTransactionSuccessAsync({ value: callValue }); - const expectedError = new ZeroExRevertErrors.TransformERC20.NegativeTransformERC20OutputError( - outputToken.address, - outputTokenFeeAmount, - ); - return expect(tx).to.revertWith(expectedError); - }); + [transformation], + ); + const callData = bakedCall.getABIEncodedTransactionData(); + const receipt = await bakedCall.awaitTransactionSuccessAsync({ + from: taker, + value: callValue, + data: callData, + }); + const { callDataHash: actualCallDataHash } = (receipt.logs[0] as MintTokenTransformerEvent).args; + expect(actualCallDataHash).to.eq(NULL_BYTES32); + }); - it('can call multiple transformers', async () => { - const startingOutputTokenBalance = getRandomInteger(0, '100e18'); - const startingInputTokenBalance = getRandomInteger(2, '100e18'); - await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); - await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); - const inputTokenAmount = getRandomPortion(startingInputTokenBalance); - const minOutputTokenAmount = getRandomInteger(2, '1e18'); - const outputTokenMintAmount = minOutputTokenAmount; - const callValue = getRandomInteger(1, '1e18'); - const callDataHash = hexUtils.random(); - // Split the total minting between two transformers. - const transformations = [ - createMintTokenTransformation({ - inputTokenBurnAmunt: 1, - outputTokenMintAmount: 1, - }), - createMintTokenTransformation({ - inputTokenBurnAmunt: inputTokenAmount.minus(1), - outputTokenMintAmount: outputTokenMintAmount.minus(1), - }), - ]; - const receipt = await feature - ._transformERC20( - callDataHash, - taker, + it('passes empty calldata hash to transformer with calldata with malformed signature', async () => { + const startingOutputTokenBalance = getRandomInteger(0, '100e18'); + const startingInputTokenBalance = getRandomInteger(0, '100e18'); + await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); + await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); + const inputTokenAmount = getRandomPortion(startingInputTokenBalance); + const minOutputTokenAmount = getRandomInteger(1, '1e18'); + const outputTokenMintAmount = minOutputTokenAmount; + const callValue = getRandomInteger(1, '1e18'); + const transformation = createMintTokenTransformation({ + outputTokenMintAmount, + inputTokenBurnAmunt: inputTokenAmount, + }); + const bakedCall = feature.transformERC20( inputToken.address, outputToken.address, inputTokenAmount, minOutputTokenAmount, - transformations, - ) - .awaitTransactionSuccessAsync({ value: callValue }); - verifyEventsFromLogs( - receipt.logs, - [ - { - callDataHash, - taker, - context: wallet.address, - caller: zeroEx.address, - data: transformations[0].data, - inputTokenBalance: inputTokenAmount, - ethBalance: callValue, - }, - { - callDataHash, - taker, - context: wallet.address, - caller: zeroEx.address, - data: transformations[1].data, - inputTokenBalance: inputTokenAmount.minus(1), - ethBalance: callValue, - }, - ], - TestMintTokenERC20TransformerEvents.MintTransform, - ); - }); - - it('fails with invalid transformer nonce', async () => { - const startingOutputTokenBalance = getRandomInteger(0, '100e18'); - const startingInputTokenBalance = getRandomInteger(2, '100e18'); - await outputToken.mint(taker, startingOutputTokenBalance).awaitTransactionSuccessAsync(); - await inputToken.mint(taker, startingInputTokenBalance).awaitTransactionSuccessAsync(); - const inputTokenAmount = getRandomPortion(startingInputTokenBalance); - const minOutputTokenAmount = getRandomInteger(2, '1e18'); - const callValue = getRandomInteger(1, '1e18'); - const callDataHash = hexUtils.random(); - const transformations = [createMintTokenTransformation({ deploymentNonce: 1337 })]; - const tx = feature - ._transformERC20( - callDataHash, - taker, - inputToken.address, - outputToken.address, - inputTokenAmount, - minOutputTokenAmount, - transformations, - ) - .awaitTransactionSuccessAsync({ value: callValue }); - return expect(tx).to.revertWith( - new ZeroExRevertErrors.TransformERC20.TransformerFailedError( - undefined, - transformations[0].data, - constants.NULL_BYTES, - ), - ); + [transformation], + ); + const callData = bakedCall.getABIEncodedTransactionData(); + const signedCallData = hexUtils.concat( + hexUtils.slice(signCallData(callData, hexUtils.random()), 0, -1), + 127, + ); + const receipt = await bakedCall.awaitTransactionSuccessAsync({ + from: taker, + value: callValue, + data: signedCallData, + }); + const { callDataHash: actualCallDataHash } = (receipt.logs[0] as MintTokenTransformerEvent).args; + expect(actualCallDataHash).to.eq(NULL_BYTES32); + }); }); }); }); diff --git a/contracts/zero-ex/test/full_migration_test.ts b/contracts/zero-ex/test/full_migration_test.ts index 107e4f6b28..dea5bf3749 100644 --- a/contracts/zero-ex/test/full_migration_test.ts +++ b/contracts/zero-ex/test/full_migration_test.ts @@ -81,6 +81,8 @@ blockchainTests.resets('Full migration', env => { 'createTransformWallet', 'getTransformWallet', 'setTransformerDeployer', + 'getQuoteSigner', + 'setQuoteSigner', ], }, SignatureValidator: { diff --git a/contracts/zero-ex/test/wrappers.ts b/contracts/zero-ex/test/wrappers.ts index b5827399e8..5e74584ff7 100644 --- a/contracts/zero-ex/test/wrappers.ts +++ b/contracts/zero-ex/test/wrappers.ts @@ -27,6 +27,7 @@ export * from '../test/generated-wrappers/i_simple_function_registry'; export * from '../test/generated-wrappers/i_test_simple_function_registry_feature'; export * from '../test/generated-wrappers/i_token_spender'; export * from '../test/generated-wrappers/i_transform_erc20'; +export * from '../test/generated-wrappers/i_zero_ex'; export * from '../test/generated-wrappers/initial_migration'; export * from '../test/generated-wrappers/lib_bootstrap'; export * from '../test/generated-wrappers/lib_common_rich_errors'; @@ -39,6 +40,7 @@ export * from '../test/generated-wrappers/lib_ownable_storage'; export * from '../test/generated-wrappers/lib_proxy_rich_errors'; export * from '../test/generated-wrappers/lib_proxy_storage'; export * from '../test/generated-wrappers/lib_signature_rich_errors'; +export * from '../test/generated-wrappers/lib_signed_call_data'; export * from '../test/generated-wrappers/lib_simple_function_registry_rich_errors'; export * from '../test/generated-wrappers/lib_simple_function_registry_storage'; export * from '../test/generated-wrappers/lib_spender_rich_errors'; diff --git a/contracts/zero-ex/tsconfig.json b/contracts/zero-ex/tsconfig.json index caa5d8fca0..e92154d08e 100644 --- a/contracts/zero-ex/tsconfig.json +++ b/contracts/zero-ex/tsconfig.json @@ -13,6 +13,7 @@ "generated-artifacts/ISimpleFunctionRegistry.json", "generated-artifacts/ITokenSpender.json", "generated-artifacts/ITransformERC20.json", + "generated-artifacts/IZeroEx.json", "generated-artifacts/InitialMigration.json", "generated-artifacts/MetaTransactions.json", "generated-artifacts/Ownable.json", @@ -47,6 +48,7 @@ "test/generated-artifacts/ITestSimpleFunctionRegistryFeature.json", "test/generated-artifacts/ITokenSpender.json", "test/generated-artifacts/ITransformERC20.json", + "test/generated-artifacts/IZeroEx.json", "test/generated-artifacts/InitialMigration.json", "test/generated-artifacts/LibBootstrap.json", "test/generated-artifacts/LibCommonRichErrors.json", @@ -59,6 +61,7 @@ "test/generated-artifacts/LibProxyRichErrors.json", "test/generated-artifacts/LibProxyStorage.json", "test/generated-artifacts/LibSignatureRichErrors.json", + "test/generated-artifacts/LibSignedCallData.json", "test/generated-artifacts/LibSimpleFunctionRegistryRichErrors.json", "test/generated-artifacts/LibSimpleFunctionRegistryStorage.json", "test/generated-artifacts/LibSpenderRichErrors.json", diff --git a/packages/abi-gen/CHANGELOG.json b/packages/abi-gen/CHANGELOG.json index 2b566ec851..4350d22d58 100644 --- a/packages/abi-gen/CHANGELOG.json +++ b/packages/abi-gen/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "5.4.0", + "changes": [ + { + "note": "Allow overriding of `data` with contract calls and transactions", + "pr": 2626 + } + ] + }, { "timestamp": 1594788383, "version": "5.3.1", diff --git a/packages/abi-gen/templates/TypeScript/partials/method_call.handlebars b/packages/abi-gen/templates/TypeScript/partials/method_call.handlebars index 71910299e4..757906711b 100644 --- a/packages/abi-gen/templates/TypeScript/partials/method_call.handlebars +++ b/packages/abi-gen/templates/TypeScript/partials/method_call.handlebars @@ -8,10 +8,10 @@ async callAsync( if (self._deployedBytecodeIfExists) { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { - rawCallResult = await self._performCallAsync({ ...callData, data: this.getABIEncodedTransactionData() }, defaultBlock); + rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); } {{else}} - const rawCallResult = await self._performCallAsync({ ...callData, data: this.getABIEncodedTransactionData() }, defaultBlock); + const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); {{/ifEquals}} const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); diff --git a/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars b/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars index 25f3a27dba..763bf740bc 100644 --- a/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars +++ b/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars @@ -3,7 +3,7 @@ async sendTransactionAsync( opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -21,7 +21,7 @@ async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() } + { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, diff --git a/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts b/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts index 5cedf49268..5dd3fddaf0 100644 --- a/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts @@ -997,7 +997,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1023,7 +1023,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1069,7 +1069,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1114,7 +1114,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1137,7 +1137,7 @@ export class AbiGenDummyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1153,15 +1153,15 @@ export class AbiGenDummyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1193,7 +1193,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1226,7 +1226,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1258,7 +1258,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1285,7 +1285,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1315,7 +1315,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1353,7 +1353,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1387,7 +1387,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1421,7 +1421,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1457,7 +1457,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1485,7 +1485,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1508,7 +1508,7 @@ export class AbiGenDummyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1524,15 +1524,15 @@ export class AbiGenDummyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1554,7 +1554,7 @@ export class AbiGenDummyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1570,15 +1570,15 @@ export class AbiGenDummyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1603,7 +1603,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1629,7 +1629,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1654,7 +1654,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1679,7 +1679,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1704,7 +1704,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1733,7 +1733,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1762,7 +1762,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1787,7 +1787,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1813,7 +1813,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1838,7 +1838,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1863,7 +1863,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1894,7 +1894,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1931,7 +1931,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1972,7 +1972,7 @@ export class AbiGenDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1996,7 +1996,7 @@ export class AbiGenDummyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2012,15 +2012,15 @@ export class AbiGenDummyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts b/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts index 517c7bb5c9..3f6c20e62b 100644 --- a/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts @@ -280,7 +280,7 @@ export class TestLibDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -306,7 +306,7 @@ export class TestLibDummyContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } diff --git a/packages/contract-artifacts/CHANGELOG.json b/packages/contract-artifacts/CHANGELOG.json index 62109d0316..19269627cf 100644 --- a/packages/contract-artifacts/CHANGELOG.json +++ b/packages/contract-artifacts/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "3.8.0", + "changes": [ + { + "note": "Add `IZeroEx` artifact", + "pr": 2626 + } + ] + }, { "timestamp": 1594788383, "version": "3.7.1", diff --git a/packages/contract-artifacts/artifacts/Broker.json b/packages/contract-artifacts/artifacts/Broker.json index c2b63cd890..a647ec6dfe 100644 --- a/packages/contract-artifacts/artifacts/Broker.json +++ b/packages/contract-artifacts/artifacts/Broker.json @@ -171,16 +171,16 @@ }, "evm": { "bytecode": { - "object": "0x60806040523480156200001157600080fd5b506040516200309a3803806200309a8339810160408190526200003491620004f1565b600080546001600160a01b0319166001600160a01b03831617905560405182908290630f47261b60e41b906200006f90839060240162000551565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217825251620000af916001916200041f565b50604051630c0e082160e31b81526000906001600160a01b03841690636070410890620000e890630f47261b60e41b906004016200057e565b60206040518083038186803b1580156200010157600080fd5b505afa15801562000116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200013c9190810190620004c1565b90506001600160a01b03811662000177576200017762000166620003ea60201b62002a411760201c565b6200041760201b6200016e1760201c565b60005460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620001ad9084906000199060040162000565565b602060405180830381600087803b158015620001c857600080fd5b505af1158015620001dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200020391908101906200052f565b506000836001600160a01b031663850a15016040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024057600080fd5b505afa15801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200027b9190810190620004c1565b90506001600160a01b038116156200031b5760005460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620002c39084906000199060040162000565565b602060405180830381600087803b158015620002de57600080fd5b505af1158015620002f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200031991908101906200052f565b505b5050600280546001600160a01b0319166001600160a01b038681169190911791829055604051630c0e082160e31b815291169250636070410891506200036d9063a7cb5fb760e01b906004016200057e565b60206040518083038186803b1580156200038657600080fd5b505afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620003c19190810190620004c1565b600380546001600160a01b0319166001600160a01b039290921691909117905550620005ac9050565b6040805160048152602481019091526020810180516001600160e01b031663f3b96b8d60e01b1790525b90565b805160208201fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200046257805160ff191683800117855562000492565b8280016001018555821562000492579182015b828111156200049257825182559160200191906001019062000475565b50620004a0929150620004a4565b5090565b6200041491905b80821115620004a05760008155600101620004ab565b600060208284031215620004d3578081fd5b81516001600160a01b0381168114620004ea578182fd5b9392505050565b6000806040838503121562000504578081fd5b8251620005118162000593565b6020840151909250620005248162000593565b809150509250929050565b60006020828403121562000541578081fd5b81518015158114620004ea578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160e01b031991909116815260200190565b6001600160a01b0381168114620005a957600080fd5b50565b612ade80620005bc6000396000f3fe6080604052600436106100345760003560e01c80632eb2c2d61461006657806385afeaa014610086578063a2b18d95146100af575b60005473ffffffffffffffffffffffffffffffffffffffff1633146100645761006461005f336100cf565b61016e565b005b34801561007257600080fd5b5061006461008136600461208a565b610176565b610099610094366004612312565b6103bc565b6040516100a691906128f9565b60405180910390f35b6100c26100bd366004612211565b610789565b6040516100a69190612749565b60606308b1869860e01b826040516024016100ea9190612667565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b60035473ffffffffffffffffffffffffffffffffffffffff1633146101a1576101a161005f33610b88565b73ffffffffffffffffffffffffffffffffffffffff881630146101ca576101ca61005f89610ba3565b600183146101de576101de61005f84610bbe565b6005546000858582816101ed57fe5b9050602002013590508061020f83600480549050610bd990919063ffffffff16565b1015610225576004546102259061005f90610bfd565b600080606061023686880188611f92565b9250925092505b83156103a85760006004868154811061025257fe5b6000918252602090912001546040517f9256050a00000000000000000000000000000000000000000000000000000000815260019097019690915073ffffffffffffffffffffffffffffffffffffffff841690639256050a906102bb908490869060040161293b565b60006040518083038186803b1580156102d357600080fd5b505afa1580156102e7573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff166323b872dd600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f846040518463ffffffff1660e01b815260040161034a939291906126f2565b600060405180830381600087803b15801561036457600080fd5b505af1158015610378573d6000803e3d6000fd5b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601955061023d915050565b505050600591909155505050505050505050565b6103c4611a31565b87516103d79060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9b44d556000000000000000000000000000000000000000000000000000000001480159061049657507fffffffff0000000000000000000000000000000000000000000000000000000084167fe14b58c40000000000000000000000000000000000000000000000000000000014155b156104a6576104a484610c18565b505b6104b08383610c33565b506060848888886040516024016104c993929190612907565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061057890859061264b565b6000604051808303816000865af19150503d80600081146105b5576040519150601f19603f3d011682016040523d82523d6000602084013e6105ba565b606091505b509150915081156105e057808060200190516105d99190810190612448565b93506105e9565b6105e98161016e565b60018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100878916150201909516949094049384018190048102820181019092528281526106ab93909290918301828280156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b5050506101408e01519291505063ffffffff610d8a16565b6106c65783516101408b01516106c69163ffffffff610db116565b6000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b60206040518083038186803b15801561073657600080fd5b505afa15801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061076e9190810190612463565b610dc7565b61077b610e85565b505050979650505050505050565b865160609061079f9060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9694a402000000000000000000000000000000000000000000000000000000001480159061085e57507fffffffff0000000000000000000000000000000000000000000000000000000084167fbeee2e140000000000000000000000000000000000000000000000000000000014155b80156108ac57507fffffffff0000000000000000000000000000000000000000000000000000000084167f8ea8dfe40000000000000000000000000000000000000000000000000000000014155b156108bc576108ba84610c18565b505b6108c68383610c33565b506060848888886040516024016108df93929190612797565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061098e90859061264b565b6000604051808303816000865af19150503d80600081146109cb576040519150601f19603f3d011682016040523d82523d6000602084013e6109d0565b606091505b509150915081156109f657808060200190516109ef919081019061216f565b93506109ff565b6109ff8161016e565b60005b8a51811015610b2f5760018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010087891615020190951694909404938401819004810282018101909252828152610ae19390929091830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050508c8381518110610ac657fe5b60200260200101516101400151610d8a90919063ffffffff16565b610b2757610b27858281518110610af457fe5b6020026020010151600001518c8381518110610b0c57fe5b60200260200101516101400151610db190919063ffffffff16565b600101610a02565b506000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b606063ccc529af60e01b826040516024016100ea9190612667565b606063906bfb3c60e01b826040516024016100ea9190612667565b606063ba9be20060e01b826040516024016100ea9190612932565b600082821115610bf257610bf261005f60028585610ec0565b508082035b92915050565b6060635527258660e01b826040516024016100ea9190612932565b606063540943f160e01b826040516024016100ea919061289c565b81518151600091908114610c4f57610c4f61005f828551610f65565b34915060005b818114610cfe576000858281518110610c6a57fe5b6020026020010151905080841015610c8957610c8961005f8286611007565b610c99848263ffffffff610bd916565b9350848281518110610ca757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610cf4573d6000803e3d6000fd5b5050600101610c55565b5060008054604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263d0e30db0928692600480820193929182900301818588803b158015610d6a57600080fd5b505af1158015610d7e573d6000803e3d6000fd5b50505050505092915050565b600081518351148015610daa575081805190602001208380519060200120145b9392505050565b610dc38230338463ffffffff61102416565b5050565b8015610e82576000546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e23908490600401612932565b600060405180830381600087803b158015610e3d57600080fd5b505af1158015610e51573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610dc3573d6000803e3d6000fd5b50565b610e9160046000611aab565b6000600555600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606063e946c1bb60e01b848484604051602401610edf939291906128c9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b6060633ecb6ceb60e01b8383604051602401610f8292919061295c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b606063ecf40fd960e01b8383604051602401610f8292919061295c565b8061102e5761125a565b6000611040858263ffffffff61126016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b00000000000000000000000000000000000000000000000000000000014806110d357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b156110ef576110ea8585858563ffffffff6112ac16565b611258565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f0257179200000000000000000000000000000000000000000000000000000000141561114b576110ea8585858563ffffffff6112f616565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156111a7576110ea8585858563ffffffff6113c516565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611203576110ea8585858563ffffffff61151b16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a00000000000000000000000000000000000000000000000000000000146112585761125861005f826115af565b505b50505050565b600081600401835110156112815761128161005f60038551856004016115ca565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60006112bf85601063ffffffff6115e916565b905073ffffffffffffffffffffffffffffffffffffffff84163014156112ea576110ea818484611629565b611258818585856116ea565b8060011461130a5761130a61005f826117ad565b600061131d85601063ffffffff6115e916565b9050600061133286602463ffffffff6117c816565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd9061138b908890889086906004016126f2565b600060405180830381600087803b1580156113a557600080fd5b505af11580156113b9573d6000803e3d6000fd5b50505050505050505050565b600060608060606113e3600489518a6117d49092919063ffffffff16565b8060200190516113f69190810190611ff2565b9350935093509350600082519050606081604051908082528060200260200182016040528015611430578160200160208202803883390190505b50905060005b828114611482576114638886838151811061144d57fe5b602002602001015161185490919063ffffffff16565b82828151811061146f57fe5b6020908102919091010152600101611436565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d6906114dd908c908c908a9087908a90600401612688565b600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b5050505050505050505050505050565b60608061153560048751886117d49092919063ffffffff16565b8060200190516115489190810190612398565b8051919350915060005b8181146115a55761159d83828151811061156857fe5b6020026020010151888861159888868151811061158157fe5b60200260200101518a61185490919063ffffffff16565b611024565b600101611552565b5050505050505050565b6060637996a27160e01b826040516024016100ea919061289c565b6060632800659560e01b848484604051602401610edf939291906128eb565b6000816014018351101561160a5761160a61005f60048551856014016115ca565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907fa9059cbb00000000000000000000000000000000000000000000000000000000906116619085908590602401612723565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061125a8482611885565b6040516060907f23b872dd0000000000000000000000000000000000000000000000000000000090611724908690869086906024016126f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506112588582611885565b606063baffa47460e01b826040516024016100ea9190612932565b6000610daa838361193d565b6060818311156117ed576117ed61005f600085856115ca565b83518211156118065761180661005f60018487516115ca565b8282036040519080825280601f01601f191660200182016040528015611833576020820181803883390190505b509050610daa61184282611967565b8461184c87611967565b01835161196d565b60008261186357506000610bf7565b8282028284828161187057fe5b0414610daa57610daa61005f60018686610ec0565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516118ae919061264b565b6000604051808303816000865af19150503d80600081146118eb576040519150601f19603f3d011682016040523d82523d6000602084013e6118f0565b606091505b50915091508115611934578051611908575050610dc3565b80516020141561193457600061191f8260006117c8565b9050806001141561193257505050610dc3565b505b61125a8161016e565b6000816020018351101561195e5761195e61005f60058551856020016115ca565b50016020015190565b60200190565b6020811015611997576001816020036101000a038019835116818551168082178652505050611a2c565b828214156119a457611a2c565b828211156119de5760208103905080820181840181515b828510156119d65784518652602095860195909401936119bb565b905250611a2c565b60208103905080820181840183515b81861215611a2757825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906119ed565b855250505b505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215611a9b579160200282015b82811115611a9b578251825591602001919060010190611a80565b50611aa7929150611ac5565b5090565b5080546000825590600052602060002090810190610e8291905b611adf91905b80821115611aa75760008155600101611acb565b90565b8035610bf781612a1f565b600082601f830112611afd578081fd5b8135611b10611b0b82612991565b61296a565b818152915060208083019084810181840286018201871015611b3157600080fd5b60005b84811015611b59578135611b4781612a1f565b84529282019290820190600101611b34565b505050505092915050565b600082601f830112611b74578081fd5b8135611b82611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611baa8760208435890101611d59565b83526020928301929190910190600101611b92565b5050505092915050565b600082601f830112611bd9578081fd5b8135611be7611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611c0f8760208435890101611e43565b83526020928301929190910190600101611bf7565b60008083601f840112611c35578182fd5b50813567ffffffffffffffff811115611c4c578182fd5b6020830191508360208083028501011115611c6657600080fd5b9250929050565b600082601f830112611c7d578081fd5b8151611c8b611b0b82612991565b818152915060208083019084810181840286018201871015611cac57600080fd5b60005b84811015611b5957815184529282019290820190600101611caf565b600082601f830112611cdb578081fd5b8135611ce9611b0b82612991565b818152915060208083019084810181840286018201871015611d0a57600080fd5b60005b84811015611b5957813584529282019290820190600101611d0d565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bf757600080fd5b600082601f830112611d69578081fd5b8135611d77611b0b826129b1565b9150808252836020828501011115611d8e57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112611db7578081fd5b8151611dc5611b0b826129b1565b9150808252836020828501011115611ddc57600080fd5b611ded8160208401602086016129f3565b5092915050565b600060a08284031215611e05578081fd5b611e0f60a061296a565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015292915050565b60006101c0808385031215611e56578182fd5b611e5f8161296a565b915050611e6c8383611ae2565b8152611e7b8360208401611ae2565b6020820152611e8d8360408401611ae2565b6040820152611e9f8360608401611ae2565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115611f0157600080fd5b611f0d86838701611d59565b83850152610160925082850135915080821115611f2957600080fd5b611f3586838701611d59565b83850152610180925082850135915080821115611f5157600080fd5b611f5d86838701611d59565b838501526101a0925082850135915080821115611f7957600080fd5b50611f8685828601611d59565b82840152505092915050565b600080600060608486031215611fa6578283fd5b8335611fb181612a1f565b92506020840135611fc181612a1f565b9150604084013567ffffffffffffffff811115611fdc578182fd5b611fe886828701611d59565b9150509250925092565b60008060008060808587031215612007578182fd5b845161201281612a1f565b602086015190945067ffffffffffffffff8082111561202f578384fd5b61203b88838901611c6d565b94506040870151915080821115612050578384fd5b61205c88838901611c6d565b93506060870151915080821115612071578283fd5b5061207e87828801611da7565b91505092959194509250565b60008060008060008060008060a0898b0312156120a5578586fd5b88356120b081612a1f565b975060208901356120c081612a1f565b9650604089013567ffffffffffffffff808211156120dc578788fd5b6120e88c838d01611c24565b909850965060608b0135915080821115612100578586fd5b61210c8c838d01611c24565b909650945060808b0135915080821115612124578384fd5b818b018c601f820112612135578485fd5b8035925081831115612145578485fd5b8c6020848301011115612156578485fd5b6020810194505050809150509295985092959890939650565b600060208284031215612180578081fd5b815167ffffffffffffffff811115612196578182fd5b80830184601f8201126121a7578283fd5b805191506121b7611b0b83612991565b808382526020820191506020830187602060a0870286010111156121d9578586fd5b8593505b84841015612206576121ef8882611df4565b83526001939093019260209092019160a0016121dd565b509695505050505050565b600080600080600080600060e0888a03121561222b578081fd5b873567ffffffffffffffff80821115612242578283fd5b61224e8b838c01611ccb565b985060208a0135915080821115612263578283fd5b61226f8b838c01611bc9565b975060408a0135915080821115612284578283fd5b6122908b838c01611ccb565b965060608a01359150808211156122a5578283fd5b6122b18b838c01611b64565b95506122c08b60808c01611d29565b945060a08a01359150808211156122d5578283fd5b6122e18b838c01611ccb565b935060c08a01359150808211156122f6578283fd5b506123038a828b01611aed565b91505092959891949750929550565b600080600080600080600060e0888a03121561232c578081fd5b873567ffffffffffffffff80821115612343578283fd5b61234f8b838c01611ccb565b985060208a0135915080821115612364578283fd5b6123708b838c01611e43565b975060408a0135965060608a013591508082111561238c578283fd5b6122b18b838c01611d59565b600080604083850312156123aa578182fd5b825167ffffffffffffffff808211156123c1578384fd5b6123cd86838701611c6d565b93506020915081850151818111156123e3578384fd5b85019050601f810186136123f5578283fd5b8051612403611b0b82612991565b81815283810190838501865b84811015612438576124268b888451890101611da7565b8452928601929086019060010161240f565b5096999098509650505050505050565b600060a08284031215612459578081fd5b610daa8383611df4565b600060208284031215612474578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156124c65781518652602095860195909101906001016124a8565b5093949350505050565b600081518084526124e88160208601602086016129f3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061255a84845161247b565b602083015161256c602086018261247b565b50604083015161257f604086018261247b565b506060830151612592606086018261247b565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526125eb838701826124d0565b9150506101609150818401518582038387015261260882826124d0565b92505050610180808401518583038287015261262483826124d0565b9150506101a09150818401518582038387015261264182826124d0565b9695505050505050565b6000825161265d8184602087016129f3565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526126c160a0830186612495565b82810360608401526126d38186612495565b83810360808501526126e581866124d0565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561278c5761277683855161251a565b6020939093019260a09290920191600101612763565b509095945050505050565b60006060820160608352808651808352608085019150602092506080838202860101838901855b8381101561280a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808884030185526127f883835161254a565b948601949250908501906001016127be565b50508581038487015261281d8189612495565b925050508381036040850152808551808352838301915083848202840101848801865b8381101561288c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301855261287a8383516124d0565b94870194925090860190600101612840565b50909a9950505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b60608101600485106128d757fe5b938152602081019290925260409091015290565b60608101600885106128d757fe5b60a08101610bf7828461251a565b60006060825261291a606083018661254a565b846020840152828103604084015261264181856124d0565b90815260200190565b60008382526040602083015261295460408301846124d0565b949350505050565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561298957600080fd5b604052919050565b600067ffffffffffffffff8211156129a7578081fd5b5060209081020190565b600067ffffffffffffffff8211156129c7578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612a0e5781810151838201526020016129f6565b8381111561125a5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114610e8257600080fd5b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d000000000000000000000000000000000000000000000000000000001790529056fea365627a7a723158208d14f5d218c3a076c1d9cc46cc7bba85eb91343de1b83a38afec0fae47158b036c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x60806040523480156200001157600080fd5b506040516200309a3803806200309a8339810160408190526200003491620004f1565b600080546001600160a01b0319166001600160a01b03831617905560405182908290630f47261b60e41b906200006f90839060240162000551565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217825251620000af916001916200041f565b50604051630c0e082160e31b81526000906001600160a01b03841690636070410890620000e890630f47261b60e41b906004016200057e565b60206040518083038186803b1580156200010157600080fd5b505afa15801562000116573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200013c9190810190620004c1565b90506001600160a01b03811662000177576200017762000166620003ea60201b62002a411760201c565b6200041760201b6200016e1760201c565b60005460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620001ad9084906000199060040162000565565b602060405180830381600087803b158015620001c857600080fd5b505af1158015620001dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200020391908101906200052f565b506000836001600160a01b031663850a15016040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024057600080fd5b505afa15801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200027b9190810190620004c1565b90506001600160a01b038116156200031b5760005460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620002c39084906000199060040162000565565b602060405180830381600087803b158015620002de57600080fd5b505af1158015620002f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200031991908101906200052f565b505b5050600280546001600160a01b0319166001600160a01b038681169190911791829055604051630c0e082160e31b815291169250636070410891506200036d9063a7cb5fb760e01b906004016200057e565b60206040518083038186803b1580156200038657600080fd5b505afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620003c19190810190620004c1565b600380546001600160a01b0319166001600160a01b039290921691909117905550620005ac9050565b6040805160048152602481019091526020810180516001600160e01b031663f3b96b8d60e01b1790525b90565b805160208201fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200046257805160ff191683800117855562000492565b8280016001018555821562000492579182015b828111156200049257825182559160200191906001019062000475565b50620004a0929150620004a4565b5090565b6200041491905b80821115620004a05760008155600101620004ab565b600060208284031215620004d3578081fd5b81516001600160a01b0381168114620004ea578182fd5b9392505050565b6000806040838503121562000504578081fd5b8251620005118162000593565b6020840151909250620005248162000593565b809150509250929050565b60006020828403121562000541578081fd5b81518015158114620004ea578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160e01b031991909116815260200190565b6001600160a01b0381168114620005a957600080fd5b50565b612ade80620005bc6000396000f3fe6080604052600436106100345760003560e01c80632eb2c2d61461006657806385afeaa014610086578063a2b18d95146100af575b60005473ffffffffffffffffffffffffffffffffffffffff1633146100645761006461005f336100cf565b61016e565b005b34801561007257600080fd5b5061006461008136600461208a565b610176565b610099610094366004612312565b6103bc565b6040516100a691906128f9565b60405180910390f35b6100c26100bd366004612211565b610789565b6040516100a69190612749565b60606308b1869860e01b826040516024016100ea9190612667565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b60035473ffffffffffffffffffffffffffffffffffffffff1633146101a1576101a161005f33610b88565b73ffffffffffffffffffffffffffffffffffffffff881630146101ca576101ca61005f89610ba3565b600183146101de576101de61005f84610bbe565b6005546000858582816101ed57fe5b9050602002013590508061020f83600480549050610bd990919063ffffffff16565b1015610225576004546102259061005f90610bfd565b600080606061023686880188611f92565b9250925092505b83156103a85760006004868154811061025257fe5b6000918252602090912001546040517f9256050a00000000000000000000000000000000000000000000000000000000815260019097019690915073ffffffffffffffffffffffffffffffffffffffff841690639256050a906102bb908490869060040161293b565b60006040518083038186803b1580156102d357600080fd5b505afa1580156102e7573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff166323b872dd600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f846040518463ffffffff1660e01b815260040161034a939291906126f2565b600060405180830381600087803b15801561036457600080fd5b505af1158015610378573d6000803e3d6000fd5b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601955061023d915050565b505050600591909155505050505050505050565b6103c4611a31565b87516103d79060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9b44d556000000000000000000000000000000000000000000000000000000001480159061049657507fffffffff0000000000000000000000000000000000000000000000000000000084167fe14b58c40000000000000000000000000000000000000000000000000000000014155b156104a6576104a484610c18565b505b6104b08383610c33565b506060848888886040516024016104c993929190612907565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061057890859061264b565b6000604051808303816000865af19150503d80600081146105b5576040519150601f19603f3d011682016040523d82523d6000602084013e6105ba565b606091505b509150915081156105e057808060200190516105d99190810190612448565b93506105e9565b6105e98161016e565b60018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100878916150201909516949094049384018190048102820181019092528281526106ab93909290918301828280156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b5050506101408e01519291505063ffffffff610d8a16565b6106c65783516101408b01516106c69163ffffffff610db116565b6000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b60206040518083038186803b15801561073657600080fd5b505afa15801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061076e9190810190612463565b610dc7565b61077b610e85565b505050979650505050505050565b865160609061079f9060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9694a402000000000000000000000000000000000000000000000000000000001480159061085e57507fffffffff0000000000000000000000000000000000000000000000000000000084167fbeee2e140000000000000000000000000000000000000000000000000000000014155b80156108ac57507fffffffff0000000000000000000000000000000000000000000000000000000084167f8ea8dfe40000000000000000000000000000000000000000000000000000000014155b156108bc576108ba84610c18565b505b6108c68383610c33565b506060848888886040516024016108df93929190612797565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061098e90859061264b565b6000604051808303816000865af19150503d80600081146109cb576040519150601f19603f3d011682016040523d82523d6000602084013e6109d0565b606091505b509150915081156109f657808060200190516109ef919081019061216f565b93506109ff565b6109ff8161016e565b60005b8a51811015610b2f5760018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010087891615020190951694909404938401819004810282018101909252828152610ae19390929091830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050508c8381518110610ac657fe5b60200260200101516101400151610d8a90919063ffffffff16565b610b2757610b27858281518110610af457fe5b6020026020010151600001518c8381518110610b0c57fe5b60200260200101516101400151610db190919063ffffffff16565b600101610a02565b506000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b606063ccc529af60e01b826040516024016100ea9190612667565b606063906bfb3c60e01b826040516024016100ea9190612667565b606063ba9be20060e01b826040516024016100ea9190612932565b600082821115610bf257610bf261005f60028585610ec0565b508082035b92915050565b6060635527258660e01b826040516024016100ea9190612932565b606063540943f160e01b826040516024016100ea919061289c565b81518151600091908114610c4f57610c4f61005f828551610f65565b34915060005b818114610cfe576000858281518110610c6a57fe5b6020026020010151905080841015610c8957610c8961005f8286611007565b610c99848263ffffffff610bd916565b9350848281518110610ca757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610cf4573d6000803e3d6000fd5b5050600101610c55565b5060008054604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263d0e30db0928692600480820193929182900301818588803b158015610d6a57600080fd5b505af1158015610d7e573d6000803e3d6000fd5b50505050505092915050565b600081518351148015610daa575081805190602001208380519060200120145b9392505050565b610dc38230338463ffffffff61102416565b5050565b8015610e82576000546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e23908490600401612932565b600060405180830381600087803b158015610e3d57600080fd5b505af1158015610e51573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610dc3573d6000803e3d6000fd5b50565b610e9160046000611aab565b6000600555600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606063e946c1bb60e01b848484604051602401610edf939291906128c9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b6060633ecb6ceb60e01b8383604051602401610f8292919061295c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b606063ecf40fd960e01b8383604051602401610f8292919061295c565b8061102e5761125a565b6000611040858263ffffffff61126016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b00000000000000000000000000000000000000000000000000000000014806110d357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b156110ef576110ea8585858563ffffffff6112ac16565b611258565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f0257179200000000000000000000000000000000000000000000000000000000141561114b576110ea8585858563ffffffff6112f616565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156111a7576110ea8585858563ffffffff6113c516565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611203576110ea8585858563ffffffff61151b16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a00000000000000000000000000000000000000000000000000000000146112585761125861005f826115af565b505b50505050565b600081600401835110156112815761128161005f60038551856004016115ca565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60006112bf85601063ffffffff6115e916565b905073ffffffffffffffffffffffffffffffffffffffff84163014156112ea576110ea818484611629565b611258818585856116ea565b8060011461130a5761130a61005f826117ad565b600061131d85601063ffffffff6115e916565b9050600061133286602463ffffffff6117c816565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd9061138b908890889086906004016126f2565b600060405180830381600087803b1580156113a557600080fd5b505af11580156113b9573d6000803e3d6000fd5b50505050505050505050565b600060608060606113e3600489518a6117d49092919063ffffffff16565b8060200190516113f69190810190611ff2565b9350935093509350600082519050606081604051908082528060200260200182016040528015611430578160200160208202803883390190505b50905060005b828114611482576114638886838151811061144d57fe5b602002602001015161185490919063ffffffff16565b82828151811061146f57fe5b6020908102919091010152600101611436565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d6906114dd908c908c908a9087908a90600401612688565b600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b5050505050505050505050505050565b60608061153560048751886117d49092919063ffffffff16565b8060200190516115489190810190612398565b8051919350915060005b8181146115a55761159d83828151811061156857fe5b6020026020010151888861159888868151811061158157fe5b60200260200101518a61185490919063ffffffff16565b611024565b600101611552565b5050505050505050565b6060637996a27160e01b826040516024016100ea919061289c565b6060632800659560e01b848484604051602401610edf939291906128eb565b6000816014018351101561160a5761160a61005f60048551856014016115ca565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907fa9059cbb00000000000000000000000000000000000000000000000000000000906116619085908590602401612723565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061125a8482611885565b6040516060907f23b872dd0000000000000000000000000000000000000000000000000000000090611724908690869086906024016126f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506112588582611885565b606063baffa47460e01b826040516024016100ea9190612932565b6000610daa838361193d565b6060818311156117ed576117ed61005f600085856115ca565b83518211156118065761180661005f60018487516115ca565b8282036040519080825280601f01601f191660200182016040528015611833576020820181803883390190505b509050610daa61184282611967565b8461184c87611967565b01835161196d565b60008261186357506000610bf7565b8282028284828161187057fe5b0414610daa57610daa61005f60018686610ec0565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516118ae919061264b565b6000604051808303816000865af19150503d80600081146118eb576040519150601f19603f3d011682016040523d82523d6000602084013e6118f0565b606091505b50915091508115611934578051611908575050610dc3565b80516020141561193457600061191f8260006117c8565b9050806001141561193257505050610dc3565b505b61125a8161016e565b6000816020018351101561195e5761195e61005f60058551856020016115ca565b50016020015190565b60200190565b6020811015611997576001816020036101000a038019835116818551168082178652505050611a2c565b828214156119a457611a2c565b828211156119de5760208103905080820181840181515b828510156119d65784518652602095860195909401936119bb565b905250611a2c565b60208103905080820181840183515b81861215611a2757825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906119ed565b855250505b505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215611a9b579160200282015b82811115611a9b578251825591602001919060010190611a80565b50611aa7929150611ac5565b5090565b5080546000825590600052602060002090810190610e8291905b611adf91905b80821115611aa75760008155600101611acb565b90565b8035610bf781612a1f565b600082601f830112611afd578081fd5b8135611b10611b0b82612991565b61296a565b818152915060208083019084810181840286018201871015611b3157600080fd5b60005b84811015611b59578135611b4781612a1f565b84529282019290820190600101611b34565b505050505092915050565b600082601f830112611b74578081fd5b8135611b82611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611baa8760208435890101611d59565b83526020928301929190910190600101611b92565b5050505092915050565b600082601f830112611bd9578081fd5b8135611be7611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611c0f8760208435890101611e43565b83526020928301929190910190600101611bf7565b60008083601f840112611c35578182fd5b50813567ffffffffffffffff811115611c4c578182fd5b6020830191508360208083028501011115611c6657600080fd5b9250929050565b600082601f830112611c7d578081fd5b8151611c8b611b0b82612991565b818152915060208083019084810181840286018201871015611cac57600080fd5b60005b84811015611b5957815184529282019290820190600101611caf565b600082601f830112611cdb578081fd5b8135611ce9611b0b82612991565b818152915060208083019084810181840286018201871015611d0a57600080fd5b60005b84811015611b5957813584529282019290820190600101611d0d565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bf757600080fd5b600082601f830112611d69578081fd5b8135611d77611b0b826129b1565b9150808252836020828501011115611d8e57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112611db7578081fd5b8151611dc5611b0b826129b1565b9150808252836020828501011115611ddc57600080fd5b611ded8160208401602086016129f3565b5092915050565b600060a08284031215611e05578081fd5b611e0f60a061296a565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015292915050565b60006101c0808385031215611e56578182fd5b611e5f8161296a565b915050611e6c8383611ae2565b8152611e7b8360208401611ae2565b6020820152611e8d8360408401611ae2565b6040820152611e9f8360608401611ae2565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115611f0157600080fd5b611f0d86838701611d59565b83850152610160925082850135915080821115611f2957600080fd5b611f3586838701611d59565b83850152610180925082850135915080821115611f5157600080fd5b611f5d86838701611d59565b838501526101a0925082850135915080821115611f7957600080fd5b50611f8685828601611d59565b82840152505092915050565b600080600060608486031215611fa6578283fd5b8335611fb181612a1f565b92506020840135611fc181612a1f565b9150604084013567ffffffffffffffff811115611fdc578182fd5b611fe886828701611d59565b9150509250925092565b60008060008060808587031215612007578182fd5b845161201281612a1f565b602086015190945067ffffffffffffffff8082111561202f578384fd5b61203b88838901611c6d565b94506040870151915080821115612050578384fd5b61205c88838901611c6d565b93506060870151915080821115612071578283fd5b5061207e87828801611da7565b91505092959194509250565b60008060008060008060008060a0898b0312156120a5578586fd5b88356120b081612a1f565b975060208901356120c081612a1f565b9650604089013567ffffffffffffffff808211156120dc578788fd5b6120e88c838d01611c24565b909850965060608b0135915080821115612100578586fd5b61210c8c838d01611c24565b909650945060808b0135915080821115612124578384fd5b818b018c601f820112612135578485fd5b8035925081831115612145578485fd5b8c6020848301011115612156578485fd5b6020810194505050809150509295985092959890939650565b600060208284031215612180578081fd5b815167ffffffffffffffff811115612196578182fd5b80830184601f8201126121a7578283fd5b805191506121b7611b0b83612991565b808382526020820191506020830187602060a0870286010111156121d9578586fd5b8593505b84841015612206576121ef8882611df4565b83526001939093019260209092019160a0016121dd565b509695505050505050565b600080600080600080600060e0888a03121561222b578081fd5b873567ffffffffffffffff80821115612242578283fd5b61224e8b838c01611ccb565b985060208a0135915080821115612263578283fd5b61226f8b838c01611bc9565b975060408a0135915080821115612284578283fd5b6122908b838c01611ccb565b965060608a01359150808211156122a5578283fd5b6122b18b838c01611b64565b95506122c08b60808c01611d29565b945060a08a01359150808211156122d5578283fd5b6122e18b838c01611ccb565b935060c08a01359150808211156122f6578283fd5b506123038a828b01611aed565b91505092959891949750929550565b600080600080600080600060e0888a03121561232c578081fd5b873567ffffffffffffffff80821115612343578283fd5b61234f8b838c01611ccb565b985060208a0135915080821115612364578283fd5b6123708b838c01611e43565b975060408a0135965060608a013591508082111561238c578283fd5b6122b18b838c01611d59565b600080604083850312156123aa578182fd5b825167ffffffffffffffff808211156123c1578384fd5b6123cd86838701611c6d565b93506020915081850151818111156123e3578384fd5b85019050601f810186136123f5578283fd5b8051612403611b0b82612991565b81815283810190838501865b84811015612438576124268b888451890101611da7565b8452928601929086019060010161240f565b5096999098509650505050505050565b600060a08284031215612459578081fd5b610daa8383611df4565b600060208284031215612474578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156124c65781518652602095860195909101906001016124a8565b5093949350505050565b600081518084526124e88160208601602086016129f3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061255a84845161247b565b602083015161256c602086018261247b565b50604083015161257f604086018261247b565b506060830151612592606086018261247b565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526125eb838701826124d0565b9150506101609150818401518582038387015261260882826124d0565b92505050610180808401518583038287015261262483826124d0565b9150506101a09150818401518582038387015261264182826124d0565b9695505050505050565b6000825161265d8184602087016129f3565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526126c160a0830186612495565b82810360608401526126d38186612495565b83810360808501526126e581866124d0565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561278c5761277683855161251a565b6020939093019260a09290920191600101612763565b509095945050505050565b60006060820160608352808651808352608085019150602092506080838202860101838901855b8381101561280a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808884030185526127f883835161254a565b948601949250908501906001016127be565b50508581038487015261281d8189612495565b925050508381036040850152808551808352838301915083848202840101848801865b8381101561288c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301855261287a8383516124d0565b94870194925090860190600101612840565b50909a9950505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b60608101600485106128d757fe5b938152602081019290925260409091015290565b60608101600885106128d757fe5b60a08101610bf7828461251a565b60006060825261291a606083018661254a565b846020840152828103604084015261264181856124d0565b90815260200190565b60008382526040602083015261295460408301846124d0565b949350505050565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561298957600080fd5b604052919050565b600067ffffffffffffffff8211156129a7578081fd5b5060209081020190565b600067ffffffffffffffff8211156129c7578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612a0e5781810151838201526020016129f6565b8381111561125a5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114610e8257600080fd5b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d000000000000000000000000000000000000000000000000000000001790529056fea365627a7a72315820805b3e85953f3c346ac91cfa9fed0017672ebf3862749d865a2e7de0cd4d53fe6c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x6080604052600436106100345760003560e01c80632eb2c2d61461006657806385afeaa014610086578063a2b18d95146100af575b60005473ffffffffffffffffffffffffffffffffffffffff1633146100645761006461005f336100cf565b61016e565b005b34801561007257600080fd5b5061006461008136600461208a565b610176565b610099610094366004612312565b6103bc565b6040516100a691906128f9565b60405180910390f35b6100c26100bd366004612211565b610789565b6040516100a69190612749565b60606308b1869860e01b826040516024016100ea9190612667565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b60035473ffffffffffffffffffffffffffffffffffffffff1633146101a1576101a161005f33610b88565b73ffffffffffffffffffffffffffffffffffffffff881630146101ca576101ca61005f89610ba3565b600183146101de576101de61005f84610bbe565b6005546000858582816101ed57fe5b9050602002013590508061020f83600480549050610bd990919063ffffffff16565b1015610225576004546102259061005f90610bfd565b600080606061023686880188611f92565b9250925092505b83156103a85760006004868154811061025257fe5b6000918252602090912001546040517f9256050a00000000000000000000000000000000000000000000000000000000815260019097019690915073ffffffffffffffffffffffffffffffffffffffff841690639256050a906102bb908490869060040161293b565b60006040518083038186803b1580156102d357600080fd5b505afa1580156102e7573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff166323b872dd600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f846040518463ffffffff1660e01b815260040161034a939291906126f2565b600060405180830381600087803b15801561036457600080fd5b505af1158015610378573d6000803e3d6000fd5b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601955061023d915050565b505050600591909155505050505050505050565b6103c4611a31565b87516103d79060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9b44d556000000000000000000000000000000000000000000000000000000001480159061049657507fffffffff0000000000000000000000000000000000000000000000000000000084167fe14b58c40000000000000000000000000000000000000000000000000000000014155b156104a6576104a484610c18565b505b6104b08383610c33565b506060848888886040516024016104c993929190612907565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061057890859061264b565b6000604051808303816000865af19150503d80600081146105b5576040519150601f19603f3d011682016040523d82523d6000602084013e6105ba565b606091505b509150915081156105e057808060200190516105d99190810190612448565b93506105e9565b6105e98161016e565b60018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100878916150201909516949094049384018190048102820181019092528281526106ab93909290918301828280156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b5050506101408e01519291505063ffffffff610d8a16565b6106c65783516101408b01516106c69163ffffffff610db116565b6000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b60206040518083038186803b15801561073657600080fd5b505afa15801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061076e9190810190612463565b610dc7565b61077b610e85565b505050979650505050505050565b865160609061079f9060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9694a402000000000000000000000000000000000000000000000000000000001480159061085e57507fffffffff0000000000000000000000000000000000000000000000000000000084167fbeee2e140000000000000000000000000000000000000000000000000000000014155b80156108ac57507fffffffff0000000000000000000000000000000000000000000000000000000084167f8ea8dfe40000000000000000000000000000000000000000000000000000000014155b156108bc576108ba84610c18565b505b6108c68383610c33565b506060848888886040516024016108df93929190612797565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061098e90859061264b565b6000604051808303816000865af19150503d80600081146109cb576040519150601f19603f3d011682016040523d82523d6000602084013e6109d0565b606091505b509150915081156109f657808060200190516109ef919081019061216f565b93506109ff565b6109ff8161016e565b60005b8a51811015610b2f5760018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010087891615020190951694909404938401819004810282018101909252828152610ae19390929091830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050508c8381518110610ac657fe5b60200260200101516101400151610d8a90919063ffffffff16565b610b2757610b27858281518110610af457fe5b6020026020010151600001518c8381518110610b0c57fe5b60200260200101516101400151610db190919063ffffffff16565b600101610a02565b506000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b606063ccc529af60e01b826040516024016100ea9190612667565b606063906bfb3c60e01b826040516024016100ea9190612667565b606063ba9be20060e01b826040516024016100ea9190612932565b600082821115610bf257610bf261005f60028585610ec0565b508082035b92915050565b6060635527258660e01b826040516024016100ea9190612932565b606063540943f160e01b826040516024016100ea919061289c565b81518151600091908114610c4f57610c4f61005f828551610f65565b34915060005b818114610cfe576000858281518110610c6a57fe5b6020026020010151905080841015610c8957610c8961005f8286611007565b610c99848263ffffffff610bd916565b9350848281518110610ca757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610cf4573d6000803e3d6000fd5b5050600101610c55565b5060008054604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263d0e30db0928692600480820193929182900301818588803b158015610d6a57600080fd5b505af1158015610d7e573d6000803e3d6000fd5b50505050505092915050565b600081518351148015610daa575081805190602001208380519060200120145b9392505050565b610dc38230338463ffffffff61102416565b5050565b8015610e82576000546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e23908490600401612932565b600060405180830381600087803b158015610e3d57600080fd5b505af1158015610e51573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610dc3573d6000803e3d6000fd5b50565b610e9160046000611aab565b6000600555600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606063e946c1bb60e01b848484604051602401610edf939291906128c9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b6060633ecb6ceb60e01b8383604051602401610f8292919061295c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b606063ecf40fd960e01b8383604051602401610f8292919061295c565b8061102e5761125a565b6000611040858263ffffffff61126016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b00000000000000000000000000000000000000000000000000000000014806110d357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b156110ef576110ea8585858563ffffffff6112ac16565b611258565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f0257179200000000000000000000000000000000000000000000000000000000141561114b576110ea8585858563ffffffff6112f616565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156111a7576110ea8585858563ffffffff6113c516565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611203576110ea8585858563ffffffff61151b16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a00000000000000000000000000000000000000000000000000000000146112585761125861005f826115af565b505b50505050565b600081600401835110156112815761128161005f60038551856004016115ca565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60006112bf85601063ffffffff6115e916565b905073ffffffffffffffffffffffffffffffffffffffff84163014156112ea576110ea818484611629565b611258818585856116ea565b8060011461130a5761130a61005f826117ad565b600061131d85601063ffffffff6115e916565b9050600061133286602463ffffffff6117c816565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd9061138b908890889086906004016126f2565b600060405180830381600087803b1580156113a557600080fd5b505af11580156113b9573d6000803e3d6000fd5b50505050505050505050565b600060608060606113e3600489518a6117d49092919063ffffffff16565b8060200190516113f69190810190611ff2565b9350935093509350600082519050606081604051908082528060200260200182016040528015611430578160200160208202803883390190505b50905060005b828114611482576114638886838151811061144d57fe5b602002602001015161185490919063ffffffff16565b82828151811061146f57fe5b6020908102919091010152600101611436565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d6906114dd908c908c908a9087908a90600401612688565b600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b5050505050505050505050505050565b60608061153560048751886117d49092919063ffffffff16565b8060200190516115489190810190612398565b8051919350915060005b8181146115a55761159d83828151811061156857fe5b6020026020010151888861159888868151811061158157fe5b60200260200101518a61185490919063ffffffff16565b611024565b600101611552565b5050505050505050565b6060637996a27160e01b826040516024016100ea919061289c565b6060632800659560e01b848484604051602401610edf939291906128eb565b6000816014018351101561160a5761160a61005f60048551856014016115ca565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907fa9059cbb00000000000000000000000000000000000000000000000000000000906116619085908590602401612723565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061125a8482611885565b6040516060907f23b872dd0000000000000000000000000000000000000000000000000000000090611724908690869086906024016126f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506112588582611885565b606063baffa47460e01b826040516024016100ea9190612932565b6000610daa838361193d565b6060818311156117ed576117ed61005f600085856115ca565b83518211156118065761180661005f60018487516115ca565b8282036040519080825280601f01601f191660200182016040528015611833576020820181803883390190505b509050610daa61184282611967565b8461184c87611967565b01835161196d565b60008261186357506000610bf7565b8282028284828161187057fe5b0414610daa57610daa61005f60018686610ec0565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516118ae919061264b565b6000604051808303816000865af19150503d80600081146118eb576040519150601f19603f3d011682016040523d82523d6000602084013e6118f0565b606091505b50915091508115611934578051611908575050610dc3565b80516020141561193457600061191f8260006117c8565b9050806001141561193257505050610dc3565b505b61125a8161016e565b6000816020018351101561195e5761195e61005f60058551856020016115ca565b50016020015190565b60200190565b6020811015611997576001816020036101000a038019835116818551168082178652505050611a2c565b828214156119a457611a2c565b828211156119de5760208103905080820181840181515b828510156119d65784518652602095860195909401936119bb565b905250611a2c565b60208103905080820181840183515b81861215611a2757825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906119ed565b855250505b505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215611a9b579160200282015b82811115611a9b578251825591602001919060010190611a80565b50611aa7929150611ac5565b5090565b5080546000825590600052602060002090810190610e8291905b611adf91905b80821115611aa75760008155600101611acb565b90565b8035610bf781612a1f565b600082601f830112611afd578081fd5b8135611b10611b0b82612991565b61296a565b818152915060208083019084810181840286018201871015611b3157600080fd5b60005b84811015611b59578135611b4781612a1f565b84529282019290820190600101611b34565b505050505092915050565b600082601f830112611b74578081fd5b8135611b82611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611baa8760208435890101611d59565b83526020928301929190910190600101611b92565b5050505092915050565b600082601f830112611bd9578081fd5b8135611be7611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611c0f8760208435890101611e43565b83526020928301929190910190600101611bf7565b60008083601f840112611c35578182fd5b50813567ffffffffffffffff811115611c4c578182fd5b6020830191508360208083028501011115611c6657600080fd5b9250929050565b600082601f830112611c7d578081fd5b8151611c8b611b0b82612991565b818152915060208083019084810181840286018201871015611cac57600080fd5b60005b84811015611b5957815184529282019290820190600101611caf565b600082601f830112611cdb578081fd5b8135611ce9611b0b82612991565b818152915060208083019084810181840286018201871015611d0a57600080fd5b60005b84811015611b5957813584529282019290820190600101611d0d565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bf757600080fd5b600082601f830112611d69578081fd5b8135611d77611b0b826129b1565b9150808252836020828501011115611d8e57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112611db7578081fd5b8151611dc5611b0b826129b1565b9150808252836020828501011115611ddc57600080fd5b611ded8160208401602086016129f3565b5092915050565b600060a08284031215611e05578081fd5b611e0f60a061296a565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015292915050565b60006101c0808385031215611e56578182fd5b611e5f8161296a565b915050611e6c8383611ae2565b8152611e7b8360208401611ae2565b6020820152611e8d8360408401611ae2565b6040820152611e9f8360608401611ae2565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115611f0157600080fd5b611f0d86838701611d59565b83850152610160925082850135915080821115611f2957600080fd5b611f3586838701611d59565b83850152610180925082850135915080821115611f5157600080fd5b611f5d86838701611d59565b838501526101a0925082850135915080821115611f7957600080fd5b50611f8685828601611d59565b82840152505092915050565b600080600060608486031215611fa6578283fd5b8335611fb181612a1f565b92506020840135611fc181612a1f565b9150604084013567ffffffffffffffff811115611fdc578182fd5b611fe886828701611d59565b9150509250925092565b60008060008060808587031215612007578182fd5b845161201281612a1f565b602086015190945067ffffffffffffffff8082111561202f578384fd5b61203b88838901611c6d565b94506040870151915080821115612050578384fd5b61205c88838901611c6d565b93506060870151915080821115612071578283fd5b5061207e87828801611da7565b91505092959194509250565b60008060008060008060008060a0898b0312156120a5578586fd5b88356120b081612a1f565b975060208901356120c081612a1f565b9650604089013567ffffffffffffffff808211156120dc578788fd5b6120e88c838d01611c24565b909850965060608b0135915080821115612100578586fd5b61210c8c838d01611c24565b909650945060808b0135915080821115612124578384fd5b818b018c601f820112612135578485fd5b8035925081831115612145578485fd5b8c6020848301011115612156578485fd5b6020810194505050809150509295985092959890939650565b600060208284031215612180578081fd5b815167ffffffffffffffff811115612196578182fd5b80830184601f8201126121a7578283fd5b805191506121b7611b0b83612991565b808382526020820191506020830187602060a0870286010111156121d9578586fd5b8593505b84841015612206576121ef8882611df4565b83526001939093019260209092019160a0016121dd565b509695505050505050565b600080600080600080600060e0888a03121561222b578081fd5b873567ffffffffffffffff80821115612242578283fd5b61224e8b838c01611ccb565b985060208a0135915080821115612263578283fd5b61226f8b838c01611bc9565b975060408a0135915080821115612284578283fd5b6122908b838c01611ccb565b965060608a01359150808211156122a5578283fd5b6122b18b838c01611b64565b95506122c08b60808c01611d29565b945060a08a01359150808211156122d5578283fd5b6122e18b838c01611ccb565b935060c08a01359150808211156122f6578283fd5b506123038a828b01611aed565b91505092959891949750929550565b600080600080600080600060e0888a03121561232c578081fd5b873567ffffffffffffffff80821115612343578283fd5b61234f8b838c01611ccb565b985060208a0135915080821115612364578283fd5b6123708b838c01611e43565b975060408a0135965060608a013591508082111561238c578283fd5b6122b18b838c01611d59565b600080604083850312156123aa578182fd5b825167ffffffffffffffff808211156123c1578384fd5b6123cd86838701611c6d565b93506020915081850151818111156123e3578384fd5b85019050601f810186136123f5578283fd5b8051612403611b0b82612991565b81815283810190838501865b84811015612438576124268b888451890101611da7565b8452928601929086019060010161240f565b5096999098509650505050505050565b600060a08284031215612459578081fd5b610daa8383611df4565b600060208284031215612474578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156124c65781518652602095860195909101906001016124a8565b5093949350505050565b600081518084526124e88160208601602086016129f3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061255a84845161247b565b602083015161256c602086018261247b565b50604083015161257f604086018261247b565b506060830151612592606086018261247b565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526125eb838701826124d0565b9150506101609150818401518582038387015261260882826124d0565b92505050610180808401518583038287015261262483826124d0565b9150506101a09150818401518582038387015261264182826124d0565b9695505050505050565b6000825161265d8184602087016129f3565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526126c160a0830186612495565b82810360608401526126d38186612495565b83810360808501526126e581866124d0565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561278c5761277683855161251a565b6020939093019260a09290920191600101612763565b509095945050505050565b60006060820160608352808651808352608085019150602092506080838202860101838901855b8381101561280a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808884030185526127f883835161254a565b948601949250908501906001016127be565b50508581038487015261281d8189612495565b925050508381036040850152808551808352838301915083848202840101848801865b8381101561288c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301855261287a8383516124d0565b94870194925090860190600101612840565b50909a9950505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b60608101600485106128d757fe5b938152602081019290925260409091015290565b60608101600885106128d757fe5b60a08101610bf7828461251a565b60006060825261291a606083018661254a565b846020840152828103604084015261264181856124d0565b90815260200190565b60008382526040602083015261295460408301846124d0565b949350505050565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561298957600080fd5b604052919050565b600067ffffffffffffffff8211156129a7578081fd5b5060209081020190565b600067ffffffffffffffff8211156129c7578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612a0e5781810151838201526020016129f6565b8381111561125a5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114610e8257600080fd5b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d000000000000000000000000000000000000000000000000000000001790529056fea365627a7a723158208d14f5d218c3a076c1d9cc46cc7bba85eb91343de1b83a38afec0fae47158b036c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x6080604052600436106100345760003560e01c80632eb2c2d61461006657806385afeaa014610086578063a2b18d95146100af575b60005473ffffffffffffffffffffffffffffffffffffffff1633146100645761006461005f336100cf565b61016e565b005b34801561007257600080fd5b5061006461008136600461208a565b610176565b610099610094366004612312565b6103bc565b6040516100a691906128f9565b60405180910390f35b6100c26100bd366004612211565b610789565b6040516100a69190612749565b60606308b1869860e01b826040516024016100ea9190612667565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b60035473ffffffffffffffffffffffffffffffffffffffff1633146101a1576101a161005f33610b88565b73ffffffffffffffffffffffffffffffffffffffff881630146101ca576101ca61005f89610ba3565b600183146101de576101de61005f84610bbe565b6005546000858582816101ed57fe5b9050602002013590508061020f83600480549050610bd990919063ffffffff16565b1015610225576004546102259061005f90610bfd565b600080606061023686880188611f92565b9250925092505b83156103a85760006004868154811061025257fe5b6000918252602090912001546040517f9256050a00000000000000000000000000000000000000000000000000000000815260019097019690915073ffffffffffffffffffffffffffffffffffffffff841690639256050a906102bb908490869060040161293b565b60006040518083038186803b1580156102d357600080fd5b505afa1580156102e7573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff166323b872dd600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f846040518463ffffffff1660e01b815260040161034a939291906126f2565b600060405180830381600087803b15801561036457600080fd5b505af1158015610378573d6000803e3d6000fd5b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601955061023d915050565b505050600591909155505050505050505050565b6103c4611a31565b87516103d79060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9b44d556000000000000000000000000000000000000000000000000000000001480159061049657507fffffffff0000000000000000000000000000000000000000000000000000000084167fe14b58c40000000000000000000000000000000000000000000000000000000014155b156104a6576104a484610c18565b505b6104b08383610c33565b506060848888886040516024016104c993929190612907565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061057890859061264b565b6000604051808303816000865af19150503d80600081146105b5576040519150601f19603f3d011682016040523d82523d6000602084013e6105ba565b606091505b509150915081156105e057808060200190516105d99190810190612448565b93506105e9565b6105e98161016e565b60018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100878916150201909516949094049384018190048102820181019092528281526106ab93909290918301828280156106935780601f1061066857610100808354040283529160200191610693565b820191906000526020600020905b81548152906001019060200180831161067657829003601f168201915b5050506101408e01519291505063ffffffff610d8a16565b6106c65783516101408b01516106c69163ffffffff610db116565b6000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b60206040518083038186803b15801561073657600080fd5b505afa15801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061076e9190810190612463565b610dc7565b61077b610e85565b505050979650505050505050565b865160609061079f9060049060208b0190611a60565b50600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790557fffffffff0000000000000000000000000000000000000000000000000000000084167f9694a402000000000000000000000000000000000000000000000000000000001480159061085e57507fffffffff0000000000000000000000000000000000000000000000000000000084167fbeee2e140000000000000000000000000000000000000000000000000000000014155b80156108ac57507fffffffff0000000000000000000000000000000000000000000000000000000084167f8ea8dfe40000000000000000000000000000000000000000000000000000000014155b156108bc576108ba84610c18565b505b6108c68383610c33565b506060848888886040516024016108df93929190612797565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600254915190925060009160609173ffffffffffffffffffffffffffffffffffffffff9091169061098e90859061264b565b6000604051808303816000865af19150503d80600081146109cb576040519150601f19603f3d011682016040523d82523d6000602084013e6109d0565b606091505b509150915081156109f657808060200190516109ef919081019061216f565b93506109ff565b6109ff8161016e565b60005b8a51811015610b2f5760018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010087891615020190951694909404938401819004810282018101909252828152610ae19390929091830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050508c8381518110610ac657fe5b60200260200101516101400151610d8a90919063ffffffff16565b610b2757610b27858281518110610af457fe5b6020026020010151600001518c8381518110610b0c57fe5b60200260200101516101400151610db190919063ffffffff16565b600101610a02565b506000546040517f70a082310000000000000000000000000000000000000000000000000000000081526107739173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071e903090600401612667565b606063ccc529af60e01b826040516024016100ea9190612667565b606063906bfb3c60e01b826040516024016100ea9190612667565b606063ba9be20060e01b826040516024016100ea9190612932565b600082821115610bf257610bf261005f60028585610ec0565b508082035b92915050565b6060635527258660e01b826040516024016100ea9190612932565b606063540943f160e01b826040516024016100ea919061289c565b81518151600091908114610c4f57610c4f61005f828551610f65565b34915060005b818114610cfe576000858281518110610c6a57fe5b6020026020010151905080841015610c8957610c8961005f8286611007565b610c99848263ffffffff610bd916565b9350848281518110610ca757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610cf4573d6000803e3d6000fd5b5050600101610c55565b5060008054604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263d0e30db0928692600480820193929182900301818588803b158015610d6a57600080fd5b505af1158015610d7e573d6000803e3d6000fd5b50505050505092915050565b600081518351148015610daa575081805190602001208380519060200120145b9392505050565b610dc38230338463ffffffff61102416565b5050565b8015610e82576000546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e23908490600401612932565b600060405180830381600087803b158015610e3d57600080fd5b505af1158015610e51573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610dc3573d6000803e3d6000fd5b50565b610e9160046000611aab565b6000600555600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b606063e946c1bb60e01b848484604051602401610edf939291906128c9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b6060633ecb6ceb60e01b8383604051602401610f8292919061295c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b606063ecf40fd960e01b8383604051602401610f8292919061295c565b8061102e5761125a565b6000611040858263ffffffff61126016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b00000000000000000000000000000000000000000000000000000000014806110d357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b156110ef576110ea8585858563ffffffff6112ac16565b611258565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f0257179200000000000000000000000000000000000000000000000000000000141561114b576110ea8585858563ffffffff6112f616565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156111a7576110ea8585858563ffffffff6113c516565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611203576110ea8585858563ffffffff61151b16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a00000000000000000000000000000000000000000000000000000000146112585761125861005f826115af565b505b50505050565b600081600401835110156112815761128161005f60038551856004016115ca565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60006112bf85601063ffffffff6115e916565b905073ffffffffffffffffffffffffffffffffffffffff84163014156112ea576110ea818484611629565b611258818585856116ea565b8060011461130a5761130a61005f826117ad565b600061131d85601063ffffffff6115e916565b9050600061133286602463ffffffff6117c816565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd9061138b908890889086906004016126f2565b600060405180830381600087803b1580156113a557600080fd5b505af11580156113b9573d6000803e3d6000fd5b50505050505050505050565b600060608060606113e3600489518a6117d49092919063ffffffff16565b8060200190516113f69190810190611ff2565b9350935093509350600082519050606081604051908082528060200260200182016040528015611430578160200160208202803883390190505b50905060005b828114611482576114638886838151811061144d57fe5b602002602001015161185490919063ffffffff16565b82828151811061146f57fe5b6020908102919091010152600101611436565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d6906114dd908c908c908a9087908a90600401612688565b600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b5050505050505050505050505050565b60608061153560048751886117d49092919063ffffffff16565b8060200190516115489190810190612398565b8051919350915060005b8181146115a55761159d83828151811061156857fe5b6020026020010151888861159888868151811061158157fe5b60200260200101518a61185490919063ffffffff16565b611024565b600101611552565b5050505050505050565b6060637996a27160e01b826040516024016100ea919061289c565b6060632800659560e01b848484604051602401610edf939291906128eb565b6000816014018351101561160a5761160a61005f60048551856014016115ca565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907fa9059cbb00000000000000000000000000000000000000000000000000000000906116619085908590602401612723565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061125a8482611885565b6040516060907f23b872dd0000000000000000000000000000000000000000000000000000000090611724908690869086906024016126f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506112588582611885565b606063baffa47460e01b826040516024016100ea9190612932565b6000610daa838361193d565b6060818311156117ed576117ed61005f600085856115ca565b83518211156118065761180661005f60018487516115ca565b8282036040519080825280601f01601f191660200182016040528015611833576020820181803883390190505b509050610daa61184282611967565b8461184c87611967565b01835161196d565b60008261186357506000610bf7565b8282028284828161187057fe5b0414610daa57610daa61005f60018686610ec0565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516118ae919061264b565b6000604051808303816000865af19150503d80600081146118eb576040519150601f19603f3d011682016040523d82523d6000602084013e6118f0565b606091505b50915091508115611934578051611908575050610dc3565b80516020141561193457600061191f8260006117c8565b9050806001141561193257505050610dc3565b505b61125a8161016e565b6000816020018351101561195e5761195e61005f60058551856020016115ca565b50016020015190565b60200190565b6020811015611997576001816020036101000a038019835116818551168082178652505050611a2c565b828214156119a457611a2c565b828211156119de5760208103905080820181840181515b828510156119d65784518652602095860195909401936119bb565b905250611a2c565b60208103905080820181840183515b81861215611a2757825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906119ed565b855250505b505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215611a9b579160200282015b82811115611a9b578251825591602001919060010190611a80565b50611aa7929150611ac5565b5090565b5080546000825590600052602060002090810190610e8291905b611adf91905b80821115611aa75760008155600101611acb565b90565b8035610bf781612a1f565b600082601f830112611afd578081fd5b8135611b10611b0b82612991565b61296a565b818152915060208083019084810181840286018201871015611b3157600080fd5b60005b84811015611b59578135611b4781612a1f565b84529282019290820190600101611b34565b505050505092915050565b600082601f830112611b74578081fd5b8135611b82611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611baa8760208435890101611d59565b83526020928301929190910190600101611b92565b5050505092915050565b600082601f830112611bd9578081fd5b8135611be7611b0b82612991565b8181529150602080830190840160005b83811015611bbf57611c0f8760208435890101611e43565b83526020928301929190910190600101611bf7565b60008083601f840112611c35578182fd5b50813567ffffffffffffffff811115611c4c578182fd5b6020830191508360208083028501011115611c6657600080fd5b9250929050565b600082601f830112611c7d578081fd5b8151611c8b611b0b82612991565b818152915060208083019084810181840286018201871015611cac57600080fd5b60005b84811015611b5957815184529282019290820190600101611caf565b600082601f830112611cdb578081fd5b8135611ce9611b0b82612991565b818152915060208083019084810181840286018201871015611d0a57600080fd5b60005b84811015611b5957813584529282019290820190600101611d0d565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bf757600080fd5b600082601f830112611d69578081fd5b8135611d77611b0b826129b1565b9150808252836020828501011115611d8e57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112611db7578081fd5b8151611dc5611b0b826129b1565b9150808252836020828501011115611ddc57600080fd5b611ded8160208401602086016129f3565b5092915050565b600060a08284031215611e05578081fd5b611e0f60a061296a565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015292915050565b60006101c0808385031215611e56578182fd5b611e5f8161296a565b915050611e6c8383611ae2565b8152611e7b8360208401611ae2565b6020820152611e8d8360408401611ae2565b6040820152611e9f8360608401611ae2565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115611f0157600080fd5b611f0d86838701611d59565b83850152610160925082850135915080821115611f2957600080fd5b611f3586838701611d59565b83850152610180925082850135915080821115611f5157600080fd5b611f5d86838701611d59565b838501526101a0925082850135915080821115611f7957600080fd5b50611f8685828601611d59565b82840152505092915050565b600080600060608486031215611fa6578283fd5b8335611fb181612a1f565b92506020840135611fc181612a1f565b9150604084013567ffffffffffffffff811115611fdc578182fd5b611fe886828701611d59565b9150509250925092565b60008060008060808587031215612007578182fd5b845161201281612a1f565b602086015190945067ffffffffffffffff8082111561202f578384fd5b61203b88838901611c6d565b94506040870151915080821115612050578384fd5b61205c88838901611c6d565b93506060870151915080821115612071578283fd5b5061207e87828801611da7565b91505092959194509250565b60008060008060008060008060a0898b0312156120a5578586fd5b88356120b081612a1f565b975060208901356120c081612a1f565b9650604089013567ffffffffffffffff808211156120dc578788fd5b6120e88c838d01611c24565b909850965060608b0135915080821115612100578586fd5b61210c8c838d01611c24565b909650945060808b0135915080821115612124578384fd5b818b018c601f820112612135578485fd5b8035925081831115612145578485fd5b8c6020848301011115612156578485fd5b6020810194505050809150509295985092959890939650565b600060208284031215612180578081fd5b815167ffffffffffffffff811115612196578182fd5b80830184601f8201126121a7578283fd5b805191506121b7611b0b83612991565b808382526020820191506020830187602060a0870286010111156121d9578586fd5b8593505b84841015612206576121ef8882611df4565b83526001939093019260209092019160a0016121dd565b509695505050505050565b600080600080600080600060e0888a03121561222b578081fd5b873567ffffffffffffffff80821115612242578283fd5b61224e8b838c01611ccb565b985060208a0135915080821115612263578283fd5b61226f8b838c01611bc9565b975060408a0135915080821115612284578283fd5b6122908b838c01611ccb565b965060608a01359150808211156122a5578283fd5b6122b18b838c01611b64565b95506122c08b60808c01611d29565b945060a08a01359150808211156122d5578283fd5b6122e18b838c01611ccb565b935060c08a01359150808211156122f6578283fd5b506123038a828b01611aed565b91505092959891949750929550565b600080600080600080600060e0888a03121561232c578081fd5b873567ffffffffffffffff80821115612343578283fd5b61234f8b838c01611ccb565b985060208a0135915080821115612364578283fd5b6123708b838c01611e43565b975060408a0135965060608a013591508082111561238c578283fd5b6122b18b838c01611d59565b600080604083850312156123aa578182fd5b825167ffffffffffffffff808211156123c1578384fd5b6123cd86838701611c6d565b93506020915081850151818111156123e3578384fd5b85019050601f810186136123f5578283fd5b8051612403611b0b82612991565b81815283810190838501865b84811015612438576124268b888451890101611da7565b8452928601929086019060010161240f565b5096999098509650505050505050565b600060a08284031215612459578081fd5b610daa8383611df4565b600060208284031215612474578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156124c65781518652602095860195909101906001016124a8565b5093949350505050565b600081518084526124e88160208601602086016129f3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061255a84845161247b565b602083015161256c602086018261247b565b50604083015161257f604086018261247b565b506060830151612592606086018261247b565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526125eb838701826124d0565b9150506101609150818401518582038387015261260882826124d0565b92505050610180808401518583038287015261262483826124d0565b9150506101a09150818401518582038387015261264182826124d0565b9695505050505050565b6000825161265d8184602087016129f3565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526126c160a0830186612495565b82810360608401526126d38186612495565b83810360808501526126e581866124d0565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561278c5761277683855161251a565b6020939093019260a09290920191600101612763565b509095945050505050565b60006060820160608352808651808352608085019150602092506080838202860101838901855b8381101561280a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808884030185526127f883835161254a565b948601949250908501906001016127be565b50508581038487015261281d8189612495565b925050508381036040850152808551808352838301915083848202840101848801865b8381101561288c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086840301855261287a8383516124d0565b94870194925090860190600101612840565b50909a9950505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b60608101600485106128d757fe5b938152602081019290925260409091015290565b60608101600885106128d757fe5b60a08101610bf7828461251a565b60006060825261291a606083018661254a565b846020840152828103604084015261264181856124d0565b90815260200190565b60008382526040602083015261295460408301846124d0565b949350505050565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561298957600080fd5b604052919050565b600067ffffffffffffffff8211156129a7578081fd5b5060209081020190565b600067ffffffffffffffff8211156129c7578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612a0e5781810151838201526020016129f6565b8381111561125a5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114610e8257600080fd5b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d000000000000000000000000000000000000000000000000000000001790529056fea365627a7a72315820805b3e85953f3c346ac91cfa9fed0017672ebf3862749d865a2e7de0cd4d53fe6c6578706572696d656e74616cf564736f6c63430005110040" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/Coordinator.json b/packages/contract-artifacts/artifacts/Coordinator.json index a1e2a87440..3a117675d6 100644 --- a/packages/contract-artifacts/artifacts/Coordinator.json +++ b/packages/contract-artifacts/artifacts/Coordinator.json @@ -222,16 +222,16 @@ }, "evm": { "bytecode": { - "object": "0x60806040526002805460ff191690553480156200001b57600080fd5b5060405162002051380380620020518339810160408190526200003e91620001bf565b81818181600080309050620000b36040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f72000000000000000000815250604051806040016040528060058152602001640332e302e360dc1b81525085846200016860201b62001dae1760201c565b6000908155925050506001600160a01b03821615620000d35781620000d5565b305b9050620001306040518060400160405280600b81526020016a0c1e08141c9bdd1bd8dbdb60aa1b815250604051806040016040528060058152602001640332e302e360dc1b81525085846200016860201b62001dae1760201c565b6001555050600280546001600160a01b03909316620100000262010000600160b01b03199093169290921790915550620001f9915050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b60008060408385031215620001d2578182fd5b82516001600160a01b0381168114620001e9578283fd5b6020939093015192949293505050565b611e4880620002096000396000f3fe6080604052600436106100b15760003560e01c8063da4fe07411610069578063ee55b9681161004e578063ee55b9681461018a578063fb6961cc146101b7578063fdd059a5146101cc576100b1565b8063da4fe07414610162578063e1c7157814610175576100b1565b806389fab5b71161009a57806389fab5b714610109578063b2562b7a1461012b578063c26cfecd14610140576100b1565b80630f7d8e39146100b357806352813679146100e9575b005b3480156100bf57600080fd5b506100d36100ce3660046116c1565b6101ec565b6040516100e09190611a14565b60405180910390f35b3480156100f557600080fd5b506100b1610104366004611888565b610455565b34801561011557600080fd5b5061011e610482565b6040516100e09190611c40565b34801561013757600080fd5b5061011e6104bb565b34801561014c57600080fd5b506101556104f4565b6040516100e09190611ba1565b6100b1610170366004611888565b6104fa565b34801561018157600080fd5b506101556105e8565b34801561019657600080fd5b506101aa6101a5366004611706565b61060c565b6040516100e09190611a35565b3480156101c357600080fd5b50610155610ac0565b3480156101d857600080fd5b506101556101e7366004611774565b610ac6565b80516000908061020a5761020a61020560008686610ad9565b610b7e565b60008360018551038151811061021c57fe5b016020015160f81c90506008811061023d5761023d61020560018787610ad9565b60008160ff16600881111561024e57fe5b9050600081600881111561025e57fe5b14156102785761027361020560028888610ad9565b61043c565b600181600881111561028657fe5b141561029b5761027361020560038888610ad9565b60028160088111156102a957fe5b141561038557826042146102c6576102c661020560008888610ad9565b6000856000815181106102d557fe5b016020015160f81c905060006102f287600163ffffffff610b8616565b9050600061030788602163ffffffff610b8616565b90506001898484846040516000815260200160405260405161032c9493929190611bce565b6020604051602081039080840390855afa15801561034e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151975061044f9650505050505050565b600381600881111561039357fe5b141561043c57826042146103b0576103b061020560008888610ad9565b6000856000815181106103bf57fe5b016020015160f81c905060006103dc87600163ffffffff610b8616565b905060006103f188602163ffffffff610b8616565b905060018960405160200161040691906119e3565b604051602081830303815290604052805190602001208484846040516000815260200160405260405161032c9493929190611bce565b61044b61020560018888610ad9565b5050505b92915050565b6060610464856080015161060c565b80519091501561047b5761047b8582868686610bb0565b5050505050565b6040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000081525081565b6040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b61050684848484610455565b6002546040517f2280c9100000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff1690632280c9109034906105659088908790600401611c53565b6000604051808303818588803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d99190810190611741565b506105e2610d5d565b50505050565b7fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f850716881565b60606000610620838263ffffffff610d7316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f9b44d5560000000000000000000000000000000000000000000000000000000014806106b357507fffffffff0000000000000000000000000000000000000000000000000000000081167fe14b58c400000000000000000000000000000000000000000000000000000000145b1561073c576106c06112e5565b83516106d690859060049063ffffffff610dbf16565b8060200190516106e991908101906117fe565b604080516001808252818301909252919250816020015b6107086112e5565b815260200190600190039081610700579050509250808360008151811061072b57fe5b602002602001018190525050610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f9694a4020000000000000000000000000000000000000000000000000000000014806107cd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f8ea8dfe400000000000000000000000000000000000000000000000000000000145b8061081957507fffffffff0000000000000000000000000000000000000000000000000000000081167fbeee2e1400000000000000000000000000000000000000000000000000000000145b8061086557507fffffffff0000000000000000000000000000000000000000000000000000000081167f78d29ac100000000000000000000000000000000000000000000000000000000145b806108b157507fffffffff0000000000000000000000000000000000000000000000000000000081167f8bc8efb300000000000000000000000000000000000000000000000000000000145b806108fd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f369da09900000000000000000000000000000000000000000000000000000000145b8061094957507fffffffff0000000000000000000000000000000000000000000000000000000081167fa6c3bf3300000000000000000000000000000000000000000000000000000000145b1561097e57825161096490849060049063ffffffff610dbf16565b8060200190516109779190810190611635565b9150610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f88ec79fb000000000000000000000000000000000000000000000000000000001480610a0f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fb718e29200000000000000000000000000000000000000000000000000000000145b15610aba57610a1c6112e5565b610a246112e5565b8451610a3a90869060049063ffffffff610dbf16565b806020019051610a4d9190810190611831565b60408051600280825260608201909252929450909250816020015b610a706112e5565b815260200190600190039081610a685790505093508184600081518110610a9357fe5b60200260200101819052508084600181518110610aac57fe5b602002602001018190525050505b50919050565b60005481565b600061044f610ad483610e46565b610e99565b606063779c522360e01b848484604051602401610af893929190611c0e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b60008160200183511015610ba757610ba76102056005855185602001610ea7565b50016020015190565b3273ffffffffffffffffffffffffffffffffffffffff841614610bd957610bd961020584610ec6565b6000610be786600154610f65565b60408051600080825260208201909252845192935091905b818114610c9057610c0e6113ac565b60405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881525090506000610c4c82610ac6565b90506000610c6d82898681518110610c6057fe5b60200260200101516101ec565b9050610c7f868263ffffffff610f7916565b95505060019092019150610bff9050565b50610ca1823263ffffffff610f7916565b875190925060005b818114610d5157600073ffffffffffffffffffffffffffffffffffffffff16898281518110610cd457fe5b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff161415610d0157610d49565b6000898281518110610d0f57fe5b60200260200101516040015190506000610d32828761101b90919063ffffffff16565b905080610d4657610d466102058884611053565b50505b600101610ca9565b50505050505050505050565b610d656110f5565b610d7157610d71611103565b565b60008160040183511015610d9457610d946102056003855185600401610ea7565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610dd857610dd861020560008585610ea7565b8351821115610df157610df16102056001848751610ea7565b8282036040519080825280601f01601f191660200182016040528015610e1e576020820181803883390190505b509050610e3f610e2d8261113c565b84610e378761113c565b018351611142565b9392505050565b604081810151825160209384015182519285019290922083517fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f85071688152948501919091529183015260608201526080902090565b600061044f60005483611206565b6060632800659560e01b848484604051602401610af893929190611bec565b606063a458d7ff60e01b82604051602401610ee19190611a14565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6000610e3f82610f7485611240565b611206565b815160405160609184906020808202808401820192910182851015610fa557610fa561020586856112c8565b82851115610fbf57610fb8858583611142565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110610fea57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250959695505050505050565b60006020835102602084018181018192505b8083101561044b5782518086141561104757600194508193505b5060208301925061102d565b606063d789b64060e01b8383604051602401611070929190611baa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600254610100900460ff1690565b47801561113957604051339082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b505b50565b60200190565b602081101561116c576001816020036101000a038019835116818551168082178652505050611201565b8282141561117957611201565b828211156111b35760208103905080820181840181515b828510156111ab578451865260209586019590940193611190565b905250611201565b60208103905080820181840183515b818612156111fc57825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111c2565b855250505b505050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6060635fc8372260e01b8383604051602401611070929190611cc9565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040805160608082018352600080835260208301529181019190915290565b803561044f81611d8c565b805161044f81611d8c565b600082601f8301126113f1578081fd5b81356114046113ff82611cfe565b611cd7565b8181529150602080830190840160005b838110156114415761142c876020843589010161144b565b83526020928301929190910190600101611414565b5050505092915050565b600082601f83011261145b578081fd5b81356114696113ff82611d1e565b915080825283602082850101111561148057600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126114a9578081fd5b81516114b76113ff82611d1e565b91508082528360208285010111156114ce57600080fd5b6114df816020840160208601611d60565b5092915050565b60006101c08083850312156114f9578182fd5b61150281611cd7565b91505061150f83836113d6565b815261151e83602084016113d6565b602082015261153083604084016113d6565b604082015261154283606084016113d6565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff808211156115a457600080fd5b6115b086838701611499565b838501526101609250828501519150808211156115cc57600080fd5b6115d886838701611499565b838501526101809250828501519150808211156115f457600080fd5b61160086838701611499565b838501526101a092508285015191508082111561161c57600080fd5b5061162985828601611499565b82840152505092915050565b60006020808385031215611647578182fd5b825167ffffffffffffffff81111561165d578283fd5b80840185601f82011261166e578384fd5b8051915061167e6113ff83611cfe565b82815283810190828501865b858110156116b3576116a18a8884518801016114e6565b8452928601929086019060010161168a565b509098975050505050505050565b600080604083850312156116d3578081fd5b82359150602083013567ffffffffffffffff8111156116f0578182fd5b6116fc8582860161144b565b9150509250929050565b600060208284031215611717578081fd5b813567ffffffffffffffff81111561172d578182fd5b6117398482850161144b565b949350505050565b600060208284031215611752578081fd5b815167ffffffffffffffff811115611768578182fd5b61173984828501611499565b600060208284031215611785578081fd5b813567ffffffffffffffff8082111561179c578283fd5b818401606081870312156117ae578384fd5b6117b86060611cd7565b925080356117c581611d8c565b8352602081810135908401526040810135828111156117e2578485fd5b6117ee8782840161144b565b6040850152509195945050505050565b60006020828403121561180f578081fd5b815167ffffffffffffffff811115611825578182fd5b611739848285016114e6565b60008060408385031215611843578182fd5b825167ffffffffffffffff8082111561185a578384fd5b611866868387016114e6565b9350602085015191508082111561187b578283fd5b506116fc858286016114e6565b6000806000806080858703121561189d578182fd5b843567ffffffffffffffff808211156118b4578384fd5b81870160a0818a0312156118c6578485fd5b6118d060a0611cd7565b92508035835260208101356020840152604081013560408401526118f789606083016113cb565b606084015260808101358281111561190d578586fd5b6119198a82840161144b565b6080850152505081955061193088602089016113cb565b94506040870135915080821115611945578384fd5b6119518883890161144b565b93506060870135915080821115611966578283fd5b50611973878288016113e1565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526119b1816020860160208601611d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845281516101c0611a9987835161197f565b87820151611aa98989018261197f565b506040820151611abc604089018261197f565b506060820151611acf606089018261197f565b506080820151608088015260a082015160a088015260c082015160c088015260e082015160e08801526101008083015181890152506101208083015181890152506101408083015182828a0152611b28838a0182611999565b915050610160915081830151888203838a0152611b458282611999565b9250505061018080830151888303828a0152611b618382611999565b9150506101a0915081830151888203838a0152611b7e8282611999565b9850505094870194505090850190600101611a5a565b5092979650505050505050565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6060810160088510611bfa57fe5b938152602081019290925260409091015290565b600060048510611c1a57fe5b84825283602083015260606040830152611c376060830184611999565b95945050505050565b600060208252610e3f6020830184611999565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152611cad60e0840182611999565b8381036020850152611cbf8186611999565b9695505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611cf657600080fd5b604052919050565b600067ffffffffffffffff821115611d14578081fd5b5060209081020190565b600067ffffffffffffffff821115611d34578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d7b578181015183820152602001611d63565b838111156105e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461113957600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820926abd0f9ec1c8b67d93fbc87771f0336fe827fb0a1927bf1606417cd86e97966c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x60806040526002805460ff191690553480156200001b57600080fd5b5060405162002051380380620020518339810160408190526200003e91620001bf565b81818181600080309050620000b36040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f72000000000000000000815250604051806040016040528060058152602001640332e302e360dc1b81525085846200016860201b62001dae1760201c565b6000908155925050506001600160a01b03821615620000d35781620000d5565b305b9050620001306040518060400160405280600b81526020016a0c1e08141c9bdd1bd8dbdb60aa1b815250604051806040016040528060058152602001640332e302e360dc1b81525085846200016860201b62001dae1760201c565b6001555050600280546001600160a01b03909316620100000262010000600160b01b03199093169290921790915550620001f9915050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b60008060408385031215620001d2578182fd5b82516001600160a01b0381168114620001e9578283fd5b6020939093015192949293505050565b611e4880620002096000396000f3fe6080604052600436106100b15760003560e01c8063da4fe07411610069578063ee55b9681161004e578063ee55b9681461018a578063fb6961cc146101b7578063fdd059a5146101cc576100b1565b8063da4fe07414610162578063e1c7157814610175576100b1565b806389fab5b71161009a57806389fab5b714610109578063b2562b7a1461012b578063c26cfecd14610140576100b1565b80630f7d8e39146100b357806352813679146100e9575b005b3480156100bf57600080fd5b506100d36100ce3660046116c1565b6101ec565b6040516100e09190611a14565b60405180910390f35b3480156100f557600080fd5b506100b1610104366004611888565b610455565b34801561011557600080fd5b5061011e610482565b6040516100e09190611c40565b34801561013757600080fd5b5061011e6104bb565b34801561014c57600080fd5b506101556104f4565b6040516100e09190611ba1565b6100b1610170366004611888565b6104fa565b34801561018157600080fd5b506101556105e8565b34801561019657600080fd5b506101aa6101a5366004611706565b61060c565b6040516100e09190611a35565b3480156101c357600080fd5b50610155610ac0565b3480156101d857600080fd5b506101556101e7366004611774565b610ac6565b80516000908061020a5761020a61020560008686610ad9565b610b7e565b60008360018551038151811061021c57fe5b016020015160f81c90506008811061023d5761023d61020560018787610ad9565b60008160ff16600881111561024e57fe5b9050600081600881111561025e57fe5b14156102785761027361020560028888610ad9565b61043c565b600181600881111561028657fe5b141561029b5761027361020560038888610ad9565b60028160088111156102a957fe5b141561038557826042146102c6576102c661020560008888610ad9565b6000856000815181106102d557fe5b016020015160f81c905060006102f287600163ffffffff610b8616565b9050600061030788602163ffffffff610b8616565b90506001898484846040516000815260200160405260405161032c9493929190611bce565b6020604051602081039080840390855afa15801561034e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151975061044f9650505050505050565b600381600881111561039357fe5b141561043c57826042146103b0576103b061020560008888610ad9565b6000856000815181106103bf57fe5b016020015160f81c905060006103dc87600163ffffffff610b8616565b905060006103f188602163ffffffff610b8616565b905060018960405160200161040691906119e3565b604051602081830303815290604052805190602001208484846040516000815260200160405260405161032c9493929190611bce565b61044b61020560018888610ad9565b5050505b92915050565b6060610464856080015161060c565b80519091501561047b5761047b8582868686610bb0565b5050505050565b6040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000081525081565b6040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b61050684848484610455565b6002546040517f2280c9100000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff1690632280c9109034906105659088908790600401611c53565b6000604051808303818588803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d99190810190611741565b506105e2610d5d565b50505050565b7fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f850716881565b60606000610620838263ffffffff610d7316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f9b44d5560000000000000000000000000000000000000000000000000000000014806106b357507fffffffff0000000000000000000000000000000000000000000000000000000081167fe14b58c400000000000000000000000000000000000000000000000000000000145b1561073c576106c06112e5565b83516106d690859060049063ffffffff610dbf16565b8060200190516106e991908101906117fe565b604080516001808252818301909252919250816020015b6107086112e5565b815260200190600190039081610700579050509250808360008151811061072b57fe5b602002602001018190525050610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f9694a4020000000000000000000000000000000000000000000000000000000014806107cd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f8ea8dfe400000000000000000000000000000000000000000000000000000000145b8061081957507fffffffff0000000000000000000000000000000000000000000000000000000081167fbeee2e1400000000000000000000000000000000000000000000000000000000145b8061086557507fffffffff0000000000000000000000000000000000000000000000000000000081167f78d29ac100000000000000000000000000000000000000000000000000000000145b806108b157507fffffffff0000000000000000000000000000000000000000000000000000000081167f8bc8efb300000000000000000000000000000000000000000000000000000000145b806108fd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f369da09900000000000000000000000000000000000000000000000000000000145b8061094957507fffffffff0000000000000000000000000000000000000000000000000000000081167fa6c3bf3300000000000000000000000000000000000000000000000000000000145b1561097e57825161096490849060049063ffffffff610dbf16565b8060200190516109779190810190611635565b9150610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f88ec79fb000000000000000000000000000000000000000000000000000000001480610a0f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fb718e29200000000000000000000000000000000000000000000000000000000145b15610aba57610a1c6112e5565b610a246112e5565b8451610a3a90869060049063ffffffff610dbf16565b806020019051610a4d9190810190611831565b60408051600280825260608201909252929450909250816020015b610a706112e5565b815260200190600190039081610a685790505093508184600081518110610a9357fe5b60200260200101819052508084600181518110610aac57fe5b602002602001018190525050505b50919050565b60005481565b600061044f610ad483610e46565b610e99565b606063779c522360e01b848484604051602401610af893929190611c0e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b60008160200183511015610ba757610ba76102056005855185602001610ea7565b50016020015190565b3273ffffffffffffffffffffffffffffffffffffffff841614610bd957610bd961020584610ec6565b6000610be786600154610f65565b60408051600080825260208201909252845192935091905b818114610c9057610c0e6113ac565b60405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881525090506000610c4c82610ac6565b90506000610c6d82898681518110610c6057fe5b60200260200101516101ec565b9050610c7f868263ffffffff610f7916565b95505060019092019150610bff9050565b50610ca1823263ffffffff610f7916565b875190925060005b818114610d5157600073ffffffffffffffffffffffffffffffffffffffff16898281518110610cd457fe5b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff161415610d0157610d49565b6000898281518110610d0f57fe5b60200260200101516040015190506000610d32828761101b90919063ffffffff16565b905080610d4657610d466102058884611053565b50505b600101610ca9565b50505050505050505050565b610d656110f5565b610d7157610d71611103565b565b60008160040183511015610d9457610d946102056003855185600401610ea7565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610dd857610dd861020560008585610ea7565b8351821115610df157610df16102056001848751610ea7565b8282036040519080825280601f01601f191660200182016040528015610e1e576020820181803883390190505b509050610e3f610e2d8261113c565b84610e378761113c565b018351611142565b9392505050565b604081810151825160209384015182519285019290922083517fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f85071688152948501919091529183015260608201526080902090565b600061044f60005483611206565b6060632800659560e01b848484604051602401610af893929190611bec565b606063a458d7ff60e01b82604051602401610ee19190611a14565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6000610e3f82610f7485611240565b611206565b815160405160609184906020808202808401820192910182851015610fa557610fa561020586856112c8565b82851115610fbf57610fb8858583611142565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110610fea57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250959695505050505050565b60006020835102602084018181018192505b8083101561044b5782518086141561104757600194508193505b5060208301925061102d565b606063d789b64060e01b8383604051602401611070929190611baa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600254610100900460ff1690565b47801561113957604051339082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b505b50565b60200190565b602081101561116c576001816020036101000a038019835116818551168082178652505050611201565b8282141561117957611201565b828211156111b35760208103905080820181840181515b828510156111ab578451865260209586019590940193611190565b905250611201565b60208103905080820181840183515b818612156111fc57825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111c2565b855250505b505050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6060635fc8372260e01b8383604051602401611070929190611cc9565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040805160608082018352600080835260208301529181019190915290565b803561044f81611d8c565b805161044f81611d8c565b600082601f8301126113f1578081fd5b81356114046113ff82611cfe565b611cd7565b8181529150602080830190840160005b838110156114415761142c876020843589010161144b565b83526020928301929190910190600101611414565b5050505092915050565b600082601f83011261145b578081fd5b81356114696113ff82611d1e565b915080825283602082850101111561148057600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126114a9578081fd5b81516114b76113ff82611d1e565b91508082528360208285010111156114ce57600080fd5b6114df816020840160208601611d60565b5092915050565b60006101c08083850312156114f9578182fd5b61150281611cd7565b91505061150f83836113d6565b815261151e83602084016113d6565b602082015261153083604084016113d6565b604082015261154283606084016113d6565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff808211156115a457600080fd5b6115b086838701611499565b838501526101609250828501519150808211156115cc57600080fd5b6115d886838701611499565b838501526101809250828501519150808211156115f457600080fd5b61160086838701611499565b838501526101a092508285015191508082111561161c57600080fd5b5061162985828601611499565b82840152505092915050565b60006020808385031215611647578182fd5b825167ffffffffffffffff81111561165d578283fd5b80840185601f82011261166e578384fd5b8051915061167e6113ff83611cfe565b82815283810190828501865b858110156116b3576116a18a8884518801016114e6565b8452928601929086019060010161168a565b509098975050505050505050565b600080604083850312156116d3578081fd5b82359150602083013567ffffffffffffffff8111156116f0578182fd5b6116fc8582860161144b565b9150509250929050565b600060208284031215611717578081fd5b813567ffffffffffffffff81111561172d578182fd5b6117398482850161144b565b949350505050565b600060208284031215611752578081fd5b815167ffffffffffffffff811115611768578182fd5b61173984828501611499565b600060208284031215611785578081fd5b813567ffffffffffffffff8082111561179c578283fd5b818401606081870312156117ae578384fd5b6117b86060611cd7565b925080356117c581611d8c565b8352602081810135908401526040810135828111156117e2578485fd5b6117ee8782840161144b565b6040850152509195945050505050565b60006020828403121561180f578081fd5b815167ffffffffffffffff811115611825578182fd5b611739848285016114e6565b60008060408385031215611843578182fd5b825167ffffffffffffffff8082111561185a578384fd5b611866868387016114e6565b9350602085015191508082111561187b578283fd5b506116fc858286016114e6565b6000806000806080858703121561189d578182fd5b843567ffffffffffffffff808211156118b4578384fd5b81870160a0818a0312156118c6578485fd5b6118d060a0611cd7565b92508035835260208101356020840152604081013560408401526118f789606083016113cb565b606084015260808101358281111561190d578586fd5b6119198a82840161144b565b6080850152505081955061193088602089016113cb565b94506040870135915080821115611945578384fd5b6119518883890161144b565b93506060870135915080821115611966578283fd5b50611973878288016113e1565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526119b1816020860160208601611d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845281516101c0611a9987835161197f565b87820151611aa98989018261197f565b506040820151611abc604089018261197f565b506060820151611acf606089018261197f565b506080820151608088015260a082015160a088015260c082015160c088015260e082015160e08801526101008083015181890152506101208083015181890152506101408083015182828a0152611b28838a0182611999565b915050610160915081830151888203838a0152611b458282611999565b9250505061018080830151888303828a0152611b618382611999565b9150506101a0915081830151888203838a0152611b7e8282611999565b9850505094870194505090850190600101611a5a565b5092979650505050505050565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6060810160088510611bfa57fe5b938152602081019290925260409091015290565b600060048510611c1a57fe5b84825283602083015260606040830152611c376060830184611999565b95945050505050565b600060208252610e3f6020830184611999565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152611cad60e0840182611999565b8381036020850152611cbf8186611999565b9695505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611cf657600080fd5b604052919050565b600067ffffffffffffffff821115611d14578081fd5b5060209081020190565b600067ffffffffffffffff821115611d34578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d7b578181015183820152602001611d63565b838111156105e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461113957600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820353fada6a7d942697f3b4ca6576b433bad3cc0e8814b93adb94bd3e1d3df52df6c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x6080604052600436106100b15760003560e01c8063da4fe07411610069578063ee55b9681161004e578063ee55b9681461018a578063fb6961cc146101b7578063fdd059a5146101cc576100b1565b8063da4fe07414610162578063e1c7157814610175576100b1565b806389fab5b71161009a57806389fab5b714610109578063b2562b7a1461012b578063c26cfecd14610140576100b1565b80630f7d8e39146100b357806352813679146100e9575b005b3480156100bf57600080fd5b506100d36100ce3660046116c1565b6101ec565b6040516100e09190611a14565b60405180910390f35b3480156100f557600080fd5b506100b1610104366004611888565b610455565b34801561011557600080fd5b5061011e610482565b6040516100e09190611c40565b34801561013757600080fd5b5061011e6104bb565b34801561014c57600080fd5b506101556104f4565b6040516100e09190611ba1565b6100b1610170366004611888565b6104fa565b34801561018157600080fd5b506101556105e8565b34801561019657600080fd5b506101aa6101a5366004611706565b61060c565b6040516100e09190611a35565b3480156101c357600080fd5b50610155610ac0565b3480156101d857600080fd5b506101556101e7366004611774565b610ac6565b80516000908061020a5761020a61020560008686610ad9565b610b7e565b60008360018551038151811061021c57fe5b016020015160f81c90506008811061023d5761023d61020560018787610ad9565b60008160ff16600881111561024e57fe5b9050600081600881111561025e57fe5b14156102785761027361020560028888610ad9565b61043c565b600181600881111561028657fe5b141561029b5761027361020560038888610ad9565b60028160088111156102a957fe5b141561038557826042146102c6576102c661020560008888610ad9565b6000856000815181106102d557fe5b016020015160f81c905060006102f287600163ffffffff610b8616565b9050600061030788602163ffffffff610b8616565b90506001898484846040516000815260200160405260405161032c9493929190611bce565b6020604051602081039080840390855afa15801561034e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151975061044f9650505050505050565b600381600881111561039357fe5b141561043c57826042146103b0576103b061020560008888610ad9565b6000856000815181106103bf57fe5b016020015160f81c905060006103dc87600163ffffffff610b8616565b905060006103f188602163ffffffff610b8616565b905060018960405160200161040691906119e3565b604051602081830303815290604052805190602001208484846040516000815260200160405260405161032c9493929190611bce565b61044b61020560018888610ad9565b5050505b92915050565b6060610464856080015161060c565b80519091501561047b5761047b8582868686610bb0565b5050505050565b6040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000081525081565b6040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b61050684848484610455565b6002546040517f2280c9100000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff1690632280c9109034906105659088908790600401611c53565b6000604051808303818588803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d99190810190611741565b506105e2610d5d565b50505050565b7fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f850716881565b60606000610620838263ffffffff610d7316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f9b44d5560000000000000000000000000000000000000000000000000000000014806106b357507fffffffff0000000000000000000000000000000000000000000000000000000081167fe14b58c400000000000000000000000000000000000000000000000000000000145b1561073c576106c06112e5565b83516106d690859060049063ffffffff610dbf16565b8060200190516106e991908101906117fe565b604080516001808252818301909252919250816020015b6107086112e5565b815260200190600190039081610700579050509250808360008151811061072b57fe5b602002602001018190525050610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f9694a4020000000000000000000000000000000000000000000000000000000014806107cd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f8ea8dfe400000000000000000000000000000000000000000000000000000000145b8061081957507fffffffff0000000000000000000000000000000000000000000000000000000081167fbeee2e1400000000000000000000000000000000000000000000000000000000145b8061086557507fffffffff0000000000000000000000000000000000000000000000000000000081167f78d29ac100000000000000000000000000000000000000000000000000000000145b806108b157507fffffffff0000000000000000000000000000000000000000000000000000000081167f8bc8efb300000000000000000000000000000000000000000000000000000000145b806108fd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f369da09900000000000000000000000000000000000000000000000000000000145b8061094957507fffffffff0000000000000000000000000000000000000000000000000000000081167fa6c3bf3300000000000000000000000000000000000000000000000000000000145b1561097e57825161096490849060049063ffffffff610dbf16565b8060200190516109779190810190611635565b9150610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f88ec79fb000000000000000000000000000000000000000000000000000000001480610a0f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fb718e29200000000000000000000000000000000000000000000000000000000145b15610aba57610a1c6112e5565b610a246112e5565b8451610a3a90869060049063ffffffff610dbf16565b806020019051610a4d9190810190611831565b60408051600280825260608201909252929450909250816020015b610a706112e5565b815260200190600190039081610a685790505093508184600081518110610a9357fe5b60200260200101819052508084600181518110610aac57fe5b602002602001018190525050505b50919050565b60005481565b600061044f610ad483610e46565b610e99565b606063779c522360e01b848484604051602401610af893929190611c0e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b60008160200183511015610ba757610ba76102056005855185602001610ea7565b50016020015190565b3273ffffffffffffffffffffffffffffffffffffffff841614610bd957610bd961020584610ec6565b6000610be786600154610f65565b60408051600080825260208201909252845192935091905b818114610c9057610c0e6113ac565b60405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881525090506000610c4c82610ac6565b90506000610c6d82898681518110610c6057fe5b60200260200101516101ec565b9050610c7f868263ffffffff610f7916565b95505060019092019150610bff9050565b50610ca1823263ffffffff610f7916565b875190925060005b818114610d5157600073ffffffffffffffffffffffffffffffffffffffff16898281518110610cd457fe5b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff161415610d0157610d49565b6000898281518110610d0f57fe5b60200260200101516040015190506000610d32828761101b90919063ffffffff16565b905080610d4657610d466102058884611053565b50505b600101610ca9565b50505050505050505050565b610d656110f5565b610d7157610d71611103565b565b60008160040183511015610d9457610d946102056003855185600401610ea7565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610dd857610dd861020560008585610ea7565b8351821115610df157610df16102056001848751610ea7565b8282036040519080825280601f01601f191660200182016040528015610e1e576020820181803883390190505b509050610e3f610e2d8261113c565b84610e378761113c565b018351611142565b9392505050565b604081810151825160209384015182519285019290922083517fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f85071688152948501919091529183015260608201526080902090565b600061044f60005483611206565b6060632800659560e01b848484604051602401610af893929190611bec565b606063a458d7ff60e01b82604051602401610ee19190611a14565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6000610e3f82610f7485611240565b611206565b815160405160609184906020808202808401820192910182851015610fa557610fa561020586856112c8565b82851115610fbf57610fb8858583611142565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110610fea57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250959695505050505050565b60006020835102602084018181018192505b8083101561044b5782518086141561104757600194508193505b5060208301925061102d565b606063d789b64060e01b8383604051602401611070929190611baa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600254610100900460ff1690565b47801561113957604051339082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b505b50565b60200190565b602081101561116c576001816020036101000a038019835116818551168082178652505050611201565b8282141561117957611201565b828211156111b35760208103905080820181840181515b828510156111ab578451865260209586019590940193611190565b905250611201565b60208103905080820181840183515b818612156111fc57825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111c2565b855250505b505050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6060635fc8372260e01b8383604051602401611070929190611cc9565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040805160608082018352600080835260208301529181019190915290565b803561044f81611d8c565b805161044f81611d8c565b600082601f8301126113f1578081fd5b81356114046113ff82611cfe565b611cd7565b8181529150602080830190840160005b838110156114415761142c876020843589010161144b565b83526020928301929190910190600101611414565b5050505092915050565b600082601f83011261145b578081fd5b81356114696113ff82611d1e565b915080825283602082850101111561148057600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126114a9578081fd5b81516114b76113ff82611d1e565b91508082528360208285010111156114ce57600080fd5b6114df816020840160208601611d60565b5092915050565b60006101c08083850312156114f9578182fd5b61150281611cd7565b91505061150f83836113d6565b815261151e83602084016113d6565b602082015261153083604084016113d6565b604082015261154283606084016113d6565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff808211156115a457600080fd5b6115b086838701611499565b838501526101609250828501519150808211156115cc57600080fd5b6115d886838701611499565b838501526101809250828501519150808211156115f457600080fd5b61160086838701611499565b838501526101a092508285015191508082111561161c57600080fd5b5061162985828601611499565b82840152505092915050565b60006020808385031215611647578182fd5b825167ffffffffffffffff81111561165d578283fd5b80840185601f82011261166e578384fd5b8051915061167e6113ff83611cfe565b82815283810190828501865b858110156116b3576116a18a8884518801016114e6565b8452928601929086019060010161168a565b509098975050505050505050565b600080604083850312156116d3578081fd5b82359150602083013567ffffffffffffffff8111156116f0578182fd5b6116fc8582860161144b565b9150509250929050565b600060208284031215611717578081fd5b813567ffffffffffffffff81111561172d578182fd5b6117398482850161144b565b949350505050565b600060208284031215611752578081fd5b815167ffffffffffffffff811115611768578182fd5b61173984828501611499565b600060208284031215611785578081fd5b813567ffffffffffffffff8082111561179c578283fd5b818401606081870312156117ae578384fd5b6117b86060611cd7565b925080356117c581611d8c565b8352602081810135908401526040810135828111156117e2578485fd5b6117ee8782840161144b565b6040850152509195945050505050565b60006020828403121561180f578081fd5b815167ffffffffffffffff811115611825578182fd5b611739848285016114e6565b60008060408385031215611843578182fd5b825167ffffffffffffffff8082111561185a578384fd5b611866868387016114e6565b9350602085015191508082111561187b578283fd5b506116fc858286016114e6565b6000806000806080858703121561189d578182fd5b843567ffffffffffffffff808211156118b4578384fd5b81870160a0818a0312156118c6578485fd5b6118d060a0611cd7565b92508035835260208101356020840152604081013560408401526118f789606083016113cb565b606084015260808101358281111561190d578586fd5b6119198a82840161144b565b6080850152505081955061193088602089016113cb565b94506040870135915080821115611945578384fd5b6119518883890161144b565b93506060870135915080821115611966578283fd5b50611973878288016113e1565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526119b1816020860160208601611d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845281516101c0611a9987835161197f565b87820151611aa98989018261197f565b506040820151611abc604089018261197f565b506060820151611acf606089018261197f565b506080820151608088015260a082015160a088015260c082015160c088015260e082015160e08801526101008083015181890152506101208083015181890152506101408083015182828a0152611b28838a0182611999565b915050610160915081830151888203838a0152611b458282611999565b9250505061018080830151888303828a0152611b618382611999565b9150506101a0915081830151888203838a0152611b7e8282611999565b9850505094870194505090850190600101611a5a565b5092979650505050505050565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6060810160088510611bfa57fe5b938152602081019290925260409091015290565b600060048510611c1a57fe5b84825283602083015260606040830152611c376060830184611999565b95945050505050565b600060208252610e3f6020830184611999565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152611cad60e0840182611999565b8381036020850152611cbf8186611999565b9695505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611cf657600080fd5b604052919050565b600067ffffffffffffffff821115611d14578081fd5b5060209081020190565b600067ffffffffffffffff821115611d34578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d7b578181015183820152602001611d63565b838111156105e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461113957600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820926abd0f9ec1c8b67d93fbc87771f0336fe827fb0a1927bf1606417cd86e97966c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x6080604052600436106100b15760003560e01c8063da4fe07411610069578063ee55b9681161004e578063ee55b9681461018a578063fb6961cc146101b7578063fdd059a5146101cc576100b1565b8063da4fe07414610162578063e1c7157814610175576100b1565b806389fab5b71161009a57806389fab5b714610109578063b2562b7a1461012b578063c26cfecd14610140576100b1565b80630f7d8e39146100b357806352813679146100e9575b005b3480156100bf57600080fd5b506100d36100ce3660046116c1565b6101ec565b6040516100e09190611a14565b60405180910390f35b3480156100f557600080fd5b506100b1610104366004611888565b610455565b34801561011557600080fd5b5061011e610482565b6040516100e09190611c40565b34801561013757600080fd5b5061011e6104bb565b34801561014c57600080fd5b506101556104f4565b6040516100e09190611ba1565b6100b1610170366004611888565b6104fa565b34801561018157600080fd5b506101556105e8565b34801561019657600080fd5b506101aa6101a5366004611706565b61060c565b6040516100e09190611a35565b3480156101c357600080fd5b50610155610ac0565b3480156101d857600080fd5b506101556101e7366004611774565b610ac6565b80516000908061020a5761020a61020560008686610ad9565b610b7e565b60008360018551038151811061021c57fe5b016020015160f81c90506008811061023d5761023d61020560018787610ad9565b60008160ff16600881111561024e57fe5b9050600081600881111561025e57fe5b14156102785761027361020560028888610ad9565b61043c565b600181600881111561028657fe5b141561029b5761027361020560038888610ad9565b60028160088111156102a957fe5b141561038557826042146102c6576102c661020560008888610ad9565b6000856000815181106102d557fe5b016020015160f81c905060006102f287600163ffffffff610b8616565b9050600061030788602163ffffffff610b8616565b90506001898484846040516000815260200160405260405161032c9493929190611bce565b6020604051602081039080840390855afa15801561034e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151975061044f9650505050505050565b600381600881111561039357fe5b141561043c57826042146103b0576103b061020560008888610ad9565b6000856000815181106103bf57fe5b016020015160f81c905060006103dc87600163ffffffff610b8616565b905060006103f188602163ffffffff610b8616565b905060018960405160200161040691906119e3565b604051602081830303815290604052805190602001208484846040516000815260200160405260405161032c9493929190611bce565b61044b61020560018888610ad9565b5050505b92915050565b6060610464856080015161060c565b80519091501561047b5761047b8582868686610bb0565b5050505050565b6040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000081525081565b6040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b61050684848484610455565b6002546040517f2280c9100000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff1690632280c9109034906105659088908790600401611c53565b6000604051808303818588803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d99190810190611741565b506105e2610d5d565b50505050565b7fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f850716881565b60606000610620838263ffffffff610d7316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f9b44d5560000000000000000000000000000000000000000000000000000000014806106b357507fffffffff0000000000000000000000000000000000000000000000000000000081167fe14b58c400000000000000000000000000000000000000000000000000000000145b1561073c576106c06112e5565b83516106d690859060049063ffffffff610dbf16565b8060200190516106e991908101906117fe565b604080516001808252818301909252919250816020015b6107086112e5565b815260200190600190039081610700579050509250808360008151811061072b57fe5b602002602001018190525050610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f9694a4020000000000000000000000000000000000000000000000000000000014806107cd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f8ea8dfe400000000000000000000000000000000000000000000000000000000145b8061081957507fffffffff0000000000000000000000000000000000000000000000000000000081167fbeee2e1400000000000000000000000000000000000000000000000000000000145b8061086557507fffffffff0000000000000000000000000000000000000000000000000000000081167f78d29ac100000000000000000000000000000000000000000000000000000000145b806108b157507fffffffff0000000000000000000000000000000000000000000000000000000081167f8bc8efb300000000000000000000000000000000000000000000000000000000145b806108fd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f369da09900000000000000000000000000000000000000000000000000000000145b8061094957507fffffffff0000000000000000000000000000000000000000000000000000000081167fa6c3bf3300000000000000000000000000000000000000000000000000000000145b1561097e57825161096490849060049063ffffffff610dbf16565b8060200190516109779190810190611635565b9150610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f88ec79fb000000000000000000000000000000000000000000000000000000001480610a0f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fb718e29200000000000000000000000000000000000000000000000000000000145b15610aba57610a1c6112e5565b610a246112e5565b8451610a3a90869060049063ffffffff610dbf16565b806020019051610a4d9190810190611831565b60408051600280825260608201909252929450909250816020015b610a706112e5565b815260200190600190039081610a685790505093508184600081518110610a9357fe5b60200260200101819052508084600181518110610aac57fe5b602002602001018190525050505b50919050565b60005481565b600061044f610ad483610e46565b610e99565b606063779c522360e01b848484604051602401610af893929190611c0e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b60008160200183511015610ba757610ba76102056005855185602001610ea7565b50016020015190565b3273ffffffffffffffffffffffffffffffffffffffff841614610bd957610bd961020584610ec6565b6000610be786600154610f65565b60408051600080825260208201909252845192935091905b818114610c9057610c0e6113ac565b60405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881525090506000610c4c82610ac6565b90506000610c6d82898681518110610c6057fe5b60200260200101516101ec565b9050610c7f868263ffffffff610f7916565b95505060019092019150610bff9050565b50610ca1823263ffffffff610f7916565b875190925060005b818114610d5157600073ffffffffffffffffffffffffffffffffffffffff16898281518110610cd457fe5b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff161415610d0157610d49565b6000898281518110610d0f57fe5b60200260200101516040015190506000610d32828761101b90919063ffffffff16565b905080610d4657610d466102058884611053565b50505b600101610ca9565b50505050505050505050565b610d656110f5565b610d7157610d71611103565b565b60008160040183511015610d9457610d946102056003855185600401610ea7565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610dd857610dd861020560008585610ea7565b8351821115610df157610df16102056001848751610ea7565b8282036040519080825280601f01601f191660200182016040528015610e1e576020820181803883390190505b509050610e3f610e2d8261113c565b84610e378761113c565b018351611142565b9392505050565b604081810151825160209384015182519285019290922083517fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f85071688152948501919091529183015260608201526080902090565b600061044f60005483611206565b6060632800659560e01b848484604051602401610af893929190611bec565b606063a458d7ff60e01b82604051602401610ee19190611a14565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6000610e3f82610f7485611240565b611206565b815160405160609184906020808202808401820192910182851015610fa557610fa561020586856112c8565b82851115610fbf57610fb8858583611142565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110610fea57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250959695505050505050565b60006020835102602084018181018192505b8083101561044b5782518086141561104757600194508193505b5060208301925061102d565b606063d789b64060e01b8383604051602401611070929190611baa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600254610100900460ff1690565b47801561113957604051339082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b505b50565b60200190565b602081101561116c576001816020036101000a038019835116818551168082178652505050611201565b8282141561117957611201565b828211156111b35760208103905080820181840181515b828510156111ab578451865260209586019590940193611190565b905250611201565b60208103905080820181840183515b818612156111fc57825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111c2565b855250505b505050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6060635fc8372260e01b8383604051602401611070929190611cc9565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040805160608082018352600080835260208301529181019190915290565b803561044f81611d8c565b805161044f81611d8c565b600082601f8301126113f1578081fd5b81356114046113ff82611cfe565b611cd7565b8181529150602080830190840160005b838110156114415761142c876020843589010161144b565b83526020928301929190910190600101611414565b5050505092915050565b600082601f83011261145b578081fd5b81356114696113ff82611d1e565b915080825283602082850101111561148057600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126114a9578081fd5b81516114b76113ff82611d1e565b91508082528360208285010111156114ce57600080fd5b6114df816020840160208601611d60565b5092915050565b60006101c08083850312156114f9578182fd5b61150281611cd7565b91505061150f83836113d6565b815261151e83602084016113d6565b602082015261153083604084016113d6565b604082015261154283606084016113d6565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff808211156115a457600080fd5b6115b086838701611499565b838501526101609250828501519150808211156115cc57600080fd5b6115d886838701611499565b838501526101809250828501519150808211156115f457600080fd5b61160086838701611499565b838501526101a092508285015191508082111561161c57600080fd5b5061162985828601611499565b82840152505092915050565b60006020808385031215611647578182fd5b825167ffffffffffffffff81111561165d578283fd5b80840185601f82011261166e578384fd5b8051915061167e6113ff83611cfe565b82815283810190828501865b858110156116b3576116a18a8884518801016114e6565b8452928601929086019060010161168a565b509098975050505050505050565b600080604083850312156116d3578081fd5b82359150602083013567ffffffffffffffff8111156116f0578182fd5b6116fc8582860161144b565b9150509250929050565b600060208284031215611717578081fd5b813567ffffffffffffffff81111561172d578182fd5b6117398482850161144b565b949350505050565b600060208284031215611752578081fd5b815167ffffffffffffffff811115611768578182fd5b61173984828501611499565b600060208284031215611785578081fd5b813567ffffffffffffffff8082111561179c578283fd5b818401606081870312156117ae578384fd5b6117b86060611cd7565b925080356117c581611d8c565b8352602081810135908401526040810135828111156117e2578485fd5b6117ee8782840161144b565b6040850152509195945050505050565b60006020828403121561180f578081fd5b815167ffffffffffffffff811115611825578182fd5b611739848285016114e6565b60008060408385031215611843578182fd5b825167ffffffffffffffff8082111561185a578384fd5b611866868387016114e6565b9350602085015191508082111561187b578283fd5b506116fc858286016114e6565b6000806000806080858703121561189d578182fd5b843567ffffffffffffffff808211156118b4578384fd5b81870160a0818a0312156118c6578485fd5b6118d060a0611cd7565b92508035835260208101356020840152604081013560408401526118f789606083016113cb565b606084015260808101358281111561190d578586fd5b6119198a82840161144b565b6080850152505081955061193088602089016113cb565b94506040870135915080821115611945578384fd5b6119518883890161144b565b93506060870135915080821115611966578283fd5b50611973878288016113e1565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526119b1816020860160208601611d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845281516101c0611a9987835161197f565b87820151611aa98989018261197f565b506040820151611abc604089018261197f565b506060820151611acf606089018261197f565b506080820151608088015260a082015160a088015260c082015160c088015260e082015160e08801526101008083015181890152506101208083015181890152506101408083015182828a0152611b28838a0182611999565b915050610160915081830151888203838a0152611b458282611999565b9250505061018080830151888303828a0152611b618382611999565b9150506101a0915081830151888203838a0152611b7e8282611999565b9850505094870194505090850190600101611a5a565b5092979650505050505050565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6060810160088510611bfa57fe5b938152602081019290925260409091015290565b600060048510611c1a57fe5b84825283602083015260606040830152611c376060830184611999565b95945050505050565b600060208252610e3f6020830184611999565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152611cad60e0840182611999565b8381036020850152611cbf8186611999565b9695505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611cf657600080fd5b604052919050565b600067ffffffffffffffff821115611d14578081fd5b5060209081020190565b600067ffffffffffffffff821115611d34578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d7b578181015183820152602001611d63565b838111156105e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461113957600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820353fada6a7d942697f3b4ca6576b433bad3cc0e8814b93adb94bd3e1d3df52df6c6578706572696d656e74616cf564736f6c63430005110040" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/CoordinatorRegistry.json b/packages/contract-artifacts/artifacts/CoordinatorRegistry.json index 81316f4256..dd4215f486 100644 --- a/packages/contract-artifacts/artifacts/CoordinatorRegistry.json +++ b/packages/contract-artifacts/artifacts/CoordinatorRegistry.json @@ -47,16 +47,16 @@ }, "evm": { "bytecode": { - "object": "0x608060405234801561001057600080fd5b506103e9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80635b2388be1461003b5780636c90fedb146100ad575b600080fd5b6100ab6004803603602081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b509092509050610155565b005b6100e0600480360360208110156100c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011a578181015183820152602001610102565b50505050905090810190601f1680156101475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b33600081815260208190526040902061016f9084846102fb565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e818484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061035a578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610387565b82800160010185558215610387579182015b8281111561038757823582559160200191906001019061036c565b50610393929150610397565b5090565b6103b191905b80821115610393576000815560010161039d565b9056fea265627a7a72315820e93b5d7674acdd9933b6d0a1751b8cbceb8b51d6f0182e77f449213a4d321fc264736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b506103e9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80635b2388be1461003b5780636c90fedb146100ad575b600080fd5b6100ab6004803603602081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b509092509050610155565b005b6100e0600480360360208110156100c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011a578181015183820152602001610102565b50505050905090810190601f1680156101475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b33600081815260208190526040902061016f9084846102fb565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e818484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061035a578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610387565b82800160010185558215610387579182015b8281111561038757823582559160200191906001019061036c565b50610393929150610397565b5090565b6103b191905b80821115610393576000815560010161039d565b9056fea265627a7a723158209cc2a91500814c4a416a32432823efbf6f7dbf13ab2e764101a70f6ef77fcb4a64736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80635b2388be1461003b5780636c90fedb146100ad575b600080fd5b6100ab6004803603602081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b509092509050610155565b005b6100e0600480360360208110156100c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011a578181015183820152602001610102565b50505050905090810190601f1680156101475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b33600081815260208190526040902061016f9084846102fb565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e818484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061035a578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610387565b82800160010185558215610387579182015b8281111561038757823582559160200191906001019061036c565b50610393929150610397565b5090565b6103b191905b80821115610393576000815560010161039d565b9056fea265627a7a72315820e93b5d7674acdd9933b6d0a1751b8cbceb8b51d6f0182e77f449213a4d321fc264736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80635b2388be1461003b5780636c90fedb146100ad575b600080fd5b6100ab6004803603602081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b509092509050610155565b005b6100e0600480360360208110156100c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011a578181015183820152602001610102565b50505050905090810190601f1680156101475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b33600081815260208190526040902061016f9084846102fb565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e818484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061035a578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610387565b82800160010185558215610387579182015b8281111561038757823582559160200191906001019061036c565b50610393929150610397565b5090565b6103b191905b80821115610393576000815560010161039d565b9056fea265627a7a723158209cc2a91500814c4a416a32432823efbf6f7dbf13ab2e764101a70f6ef77fcb4a64736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/DevUtils.json b/packages/contract-artifacts/artifacts/DevUtils.json index 3c07106ee5..2df6a4ee9f 100644 --- a/packages/contract-artifacts/artifacts/DevUtils.json +++ b/packages/contract-artifacts/artifacts/DevUtils.json @@ -838,16 +838,16 @@ }, "evm": { "bytecode": { - "object": "0x60806040523480156200001157600080fd5b5060405162005498380380620054988339810160408190526200003491620003f5565b600080546001600160a01b03199081166001600160a01b0386811691821784556005805484168783161790556006805490931690851617909155604051630c0e082160e31b81528291869186918691636070410890620000a090630f47261b60e41b9060040162000448565b60206040518083038186803b158015620000b957600080fd5b505afa158015620000ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620000f49190810190620003c5565b600180546001600160a01b0319166001600160a01b03928316179055604051630c0e082160e31b8152908416906360704108906200013e9063012b8bc960e11b9060040162000448565b60206040518083038186803b1580156200015757600080fd5b505afa1580156200016c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001929190810190620003c5565b600280546001600160a01b0319166001600160a01b03928316179055604051630c0e082160e31b815290841690636070410890620001dc9063a7cb5fb760e01b9060040162000448565b60206040518083038186803b158015620001f557600080fd5b505afa1580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002309190810190620003c5565b600380546001600160a01b0319166001600160a01b03928316179055604051630c0e082160e31b8152908416906360704108906200027a9063619ce88560e11b9060040162000448565b60206040518083038186803b1580156200029357600080fd5b505afa158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002ce9190810190620003c5565b600480546001600160a01b0319166001600160a01b03928316179055600093508416159150620003019050578162000303565b305b90506200035e6040518060400160405280600b81526020016a0c1e08141c9bdd1bd8dbdb60aa1b815250604051806040016040528060058152602001640332e302e360dc1b81525085846200036e60201b62002a151760201c565b6007555062000476945050505050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600060208284031215620003d7578081fd5b81516001600160a01b0381168114620003ee578182fd5b9392505050565b6000806000606084860312156200040a578182fd5b835162000417816200045d565b60208501519093506200042a816200045d565b60408501519092506200043d816200045d565b809150509250925092565b6001600160e01b031991909116815260200190565b6001600160a01b03811681146200047357600080fd5b50565b61501280620004866000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c8063a5cd62ba11610160578063d186037f116100d8578063e4e6e7da1161008c578063ee18599711610071578063ee185997146105d8578063ef3bb097146105e0578063ff84e7cc146105e857610277565b8063e4e6e7da14610595578063e77286eb146105b657610277565b8063d3d862d1116100bd578063d3d862d114610540578063d469502814610553578063e25cabf71461057357610277565b8063d186037f1461051a578063d36379051461052d57610277565b8063bbb2dcf61161012f578063c82037ef11610114578063c82037ef146104dc578063ca49f47c146104e4578063d001c5dc1461050757610277565b8063bbb2dcf6146104b2578063c26cfecd146104d457610277565b8063a5cd62ba14610464578063a6627e9f14610484578063a7530f1214610497578063b43cffe11461049f57610277565b80637982653e116101f35780639baf2705116101c25780639eadc835116101a75780639eadc8351461041a578063a070cac81461043e578063a0901e511461045157610277565b80639baf2705146103fd5780639cd016051461041257610277565b80637982653e1461039657806379c9c426146103b65780637d727512146103c95780638f4ce479146103dc57610277565b80634dfdac201161024a57806363eb39921161022f57806363eb39921461033d5780636f83188e14610350578063750bdb301461037357610277565b80634dfdac20146102fd578063590aa8751461031d57610277565b806304a5618a1461027c5780630d7b7d76146102a75780632322cf76146102c857806346eb65cb146102e8575b600080fd5b61028f61028a366004614296565b6105f0565b60405161029e93929190614ce9565b60405180910390f35b6102ba6102b5366004613d5a565b610689565b60405161029e929190614ef1565b6102db6102d6366004613d5a565b6106ab565b60405161029e9190614bc6565b6102fb6102f6366004614296565b6106d3565b005b61031061030b366004613c75565b610757565b60405161029e9190614b1e565b61033061032b366004613c59565b6107da565b60405161029e9190614d49565b61033061034b366004613d9e565b610889565b61036361035e366004614296565b61093c565b60405161029e9493929190614ddd565b610386610381366004614296565b6109dc565b60405161029e9493929190614c07565b6103a96103a4366004614468565b610a6e565b60405161029e9190614dca565b6102db6103c4366004614570565b610b20565b6102db6103d7366004613d5a565b610ba1565b6103ef6103ea366004614296565b611497565b60405161029e929190614be4565b61040561152a565b60405161029e9190614871565b610405611539565b61042d610428366004614296565b611548565b60405161029e959493929190614c43565b6102db61044c366004614517565b6115ed565b61031061045f366004613e20565b61166e565b610477610472366004613eee565b6116e7565b60405161029e9190614a37565b610330610492366004613df5565b6117a1565b610405611851565b6103306104ad366004613cc3565b611860565b6104c56104c0366004614296565b611916565b60405161029e93929190614d14565b6102db6119a6565b6104056119ac565b6104f76104f2366004614296565b6119bb565b60405161029e9493929190614ca6565b610310610515366004613c75565b611a4d565b6102db610528366004613d5a565b611abb565b6103a961053b366004614468565b6123b7565b61033061054e366004613fc9565b612419565b610566610561366004614296565b61246e565b60405161029e9190614bcf565b610586610581366004613f72565b612511565b60405161029e93929190614a83565b6105a86105a3366004613c75565b612649565b60405161029e929190614ba1565b6105c96105c43660046144c0565b612662565b60405161029e93929190614e6a565b6104056129d2565b6104056129e1565b6104056129f0565b600080600073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a856040518263ffffffff1660e01b815260040161062c9190614d49565b60606040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c91908101906141ec565b9250925092509193909250565b6000806106968484610ba1565b91506106a28484611abb565b90509250929050565b60008060006106ba8585610689565b915091506106c882826129ff565b925050505b92915050565b6040517f46eb65cb00000000000000000000000000000000000000000000000000000000815273__$d8b635de2bf4a097b4e18b67d0fb68e779$__906346eb65cb90610723908490600401614d49565b60006040518083038186803b15801561073b57600080fd5b505af415801561074f573d6000803e3d6000fd5b505050505b50565b606060008251905080604051908082528060200260200182016040528015610789578160200160208202803883390190505b50915060005b8181146107d2576107b3858583815181106107a657fe5b6020026020010151611abb565b8382815181106107bf57fe5b602090810291909101015260010161078f565b505092915050565b6040517f590aa87500000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063590aa8759061082d908590600401614871565b60006040518083038186803b15801561084557600080fd5b505af4158015610859573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261088191908101906142c9565b90505b919050565b6040517f63eb399200000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__906363eb3992906108e0908790879087906004016149b7565b60006040518083038186803b1580156108f857600080fd5b505af415801561090c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261093491908101906142c9565b949350505050565b60608060608073__$fddee3b26a806429350031cf3481976d2e$__636f83188e866040518263ffffffff1660e01b81526004016109799190614d49565b60006040518083038186803b15801561099157600080fd5b505af41580156109a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614333565b93509350935093509193509193565b6000806000606073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b8152600401610a1a9190614d49565b60006040518083038186803b158015610a3257600080fd5b505af4158015610a46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614070565b600080546040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__91639caa023b91610ad0916001600160a01b0316908890889088906004016149e9565b60206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109349190810190614318565b600061093484610b9c6040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e300000000000000000000000000000000000000000000000000000008152508787612a15565b612a6c565b600080610bb4838263ffffffff612a8016565b90506001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415610c0f576000610bfb84601063ffffffff612ab916565b9050610c078186612aec565b925050611490565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415610e285760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a866040518263ffffffff1660e01b8152600401610c7b9190614d49565b60606040518083038186803b158015610c9357600080fd5b505af4158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ccb91908101906141ec565b6040519194509250606091507f6352211e0000000000000000000000000000000000000000000000000000000090610d07908490602401614bc6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051610d829190614855565b600060405180830381855afa9150503d8060008114610dbd576040519150601f19603f3d011682016040523d82523d6000602084013e610dc2565b606091505b50915091506000828015610dd7575081516020145b610de2576000610df3565b610df382600c63ffffffff612ab916565b9050896001600160a01b0316816001600160a01b031614610e15576000610e18565b60015b60ff169750505050505050611490565b6001600160e01b031981167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156110c457600060608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__639eadc835876040518263ffffffff1660e01b8152600401610e969190614d49565b60006040518083038186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eea91908101906140da565b5081519296509094509250905060005b8181146110ba57828181518110610f0d57fe5b602002602001015160001415610f22576110b2565b83516060907efdd58e00000000000000000000000000000000000000000000000000000000908b90879085908110610f5657fe5b6020026020010151604051602401610f6f929190614a1e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060876001600160a01b031683604051610fea9190614855565b600060405180830381855afa9150503d8060008114611025576040519150601f19603f3d011682016040523d82523d6000602084013e61102a565b606091505b5091509150600082801561103f575081516020145b61104a57600061105b565b61105b82600063ffffffff612be416565b9050600087868151811061106b57fe5b6020026020010151828161107b57fe5b049050806110975760009b5050505050505050505050506106cd565b8b8110806110a357508b155b156110ac57809b505b50505050505b600101610efa565b5050505050611490565b6001600160e01b031981167fc339d10a0000000000000000000000000000000000000000000000000000000014156111f7576040516060907fa85e59e4000000000000000000000000000000000000000000000000000000009061113390869060009081908190602401614d5c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199094169390931790925260045491519092506000916001600160a01b03169061119a908490614855565b600060405180830381855afa9150503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111da565b606091505b50509050806111ea5760006111ee565b6000195b93505050611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156113205760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b81526004016112639190614d49565b60006040518083038186803b15801561127b57600080fd5b505af415801561128f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b79190810190614070565b5092509250506112c5612bf0565b6001600160a01b0316826001600160a01b03161480156112f257506005546001600160a01b038281169116145b1561131957600061130a611304612c08565b88612aec565b905061131581612c20565b9450505b5050611490565b6001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014156114905760608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6866040518263ffffffff1660e01b815260040161138c9190614d49565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e0919081019061422c565b80519194509250905060005b81811461148b578381815181106113ff57fe5b60200260200101516000141561141457611483565b60006114338985848151811061142657fe5b6020026020010151610ba1565b9050600085838151811061144357fe5b6020026020010151828161145357fe5b0490508061146b5760009750505050505050506106cd565b87811080611477575087155b15611480578097505b50505b6001016113ec565b505050505b5092915050565b60008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__638f4ce479846040518263ffffffff1660e01b81526004016114d19190614d49565b604080518083038186803b1580156114e857600080fd5b505af41580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115209190810190614039565b915091505b915091565b6004546001600160a01b031681565b6000546001600160a01b031681565b600080606080606073__$d8b635de2bf4a097b4e18b67d0fb68e779$__639eadc835876040518263ffffffff1660e01b81526004016115879190614d49565b60006040518083038186803b15801561159f57600080fd5b505af41580156115b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115db91908101906140da565b939a9299509097509550909350915050565b6000610934846116696040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e300000000000000000000000000000000000000000000000000000008152508787612a15565b612e1e565b606080825160405190808252806020026020018201604052801561169c578160200160208202803883390190505b50905060005b83518114611490578381815181106116b657fe5b60200260200101516001600160a01b0316318282815181106116d457fe5b60209081029190910101526001016116a2565b6000546040517f02cffc4500000000000000000000000000000000000000000000000000000000815260609173__$7a69f714cdde1cb6b62e3c39bc8c94deae$__916302cffc459161174d916001600160a01b039091169088908890889060040161489f565b60006040518083038186803b15801561176557600080fd5b505af4158015611779573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109349190810190613e53565b6040517fa6627e9f00000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063a6627e9f906117f69086908690600401614a1e565b60006040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184a91908101906142c9565b9392505050565b6006546001600160a01b031681565b6040517fb43cffe100000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063b43cffe1906118b9908890889088908890600401614965565b60006040518083038186803b1580156118d157600080fd5b505af41580156118e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261190d91908101906142c9565b95945050505050565b600060608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6856040518263ffffffff1660e01b81526004016119529190614d49565b60006040518083038186803b15801561196a57600080fd5b505af415801561197e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067c919081019061422c565b60075481565b6005546001600160a01b031681565b6000806060600073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63ca49f47c866040518263ffffffff1660e01b81526004016119f99190614d49565b60006040518083038186803b158015611a1157600080fd5b505af4158015611a25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614184565b606060008251905080604051908082528060200260200182016040528015611a7f578160200160208202803883390190505b50915060005b8181146107d257611a9c8585838151811061142657fe5b838281518110611aa857fe5b6020908102919091010152600101611a85565b600080611ace838263ffffffff612a8016565b90506001600160e01b031981167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611c395760608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6866040518263ffffffff1660e01b8152600401611b3c9190614d49565b60006040518083038186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b90919081019061422c565b80519194509250905060005b818114611c2e57838181518110611baf57fe5b602002602001015160001415611bc457611c26565b6000611bd6898584815181106107a657fe5b90506000858381518110611be657fe5b60200260200101518281611bf657fe5b04905080611c0e5760009750505050505050506106cd565b87811080611c1a575087155b15611c23578097505b50505b600101611b9c565b506106cd9350505050565b6001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415611c9a576000611c7e84601063ffffffff612ab916565b600154909150610c0790829087906001600160a01b0316612e2d565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415611fea5760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a866040518263ffffffff1660e01b8152600401611d069190614d49565b60606040518083038186803b158015611d1e57600080fd5b505af4158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5691908101906141ec565b600254604051929550909350606092507fe985e9c50000000000000000000000000000000000000000000000000000000091611da2918a916001600160a01b0390911690602401614885565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051611e1d9190614855565b600060405180830381855afa9150503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5091509150811580611e7157508051602014155b80611e8d5750611e8881600063ffffffff612be416565b600114155b15611fdb576040516060907f081812fc0000000000000000000000000000000000000000000000000000000090611ec8908790602401614bc6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050856001600160a01b031681604051611f3f9190614855565b600060405180830381855afa9150503d8060008114611f7a576040519150601f19603f3d011682016040523d82523d6000602084013e611f7f565b606091505b509093509150828015611f93575081516020145b8015611fc257506002546001600160a01b0316611fb783600c63ffffffff612ab916565b6001600160a01b0316145b611fcd576000611fd0565b60015b60ff169750506110ba565b60001996505050505050611490565b6001600160e01b031981167fa7cb5fb7000000000000000000000000000000000000000000000000000000001415612211576040517f9eadc83500000000000000000000000000000000000000000000000000000000815260009073__$d8b635de2bf4a097b4e18b67d0fb68e779$__90639eadc8359061206f908790600401614d49565b60006040518083038186803b15801561208757600080fd5b505af415801561209b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120c391908101906140da565b5050600354604051929450606093507fe985e9c5000000000000000000000000000000000000000000000000000000009261210d925089916001600160a01b031690602401614885565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060836001600160a01b0316836040516121889190614855565b600060405180830381855afa9150503d80600081146121c3576040519150601f19603f3d011682016040523d82523d6000602084013e6121c8565b606091505b50915091508180156121db575080516020145b80156121f757506121f381600063ffffffff612be416565b6001145b612202576000612206565b6000195b955050505050611490565b6001600160e01b031981167fc339d10a00000000000000000000000000000000000000000000000000000000141561224d576000199150611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156114905760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b81526004016122b99190614d49565b60006040518083038186803b1580156122d157600080fd5b505af41580156122e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230d9190810190614070565b50925092505061231b612bf0565b6001600160a01b0316826001600160a01b031614801561234857506005546001600160a01b038281169116145b1561239257600061236d61235a612c08565b60055489906001600160a01b0316612e2d565b905060001981146123865761238181612c20565b61238a565b6000195b9450506123ae565b6006546001600160a01b03828116911614156123ae5760001993505b50505092915050565b600080546040517f8dccde0400000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__91638dccde0491610ad0916001600160a01b0316908890889088906004016149e9565b6040517fd3d862d100000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063d3d862d1906117f69086908690600401614b31565b6040517fd469502800000000000000000000000000000000000000000000000000000000815260009073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063d4695028906124c1908590600401614d49565b60206040518083038186803b1580156124d957600080fd5b505af41580156124ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610881919081019061401e565b60608060606000855190508060405190808252806020026020018201604052801561255657816020015b612543613691565b81526020019060019003908161253b5790505b50935080604051908082528060200260200182016040528015612583578160200160208202803883390190505b509250806040519080825280602002602001820160405280156125b0578160200160208202803883390190505b50915060005b818114612640576125ed8782815181106125cc57fe5b60200260200101518783815181106125e057fe5b6020026020010151612662565b87518890859081106125fb57fe5b6020026020010187858151811061260e57fe5b6020026020010187868151811061262157fe5b93151560209485029190910190930192909252919052526001016125b6565b50509250925092565b6060806126568484611a4d565b91506106a28484610757565b61266a613691565b600080546040517f9d3fa4b900000000000000000000000000000000000000000000000000000000815282916001600160a01b031690639d3fa4b9906126b4908890600401614e8e565b60606040518083038186803b1580156126cc57600080fd5b505afa1580156126e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127049190810190614420565b85516000546040517fa12dcc6f00000000000000000000000000000000000000000000000000000000815292955090916001600160a01b039091169063a12dcc6f906127569089908990600401614ecc565b60206040518083038186803b15801561276e57600080fd5b505afa158015612782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127a69190810190613ffe565b915060006127b387612f37565b905060006127d4886101800151896101400151612f5390919063ffffffff16565b1561280957612802826127f88a60c001518b60800151612f7890919063ffffffff16565b8a60a00151612f94565b9050612876565b60c0880151612825576128028289608001518a60a00151612f94565b6000612836848a61018001516106ab565b9050600061284d848b608001518c60a00151612f94565b90506000612864838c60c001518d60a00151612f94565b905061287082826129ff565b93505050505b61289a61289487604001518a60a00151612fb690919063ffffffff16565b826129ff565b9450600460005460208a01516040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__92639caa023b92612905926001600160a01b03909216918e91908c906004016149e9565b60206040518083038186803b15801561291d57600080fd5b505af4158015612931573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129559190810190614318565b600481111561296057fe5b1461296c57600061296e565b845b945061297e886101600151612fd5565b61298757600094505b60e0880151158015906129a557506129a3886101a00151612fd5565b155b156129af57600094505b6003865160068111156129be57fe5b146129c857600094505b5050509250925092565b6001546001600160a01b031681565b6002546001600160a01b031681565b6003546001600160a01b031681565b6000818310612a0e578161184a565b5090919050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600061184a82612a7b8561318a565b613205565b60008160040183511015612aa657612aa6612aa1600385518560040161323f565b6132ae565b5001602001516001600160e01b03191690565b60008160140183511015612ada57612ada612aa1600485518560140161323f565b5001601401516001600160a01b031690565b60405160009081906060906001600160a01b038616907f70a082310000000000000000000000000000000000000000000000000000000090612b32908790602401614871565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612b859190614855565b600060405180830381855afa9150503d8060008114612bc0576040519150601f19603f3d011682016040523d82523d6000602084013e612bc5565b606091505b5091509150818015612bd8575080516020145b156107d2576106c88160005b600061184a83836132b6565b736b175474e89094c44da98b954eedeac495271d0f90565b7306af07097c9eeb7fd685c692751d5c66db49c21590565b600080612c2b612c08565b6001600160a01b0316634ba2363a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612c6557600080fd5b505af1158015612c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c9d91908101906142fc565b90506000816001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612cdc57600080fd5b505af1158015612cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d149190810190614629565b4211612d9257816001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d5557600080fd5b505af1158015612d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d8d9190810190614629565b612e05565b816001600160a01b0316639f678cca6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612dcd57600080fd5b505af1158015612de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e059190810190614629565b9050610934816b033b2e3c9fd0803ce800000086612f94565b600061184a82612a7b856132e0565b60405160009081906060906001600160a01b038716907fdd62ed3e0000000000000000000000000000000000000000000000000000000090612e759088908890602401614885565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612ec89190614855565b600060405180830381855afa9150503d8060008114612f03576040519150601f19603f3d011682016040523d82523d6000602084013e612f08565b606091505b5091509150818015612f1b575080516020145b15612f2e57612f2b816000612be4565b92505b50509392505050565b6000806000612f4584613399565b9150915061093482826129ff565b60008151835114801561184a5750508051602091820120825192909101919091201490565b60008282018381101561184a5761184a612aa16000868661359c565b600061093483612faa868563ffffffff6135bb16565b9063ffffffff6135ec16565b600082821115612fcf57612fcf612aa16002858561359c565b50900390565b60006020825181612fe257fe5b06600414612ff257506000610884565b6000613004838263ffffffff612a8016565b90506001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014613041576001915050610884565b6040517fbbb2dcf600000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063bbb2dcf690613094908790600401614d49565b60006040518083038186803b1580156130ac57600080fd5b505af41580156130c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130e8919081019061422c565b80519093509150600090505b81811461317e576000613124600085848151811061310e57fe5b6020026020010151612a8090919063ffffffff16565b90506001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415613175576131628483613616565b1561317557600095505050505050610884565b506001016130f4565b50600195945050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc7154150881529485019590955290830191909152948101949094526001600160a01b039091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6060632800659560e01b84848460405160240161325e93929190614dbc565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915290509392505050565b805160208201fd5b600081602001835110156132d7576132d7612aa1600585518560200161323f565b50016020015190565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a75349390929091602087101561332c57fe5b601f1987018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b60008060048361014001515110156133b657506000905080611525565b6101408301516000906133cf908263ffffffff612a8016565b90506001600160e01b031981167fdc1600f300000000000000000000000000000000000000000000000000000000141561356c576101408401516040517f750bdb3000000000000000000000000000000000000000000000000000000000815260009173__$d8b635de2bf4a097b4e18b67d0fb68e779$__9163750bdb309161345a91600401614d49565b60006040518083038186803b15801561347257600080fd5b505af4158015613486573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526134ae9190810190614070565b506006549093506001600160a01b0380851691161415915061356a90505773__$ef9cb1cf4426222cc0af8204def2680bac$__63d12a7960866134ef613679565b6040518363ffffffff1660e01b815260040161350c929190614ea1565b60206040518083038186803b15801561352457600080fd5b505af4158015613538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061355c9190810190614629565b600019935093505050611525565b505b61357f8460000151856101400151610ba1565b6135928560000151866101400151611abb565b9250925050915091565b606063e946c1bb60e01b84848460405160240161325e93929190614d9a565b6000826135ca575060006106cd565b828202828482816135d757fe5b041461184a5761184a612aa16001868661359c565b60008161360257613602612aa16003858561359c565b600082848161360d57fe5b04949350505050565b8151600090600183015b818110156107d25761366185828151811061363757fe5b602002602001015186868151811061364b57fe5b6020026020010151612f5390919063ffffffff16565b15613671576001925050506106cd565b600101613620565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e90565b6040805160608101909152806000815260006020820181905260409091015290565b80356106cd81614fa4565b80516106cd81614fa4565b600082601f8301126136d9578081fd5b81356136ec6136e782614f26565b614eff565b81815291506020808301908481018184028601820187101561370d57600080fd5b60005b8481101561148b57813561372381614fa4565b84529282019290820190600101613710565b600082601f830112613745578081fd5b81356137536136e782614f26565b8181529150602080830190840160005b838110156137905761377b8760208435890101613924565b83526020928301929190910190600101613763565b5050505092915050565b600082601f8301126137aa578081fd5b81516137b86136e782614f26565b8181529150602080830190840160005b83811015613790576137e08760208451890101613972565b835260209283019291909101906001016137c8565b600082601f830112613805578081fd5b81356138136136e782614f26565b8181529150602080830190840160005b838110156137905761383b87602084358901016139c7565b83526020928301929190910190600101613823565b600082601f830112613860578081fd5b813561386e6136e782614f26565b81815291506020808301908481018184028601820187101561388f57600080fd5b60005b8481101561148b57813584529282019290820190600101613892565b600082601f8301126138be578081fd5b81516138cc6136e782614f26565b8181529150602080830190848101818402860182018710156138ed57600080fd5b60005b8481101561148b578151845292820192908201906001016138f0565b80516001600160e01b0319811681146106cd57600080fd5b600082601f830112613934578081fd5b81356139426136e782614f46565b915080825283602082850101111561395957600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613982578081fd5b81516139906136e782614f46565b91508082528360208285010111156139a757600080fd5b611490816020840160208601614f6a565b8051600581106106cd57600080fd5b60006101c08083850312156139da578182fd5b6139e381614eff565b9150506139f083836136b3565b81526139ff83602084016136b3565b6020820152613a1183604084016136b3565b6040820152613a2383606084016136b3565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115613a8557600080fd5b613a9186838701613924565b83850152610160925082850135915080821115613aad57600080fd5b613ab986838701613924565b83850152610180925082850135915080821115613ad557600080fd5b613ae186838701613924565b838501526101a0925082850135915080821115613afd57600080fd5b50613b0a85828601613924565b82840152505092915050565b60006101c0808385031215613b29578182fd5b613b3281614eff565b915050613b3f83836136be565b8152613b4e83602084016136be565b6020820152613b6083604084016136be565b6040820152613b7283606084016136be565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff80821115613bd457600080fd5b613be086838701613972565b83850152610160925082850151915080821115613bfc57600080fd5b613c0886838701613972565b83850152610180925082850151915080821115613c2457600080fd5b613c3086838701613972565b838501526101a0925082850151915080821115613c4c57600080fd5b50613b0a85828601613972565b600060208284031215613c6a578081fd5b813561184a81614fa4565b60008060408385031215613c87578081fd5b8235613c9281614fa4565b9150602083013567ffffffffffffffff811115613cad578182fd5b613cb985828601613735565b9150509250929050565b60008060008060808587031215613cd8578182fd5b8435613ce381614fa4565b9350602085013567ffffffffffffffff80821115613cff578384fd5b613d0b88838901613850565b94506040870135915080821115613d20578384fd5b613d2c88838901613850565b93506060870135915080821115613d41578283fd5b50613d4e87828801613924565b91505092959194509250565b60008060408385031215613d6c578182fd5b8235613d7781614fa4565b9150602083013567ffffffffffffffff811115613d92578182fd5b613cb985828601613924565b600080600060608486031215613db2578081fd5b8335613dbd81614fa4565b9250602084013567ffffffffffffffff811115613dd8578182fd5b613de486828701613924565b925050604084013590509250925092565b60008060408385031215613e07578182fd5b8235613e1281614fa4565b946020939093013593505050565b600060208284031215613e31578081fd5b813567ffffffffffffffff811115613e47578182fd5b610934848285016136c9565b60006020808385031215613e65578182fd5b825167ffffffffffffffff811115613e7b578283fd5b80840185601f820112613e8c578384fd5b80519150613e9c6136e783614f26565b8281528381019082850185850284018601891015613eb8578687fd5b8693505b84841015613ee257613ece89826139b8565b835260019390930192918501918501613ebc565b50979650505050505050565b600080600060608486031215613f02578081fd5b833567ffffffffffffffff80821115613f19578283fd5b613f25878388016137f5565b94506020860135915080821115613f3a578283fd5b613f46878388016136c9565b93506040860135915080821115613f5b578283fd5b50613f6886828701613850565b9150509250925092565b60008060408385031215613f84578182fd5b823567ffffffffffffffff80821115613f9b578384fd5b613fa7868387016137f5565b93506020850135915080821115613fbc578283fd5b50613cb985828601613735565b60008060408385031215613fdb578182fd5b823567ffffffffffffffff80821115613ff2578384fd5b613fa786838701613850565b60006020828403121561400f578081fd5b8151801515811461184a578182fd5b60006020828403121561402f578081fd5b61184a838361390c565b6000806040838503121561404b578182fd5b614055848461390c565b9150602083015161406581614fa4565b809150509250929050565b60008060008060808587031215614085578182fd5b845161409081614fb9565b60208601519094506140a181614fa4565b60408601519093506140b281614fa4565b606086015190925067ffffffffffffffff8111156140ce578182fd5b613d4e87828801613972565b600080600080600060a086880312156140f1578283fd5b6140fb878761390c565b9450602086015161410b81614fa4565b604087015190945067ffffffffffffffff80821115614128578485fd5b61413489838a016138ae565b94506060880151915080821115614149578283fd5b61415589838a016138ae565b9350608088015191508082111561416a578283fd5b5061417788828901613972565b9150509295509295909350565b60008060008060808587031215614199578182fd5b6141a3868661390c565b935060208501516141b381614fa4565b604086015190935067ffffffffffffffff8111156141cf578283fd5b6141db87828801613972565b606096909601519497939650505050565b600080600060608486031215614200578081fd5b61420a858561390c565b9250602084015161421a81614fa4565b80925050604084015190509250925092565b600080600060608486031215614240578081fd5b835161424b81614fb9565b602085015190935067ffffffffffffffff80821115614268578283fd5b614274878388016138ae565b93506040860151915080821115614289578283fd5b50613f688682870161379a565b6000602082840312156142a7578081fd5b813567ffffffffffffffff8111156142bd578182fd5b61093484828501613924565b6000602082840312156142da578081fd5b815167ffffffffffffffff8111156142f0578182fd5b61093484828501613972565b60006020828403121561430d578081fd5b815161184a81614fa4565b600060208284031215614329578081fd5b61184a83836139b8565b60008060008060808587031215614348578182fd5b845167ffffffffffffffff8082111561435f578384fd5b61436b88838901613972565b9550602091508187015181811115614381578485fd5b80880189601f820112614392578586fd5b805191506143a26136e783614f26565b82815284810190828601885b858110156143d7576143c58e898451880101613b16565b845292870192908701906001016143ae565b505060408b01519098509450505050808211156143f2578384fd5b6143fe888389016138ae565b93506060870151915080821115614413578283fd5b50613d4e8782880161379a565b600060608284031215614431578081fd5b61443b6060614eff565b825160078110614449578283fd5b8152602083810151908201526040928301519281019290925250919050565b60008060006060848603121561447c578081fd5b833567ffffffffffffffff811115614492578182fd5b61449e868287016139c7565b93505060208401356144af81614fa4565b929592945050506040919091013590565b600080604083850312156144d2578182fd5b823567ffffffffffffffff808211156144e9578384fd5b6144f5868387016139c7565b9350602085013591508082111561450a578283fd5b50613cb985828601613924565b60008060006060848603121561452b578081fd5b833567ffffffffffffffff811115614541578182fd5b61454d868287016139c7565b93505060208401359150604084013561456581614fa4565b809150509250925092565b600080600060608486031215614584578081fd5b833567ffffffffffffffff8082111561459b578283fd5b81860160a081890312156145ad578384fd5b6145b760a0614eff565b925080358352602081013560208401526040810135604084015260608101356145df81614fa4565b60608401526080810135828111156145f5578485fd5b61460189828401613924565b60808501525091945050506020840135915061462085604086016136b3565b90509250925092565b60006020828403121561463a578081fd5b5051919050565b6001600160a01b0316815260200190565b600061465e8383614731565b505060600190565b6001600160a01b03169052565b600081518084526020840180819550602083028101915060208501845b848110156146be5782840388526146a8848351614705565b6020988901989094509190910190600101614690565b50919695505050505050565b6000815180845260208401935060208301825b828110156146fb5781518652602095860195909101906001016146dd565b5093949350505050565b6000815180845261471d816020860160208601614f6a565b601f01601f19169290920160200192915050565b80516007811061473d57fe5b825260208181015190830152604090810151910152565b60006101c0614764848451614666565b60208301516147766020860182614666565b5060408301516147896040860182614666565b50606083015161479c6060860182614666565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526147f583870182614705565b915050610160915081840151858203838701526148128282614705565b92505050610180808401518583038287015261482e8382614705565b9150506101a09150818401518582038387015261484b8282614705565b9695505050505050565b60008251614867818460208701614f6a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6000608082016001600160a01b038716835260206080818501528187516148c68185614bc6565b91508193508281028201838a01865b838110156148ff5786830385526148ed838351614754565b948601949250908501906001016148d5565b505086810360408801528094508851925061491a8382614bc6565b94505050818701845b8281101561494457614936858351614641565b945090830190600101614923565b50505050828103606084015261495a81856146ca565b979650505050505050565b60006001600160a01b03861682526080602083015261498760808301866146ca565b828103604084015261499981866146ca565b83810360608501526149ab8186614705565b98975050505050505050565b60006001600160a01b0385168252606060208301526149d96060830185614705565b9050826040830152949350505050565b60006001600160a01b03808716835260806020840152614a0c6080840187614754565b94166040830152506060015292915050565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b81811015614a78578351614a6481614f9a565b835260209384019390920191600101614a51565b509095945050505050565b60006060820160608352808651614a9a8184614bc6565b915060209250828801845b82811015614ac657614ab8848351614652565b935090840190600101614aa5565b50505083810382850152614ada81876146ca565b84810360408601528551808252908301915082860190845b81811015614b10578251151584529284019291840191600101614af2565b509198975050505050505050565b60006020825261184a60208301846146ca565b600060408252614b4460408301856146ca565b602083820381850152818551808452828401915082838202850101838801865b83811015614b9257601f19878403018552614b80838351614705565b94860194925090850190600101614b64565b50909998505050505050505050565b600060408252614bb460408301856146ca565b828103602084015261190d81856146ca565b90815260200190565b6001600160e01b031991909116815260200190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b60006001600160e01b0319861682526001600160a01b0380861660208401528085166040840152506080606083015261484b6080830184614705565b60006001600160e01b0319871682526001600160a01b038616602083015260a06040830152614c7560a08301866146ca565b8281036060840152614c8781866146ca565b8381036080850152614c998186614705565b9998505050505050505050565b60006001600160e01b0319861682526001600160a01b038516602083015260806040830152614cd86080830185614705565b905082606083015295945050505050565b6001600160e01b03199390931683526001600160a01b03919091166020830152604082015260600190565b60006001600160e01b03198516825260606020830152614d3760608301856146ca565b828103604084015261484b8185614673565b60006020825261184a6020830184614705565b600060808252614d6f6080830187614705565b6001600160a01b03958616602084015293909416604082015260ff9190911660609091015292915050565b6060810160048510614da857fe5b938152602081019290925260409091015290565b6060810160088510614da857fe5b60208101614dd783614f9a565b91905290565b600060808252614df06080830187614705565b602083820381850152818751808452828401915082838202850101838a01865b83811015614e3e57601f19878403018552614e2c838351614754565b94860194925090850190600101614e10565b50508681036040880152614e52818a6146ca565b945050505050828103606084015261495a8185614673565b60a08101614e788286614731565b8360608301528215156080830152949350505050565b60006020825261184a6020830184614754565b600060408252614eb46040830185614754565b90506001600160a01b03831660208301529392505050565b600060408252614edf6040830185614754565b828103602084015261190d8185614705565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715614f1e57600080fd5b604052919050565b600067ffffffffffffffff821115614f3c578081fd5b5060209081020190565b600067ffffffffffffffff821115614f5c578081fd5b50601f01601f191660200190565b60005b83811015614f85578181015183820152602001614f6d565b83811115614f94576000848401525b50505050565b6005811061075457fe5b6001600160a01b038116811461075457600080fd5b6001600160e01b03198116811461075457600080fdfea365627a7a72315820f05bfff91cf6f387ce89e4ca5ccc415a4c291e39b349e6d1c630a5574b2fee306c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x60806040523480156200001157600080fd5b506040516200550a3803806200550a8339810160408190526200003491620003f5565b600080546001600160a01b03199081166001600160a01b0386811691821784556005805484168783161790556006805490931690851617909155604051630c0e082160e31b81528291869186918691636070410890620000a090630f47261b60e41b9060040162000448565b60206040518083038186803b158015620000b957600080fd5b505afa158015620000ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620000f49190810190620003c5565b600180546001600160a01b0319166001600160a01b03928316179055604051630c0e082160e31b8152908416906360704108906200013e9063012b8bc960e11b9060040162000448565b60206040518083038186803b1580156200015757600080fd5b505afa1580156200016c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001929190810190620003c5565b600280546001600160a01b0319166001600160a01b03928316179055604051630c0e082160e31b815290841690636070410890620001dc9063a7cb5fb760e01b9060040162000448565b60206040518083038186803b158015620001f557600080fd5b505afa1580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002309190810190620003c5565b600380546001600160a01b0319166001600160a01b03928316179055604051630c0e082160e31b8152908416906360704108906200027a9063619ce88560e11b9060040162000448565b60206040518083038186803b1580156200029357600080fd5b505afa158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002ce9190810190620003c5565b600480546001600160a01b0319166001600160a01b03928316179055600093508416159150620003019050578162000303565b305b90506200035e6040518060400160405280600b81526020016a0c1e08141c9bdd1bd8dbdb60aa1b815250604051806040016040528060058152602001640332e302e360dc1b81525085846200036e60201b620029a31760201c565b6007555062000476945050505050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600060208284031215620003d7578081fd5b81516001600160a01b0381168114620003ee578182fd5b9392505050565b6000806000606084860312156200040a578182fd5b835162000417816200045d565b60208501519093506200042a816200045d565b60408501519092506200043d816200045d565b809150509250925092565b6001600160e01b031991909116815260200190565b6001600160a01b03811681146200047357600080fd5b50565b61508480620004866000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c8063a5cd62ba11610160578063d186037f116100d8578063e4e6e7da1161008c578063ee18599711610071578063ee185997146105d8578063ef3bb097146105e0578063ff84e7cc146105e857610277565b8063e4e6e7da14610595578063e77286eb146105b657610277565b8063d3d862d1116100bd578063d3d862d114610540578063d469502814610553578063e25cabf71461057357610277565b8063d186037f1461051a578063d36379051461052d57610277565b8063bbb2dcf61161012f578063c82037ef11610114578063c82037ef146104dc578063ca49f47c146104e4578063d001c5dc1461050757610277565b8063bbb2dcf6146104b2578063c26cfecd146104d457610277565b8063a5cd62ba14610464578063a6627e9f14610484578063a7530f1214610497578063b43cffe11461049f57610277565b80637982653e116101f35780639baf2705116101c25780639eadc835116101a75780639eadc8351461041a578063a070cac81461043e578063a0901e511461045157610277565b80639baf2705146103fd5780639cd016051461041257610277565b80637982653e1461039657806379c9c426146103b65780637d727512146103c95780638f4ce479146103dc57610277565b80634dfdac201161024a57806363eb39921161022f57806363eb39921461033d5780636f83188e14610350578063750bdb301461037357610277565b80634dfdac20146102fd578063590aa8751461031d57610277565b806304a5618a1461027c5780630d7b7d76146102a75780632322cf76146102c857806346eb65cb146102e8575b600080fd5b61028f61028a366004614168565b6105f0565b60405161029e93929190614d64565b60405180910390f35b6102ba6102b5366004613c2c565b610689565b60405161029e929190614f6d565b6102db6102d6366004613c2c565b6106ab565b60405161029e9190614c41565b6102fb6102f6366004614168565b6106d3565b005b61031061030b366004613b47565b610757565b60405161029e9190614b99565b61033061032b366004613b2b565b6107da565b60405161029e9190614dc4565b61033061034b366004613c70565b610889565b61036361035e366004614168565b61093c565b60405161029e9493929190614e59565b610386610381366004614168565b6109dc565b60405161029e9493929190614c82565b6103a96103a43660046144b3565b610a6e565b60405161029e9190614e45565b6102db6103c43660046145bb565b610b20565b6102db6103d7366004613c2c565b610ba1565b6103ef6103ea366004614168565b611497565b60405161029e929190614c5f565b61040561152a565b60405161029e91906148c4565b610405611539565b61042d610428366004614168565b611548565b60405161029e959493929190614cbe565b6102db61044c366004614562565b6115ed565b61031061045f366004613cf2565b61166e565b610477610472366004613dc0565b6116e7565b60405161029e9190614aad565b610330610492366004613cc7565b6117a1565b610405611851565b6103306104ad366004613b95565b611860565b6104c56104c0366004614168565b611916565b60405161029e93929190614d8f565b6102db6119a6565b6104056119ac565b6104f76104f2366004614168565b6119bb565b60405161029e9493929190614d21565b610310610515366004613b47565b611a4d565b6102db610528366004613c2c565b611abb565b6103a961053b3660046144b3565b612446565b61033061054e366004613e9b565b6124a8565b610566610561366004614168565b6124fd565b60405161029e9190614c4a565b610586610581366004613e44565b6125a0565b60405161029e93929190614afa565b6105a86105a3366004613b47565b6126d8565b60405161029e929190614c1c565b6105c96105c436600461450b565b6126f1565b60405161029e93929190614ee6565b610405612960565b61040561296f565b61040561297e565b600080600073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a856040518263ffffffff1660e01b815260040161062c9190614dc4565b60606040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c91908101906140be565b9250925092509193909250565b6000806106968484610ba1565b91506106a28484611abb565b90509250929050565b60008060006106ba8585610689565b915091506106c8828261298d565b925050505b92915050565b6040517f46eb65cb00000000000000000000000000000000000000000000000000000000815273__$af40232205bf188fa8dd573e0f47eaeabc$__906346eb65cb90610723908490600401614dc4565b60006040518083038186803b15801561073b57600080fd5b505af415801561074f573d6000803e3d6000fd5b505050505b50565b606060008251905080604051908082528060200260200182016040528015610789578160200160208202803883390190505b50915060005b8181146107d2576107b3858583815181106107a657fe5b6020026020010151611abb565b8382815181106107bf57fe5b602090810291909101015260010161078f565b505092915050565b6040517f590aa87500000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063590aa8759061082d9085906004016148c4565b60006040518083038186803b15801561084557600080fd5b505af4158015610859573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610881919081019061419b565b90505b919050565b6040517f63eb399200000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__906363eb3992906108e090879087908790600401614a2d565b60006040518083038186803b1580156108f857600080fd5b505af415801561090c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610934919081019061419b565b949350505050565b60608060608073__$d80c8447db5aca01fdd367a509db3f8167$__636f83188e866040518263ffffffff1660e01b81526004016109799190614dc4565b60006040518083038186803b15801561099157600080fd5b505af41580156109a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614209565b93509350935093509193509193565b6000806000606073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b8152600401610a1a9190614dc4565b60006040518083038186803b158015610a3257600080fd5b505af4158015610a46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190613f42565b600080546040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$51238773fd6195a8a6f152a329b1854152$__91639caa023b91610ad0916001600160a01b031690889088908890600401614a5f565b60206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061093491908101906141ea565b600061093484610b9c6040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876129a3565b6129fa565b600080610bb4838263ffffffff612a0e16565b90506001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415610c0f576000610bfb84601063ffffffff612a4716565b9050610c078186612a7a565b925050611490565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415610e285760008073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a866040518263ffffffff1660e01b8152600401610c7b9190614dc4565b60606040518083038186803b158015610c9357600080fd5b505af4158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ccb91908101906140be565b6040519194509250606091507f6352211e0000000000000000000000000000000000000000000000000000000090610d07908490602401614c41565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051610d8291906148a8565b600060405180830381855afa9150503d8060008114610dbd576040519150601f19603f3d011682016040523d82523d6000602084013e610dc2565b606091505b50915091506000828015610dd7575081516020145b610de2576000610df3565b610df382600c63ffffffff612a4716565b9050896001600160a01b0316816001600160a01b031614610e15576000610e18565b60015b60ff169750505050505050611490565b6001600160e01b031981167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156110c457600060608073__$af40232205bf188fa8dd573e0f47eaeabc$__639eadc835876040518263ffffffff1660e01b8152600401610e969190614dc4565b60006040518083038186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eea9190810190613fac565b5081519296509094509250905060005b8181146110ba57828181518110610f0d57fe5b602002602001015160001415610f22576110b2565b83516060907efdd58e00000000000000000000000000000000000000000000000000000000908b90879085908110610f5657fe5b6020026020010151604051602401610f6f929190614a94565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060876001600160a01b031683604051610fea91906148a8565b600060405180830381855afa9150503d8060008114611025576040519150601f19603f3d011682016040523d82523d6000602084013e61102a565b606091505b5091509150600082801561103f575081516020145b61104a57600061105b565b61105b82600063ffffffff612b7216565b9050600087868151811061106b57fe5b6020026020010151828161107b57fe5b049050806110975760009b5050505050505050505050506106cd565b8b8110806110a357508b155b156110ac57809b505b50505050505b600101610efa565b5050505050611490565b6001600160e01b031981167fc339d10a0000000000000000000000000000000000000000000000000000000014156111f7576040516060907fa85e59e4000000000000000000000000000000000000000000000000000000009061113390869060009081908190602401614dd7565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199094169390931790925260045491519092506000916001600160a01b03169061119a9084906148a8565b600060405180830381855afa9150503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111da565b606091505b50509050806111ea5760006111ee565b6000195b93505050611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156113205760008073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b81526004016112639190614dc4565b60006040518083038186803b15801561127b57600080fd5b505af415801561128f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b79190810190613f42565b5092509250506112c5612b7e565b6001600160a01b0316826001600160a01b03161480156112f257506005546001600160a01b038281169116145b1561131957600061130a611304612b96565b88612a7a565b905061131581612bae565b9450505b5050611490565b6001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014156114905760608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6866040518263ffffffff1660e01b815260040161138c9190614dc4565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906140fe565b80519194509250905060005b81811461148b578381815181106113ff57fe5b60200260200101516000141561141457611483565b60006114338985848151811061142657fe5b6020026020010151610ba1565b9050600085838151811061144357fe5b6020026020010151828161145357fe5b0490508061146b5760009750505050505050506106cd565b87811080611477575087155b15611480578097505b50505b6001016113ec565b505050505b5092915050565b60008073__$af40232205bf188fa8dd573e0f47eaeabc$__638f4ce479846040518263ffffffff1660e01b81526004016114d19190614dc4565b604080518083038186803b1580156114e857600080fd5b505af41580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115209190810190613f0b565b915091505b915091565b6004546001600160a01b031681565b6000546001600160a01b031681565b600080606080606073__$af40232205bf188fa8dd573e0f47eaeabc$__639eadc835876040518263ffffffff1660e01b81526004016115879190614dc4565b60006040518083038186803b15801561159f57600080fd5b505af41580156115b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115db9190810190613fac565b939a9299509097509550909350915050565b6000610934846116696040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876129a3565b612dac565b606080825160405190808252806020026020018201604052801561169c578160200160208202803883390190505b50905060005b83518114611490578381815181106116b657fe5b60200260200101516001600160a01b0316318282815181106116d457fe5b60209081029190910101526001016116a2565b6000546040517f02cffc4500000000000000000000000000000000000000000000000000000000815260609173__$51238773fd6195a8a6f152a329b1854152$__916302cffc459161174d916001600160a01b0390911690889088908890600401614915565b60006040518083038186803b15801561176557600080fd5b505af4158015611779573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109349190810190613d25565b6040517fa6627e9f00000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063a6627e9f906117f69086908690600401614a94565b60006040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184a919081019061419b565b9392505050565b6006546001600160a01b031681565b6040517fb43cffe100000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063b43cffe1906118b99088908890889088906004016149db565b60006040518083038186803b1580156118d157600080fd5b505af41580156118e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261190d919081019061419b565b95945050505050565b600060608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6856040518263ffffffff1660e01b81526004016119529190614dc4565b60006040518083038186803b15801561196a57600080fd5b505af415801561197e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067c91908101906140fe565b60075481565b6005546001600160a01b031681565b6000806060600073__$af40232205bf188fa8dd573e0f47eaeabc$__63ca49f47c866040518263ffffffff1660e01b81526004016119f99190614dc4565b60006040518083038186803b158015611a1157600080fd5b505af4158015611a25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614056565b606060008251905080604051908082528060200260200182016040528015611a7f578160200160208202803883390190505b50915060005b8181146107d257611a9c8585838151811061142657fe5b838281518110611aa857fe5b6020908102919091010152600101611a85565b600080611ace838263ffffffff612a0e16565b90506001600160e01b031981167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611c395760608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6866040518263ffffffff1660e01b8152600401611b3c9190614dc4565b60006040518083038186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b9091908101906140fe565b80519194509250905060005b818114611c2e57838181518110611baf57fe5b602002602001015160001415611bc457611c26565b6000611bd6898584815181106107a657fe5b90506000858381518110611be657fe5b60200260200101518281611bf657fe5b04905080611c0e5760009750505050505050506106cd565b87811080611c1a575087155b15611c23578097505b50505b600101611b9c565b506106cd9350505050565b6001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415611c9a576000611c7e84601063ffffffff612a4716565b600154909150610c0790829087906001600160a01b0316612dbb565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415611fea5760008073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a866040518263ffffffff1660e01b8152600401611d069190614dc4565b60606040518083038186803b158015611d1e57600080fd5b505af4158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5691908101906140be565b600254604051929550909350606092507fe985e9c50000000000000000000000000000000000000000000000000000000091611da2918a916001600160a01b03909116906024016148d8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051611e1d91906148a8565b600060405180830381855afa9150503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5091509150811580611e7157508051602014155b80611e8d5750611e8881600063ffffffff612b7216565b600114155b15611fdb576040516060907f081812fc0000000000000000000000000000000000000000000000000000000090611ec8908790602401614c41565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050856001600160a01b031681604051611f3f91906148a8565b600060405180830381855afa9150503d8060008114611f7a576040519150601f19603f3d011682016040523d82523d6000602084013e611f7f565b606091505b509093509150828015611f93575081516020145b8015611fc257506002546001600160a01b0316611fb783600c63ffffffff612a4716565b6001600160a01b0316145b611fcd576000611fd0565b60015b60ff169750506110ba565b60001996505050505050611490565b6001600160e01b031981167fa7cb5fb7000000000000000000000000000000000000000000000000000000001415612211576040517f9eadc83500000000000000000000000000000000000000000000000000000000815260009073__$af40232205bf188fa8dd573e0f47eaeabc$__90639eadc8359061206f908790600401614dc4565b60006040518083038186803b15801561208757600080fd5b505af415801561209b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120c39190810190613fac565b5050600354604051929450606093507fe985e9c5000000000000000000000000000000000000000000000000000000009261210d925089916001600160a01b0316906024016148d8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060836001600160a01b03168360405161218891906148a8565b600060405180830381855afa9150503d80600081146121c3576040519150601f19603f3d011682016040523d82523d6000602084013e6121c8565b606091505b50915091508180156121db575080516020145b80156121f757506121f381600063ffffffff612b7216565b6001145b612202576000612206565b6000195b955050505050611490565b6001600160e01b031981167fc339d10a00000000000000000000000000000000000000000000000000000000141561224d576000199150611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156114905760008073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b81526004016122b99190614dc4565b60006040518083038186803b1580156122d157600080fd5b505af41580156122e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230d9190810190613f42565b50925092505061231b612b7e565b6001600160a01b0316826001600160a01b031614801561234857506005546001600160a01b038281169116145b1561239257600061236d61235a612b96565b60055489906001600160a01b0316612dbb565b905060001981146123865761238181612bae565b61238a565b6000195b94505061243d565b6006546001600160a01b038281169116141561243d5773__$8ab3d6b0b5fe290c724f8d6cfdac7eabfb$__630e70a03387836123cc612ec5565b6040518463ffffffff1660e01b81526004016123ea939291906148f2565b60206040518083038186803b15801561240257600080fd5b505af4158015612416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061243a9190810190614673565b93505b50505092915050565b600080546040517f8dccde0400000000000000000000000000000000000000000000000000000000815273__$51238773fd6195a8a6f152a329b1854152$__91638dccde0491610ad0916001600160a01b031690889088908890600401614a5f565b6040517fd3d862d100000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063d3d862d1906117f69086908690600401614bac565b6040517fd469502800000000000000000000000000000000000000000000000000000000815260009073__$af40232205bf188fa8dd573e0f47eaeabc$__9063d469502890612550908590600401614dc4565b60206040518083038186803b15801561256857600080fd5b505af415801561257c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108819190810190613ef0565b6060806060600085519050806040519080825280602002602001820160405280156125e557816020015b6125d26136a6565b8152602001906001900390816125ca5790505b50935080604051908082528060200260200182016040528015612612578160200160208202803883390190505b5092508060405190808252806020026020018201604052801561263f578160200160208202803883390190505b50915060005b8181146126cf5761267c87828151811061265b57fe5b602002602001015187838151811061266f57fe5b60200260200101516126f1565b875188908590811061268a57fe5b6020026020010187858151811061269d57fe5b602002602001018786815181106126b057fe5b9315156020948502919091019093019290925291905252600101612645565b50509250925092565b6060806126e58484611a4d565b91506106a28484610757565b6126f96136a6565b600080546040517f9d3fa4b900000000000000000000000000000000000000000000000000000000815282916001600160a01b031690639d3fa4b990612743908890600401614f0a565b60606040518083038186803b15801561275b57600080fd5b505afa15801561276f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612793919081019061446b565b85516000546040517fa12dcc6f00000000000000000000000000000000000000000000000000000000815292955090916001600160a01b039091169063a12dcc6f906127e59089908990600401614f48565b60206040518083038186803b1580156127fd57600080fd5b505afa158015612811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128359190810190613ed0565b9150600061284287612edd565b90506000612863886101800151896101400151612f0990919063ffffffff16565b1561289857612891826128878a60c001518b60800151612f2e90919063ffffffff16565b8a60a00151612f4a565b9050612905565b60c08801516128b4576128918289608001518a60a00151612f4a565b60006128c5848a61018001516106ab565b905060006128dc848b608001518c60a00151612f4a565b905060006128f3838c60c001518d60a00151612f4a565b90506128ff828261298d565b93505050505b61292961292387604001518a60a00151612f6c90919063ffffffff16565b8261298d565b945061293488612f8b565b61293d57600094505b60038651600681111561294c57fe5b1461295657600094505b5050509250925092565b6001546001600160a01b031681565b6002546001600160a01b031681565b6003546001600160a01b031681565b600081831061299c578161184a565b5090919050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600061184a82612a0985612ff2565b61306d565b60008160040183511015612a3457612a34612a2f60038551856004016130a7565b613116565b5001602001516001600160e01b03191690565b60008160140183511015612a6857612a68612a2f60048551856014016130a7565b5001601401516001600160a01b031690565b60405160009081906060906001600160a01b038616907f70a082310000000000000000000000000000000000000000000000000000000090612ac09087906024016148c4565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612b1391906148a8565b600060405180830381855afa9150503d8060008114612b4e576040519150601f19603f3d011682016040523d82523d6000602084013e612b53565b606091505b5091509150818015612b66575080516020145b156107d2576106c88160005b600061184a838361311e565b736b175474e89094c44da98b954eedeac495271d0f90565b7306af07097c9eeb7fd685c692751d5c66db49c21590565b600080612bb9612b96565b6001600160a01b0316634ba2363a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612bf357600080fd5b505af1158015612c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c2b91908101906141ce565b90506000816001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612c6a57600080fd5b505af1158015612c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ca29190810190614673565b4211612d2057816001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d1b9190810190614673565b612d93565b816001600160a01b0316639f678cca6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d5b57600080fd5b505af1158015612d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d939190810190614673565b9050610934816b033b2e3c9fd0803ce800000086612f4a565b600061184a82612a0985613148565b60405160009081906060906001600160a01b038716907fdd62ed3e0000000000000000000000000000000000000000000000000000000090612e0390889088906024016148d8565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612e5691906148a8565b600060405180830381855afa9150503d8060008114612e91576040519150601f19603f3d011682016040523d82523d6000602084013e612e96565b606091505b5091509150818015612ea9575080516020145b15612ebc57612eb9816000612b72565b92505b50509392505050565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e90565b6000806000612eeb84613201565b91509150612ef9828261298d565b925061093483856080015161298d565b60008151835114801561184a5750508051602091820120825192909101919091201490565b60008282018381101561184a5761184a612a2f60008686613414565b600061093483612f60868563ffffffff61343316565b9063ffffffff61346416565b600082821115612f8557612f85612a2f60028585613414565b50900390565b6000612f9b82610140015161348e565b8015612fbc575060c08201511580612fbc5750612fbc82610180015161348e565b8015612fd15750612fd182610160015161348e565b8015610881575060e082015115806108815750610881826101a0015161348e565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc7154150881529485019590955290830191909152948101949094526001600160a01b039091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6060632800659560e01b8484846040516024016130c693929190614e37565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915290509392505050565b805160208201fd5b6000816020018351101561313f5761313f612a2f60058551856020016130a7565b50016020015190565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a75349390929091602087101561319457fe5b601f1987018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b600080600483610140015151101561321e57506000905080611525565b610140830151600090613237908263ffffffff612a0e16565b90506001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156133e4576101408401516040517f750bdb3000000000000000000000000000000000000000000000000000000000815260009173__$af40232205bf188fa8dd573e0f47eaeabc$__9163750bdb30916132c291600401614dc4565b60006040518083038186803b1580156132da57600080fd5b505af41580156132ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133169190810190613f42565b506006549093506001600160a01b038085169116141591506133e290505773__$8ab3d6b0b5fe290c724f8d6cfdac7eabfb$__63d12a796086613357612ec5565b6040518363ffffffff1660e01b8152600401613374929190614f1d565b60206040518083038186803b15801561338c57600080fd5b505af41580156133a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133c49190810190614673565b6133d78660000151876101400151611abb565b935093505050611525565b505b6133f78460000151856101400151610ba1565b61340a8560000151866101400151611abb565b9250925050915091565b606063e946c1bb60e01b8484846040516024016130c693929190614e15565b600082613442575060006106cd565b8282028284828161344f57fe5b041461184a5761184a612a2f60018686613414565b60008161347a5761347a612a2f60038585613414565b600082848161348557fe5b04949350505050565b6000602082518161349b57fe5b066004146134ab57506000610884565b60006134bd838263ffffffff612a0e16565b90506001600160e01b031981167f94cfcdd700000000000000000000000000000000000000000000000000000000146134fa576001915050610884565b6040517fbbb2dcf600000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063bbb2dcf69061354d908790600401614dc4565b60006040518083038186803b15801561356557600080fd5b505af4158015613579573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135a191908101906140fe565b80519093509150600090505b8181146136375760006135dd60008584815181106135c757fe5b6020026020010151612a0e90919063ffffffff16565b90506001600160e01b031981167f0257179200000000000000000000000000000000000000000000000000000000141561362e5761361b8483613643565b1561362e57600095505050505050610884565b506001016135ad565b50600195945050505050565b8151600090600183015b818110156107d25761368e85828151811061366457fe5b602002602001015186868151811061367857fe5b6020026020010151612f0990919063ffffffff16565b1561369e576001925050506106cd565b60010161364d565b6040805160608101909152806000815260006020820181905260409091015290565b80356106cd81615016565b80516106cd81615016565b600082601f8301126136ee578081fd5b81356137016136fc82614fa2565b614f7b565b81815291506020808301908481018184028601820187101561372257600080fd5b60005b8481101561148b57813561373881615016565b84529282019290820190600101613725565b600082601f83011261375a578081fd5b81356137686136fc82614fa2565b8181529150602080830190840160005b838110156137a5576137908760208435890101613939565b83526020928301929190910190600101613778565b5050505092915050565b600082601f8301126137bf578081fd5b81516137cd6136fc82614fa2565b8181529150602080830190840160005b838110156137a5576137f58760208451890101613987565b835260209283019291909101906001016137dd565b600082601f83011261381a578081fd5b81356138286136fc82614fa2565b8181529150602080830190840160005b838110156137a55761385087602084358901016139dc565b83526020928301929190910190600101613838565b600082601f830112613875578081fd5b81356138836136fc82614fa2565b8181529150602080830190848101818402860182018710156138a457600080fd5b60005b8481101561148b578135845292820192908201906001016138a7565b600082601f8301126138d3578081fd5b81516138e16136fc82614fa2565b81815291506020808301908481018184028601820187101561390257600080fd5b60005b8481101561148b57815184529282019290820190600101613905565b80516001600160e01b0319811681146106cd57600080fd5b600082601f830112613949578081fd5b81356139576136fc82614fc2565b915080825283602082850101111561396e57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613997578081fd5b81516139a56136fc82614fc2565b91508082528360208285010111156139bc57600080fd5b611490816020840160208601614fe6565b8051600581106106cd57600080fd5b60006101c08083850312156139ef578182fd5b6139f881614f7b565b915050613a0583836136c8565b8152613a1483602084016136c8565b6020820152613a2683604084016136c8565b6040820152613a3883606084016136c8565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115613a9a57600080fd5b613aa686838701613939565b83850152610160925082850135915080821115613ac257600080fd5b613ace86838701613939565b83850152610180925082850135915080821115613aea57600080fd5b613af686838701613939565b838501526101a0925082850135915080821115613b1257600080fd5b50613b1f85828601613939565b82840152505092915050565b600060208284031215613b3c578081fd5b813561184a81615016565b60008060408385031215613b59578081fd5b8235613b6481615016565b9150602083013567ffffffffffffffff811115613b7f578182fd5b613b8b8582860161374a565b9150509250929050565b60008060008060808587031215613baa578182fd5b8435613bb581615016565b9350602085013567ffffffffffffffff80821115613bd1578384fd5b613bdd88838901613865565b94506040870135915080821115613bf2578384fd5b613bfe88838901613865565b93506060870135915080821115613c13578283fd5b50613c2087828801613939565b91505092959194509250565b60008060408385031215613c3e578182fd5b8235613c4981615016565b9150602083013567ffffffffffffffff811115613c64578182fd5b613b8b85828601613939565b600080600060608486031215613c84578081fd5b8335613c8f81615016565b9250602084013567ffffffffffffffff811115613caa578182fd5b613cb686828701613939565b925050604084013590509250925092565b60008060408385031215613cd9578182fd5b8235613ce481615016565b946020939093013593505050565b600060208284031215613d03578081fd5b813567ffffffffffffffff811115613d19578182fd5b610934848285016136de565b60006020808385031215613d37578182fd5b825167ffffffffffffffff811115613d4d578283fd5b80840185601f820112613d5e578384fd5b80519150613d6e6136fc83614fa2565b8281528381019082850185850284018601891015613d8a578687fd5b8693505b84841015613db457613da089826139cd565b835260019390930192918501918501613d8e565b50979650505050505050565b600080600060608486031215613dd4578081fd5b833567ffffffffffffffff80821115613deb578283fd5b613df78783880161380a565b94506020860135915080821115613e0c578283fd5b613e18878388016136de565b93506040860135915080821115613e2d578283fd5b50613e3a86828701613865565b9150509250925092565b60008060408385031215613e56578182fd5b823567ffffffffffffffff80821115613e6d578384fd5b613e798683870161380a565b93506020850135915080821115613e8e578283fd5b50613b8b8582860161374a565b60008060408385031215613ead578182fd5b823567ffffffffffffffff80821115613ec4578384fd5b613e7986838701613865565b600060208284031215613ee1578081fd5b8151801515811461184a578182fd5b600060208284031215613f01578081fd5b61184a8383613921565b60008060408385031215613f1d578182fd5b613f278484613921565b91506020830151613f3781615016565b809150509250929050565b60008060008060808587031215613f57578182fd5b8451613f628161502b565b6020860151909450613f7381615016565b6040860151909350613f8481615016565b606086015190925067ffffffffffffffff811115613fa0578182fd5b613c2087828801613987565b600080600080600060a08688031215613fc3578283fd5b613fcd8787613921565b94506020860151613fdd81615016565b604087015190945067ffffffffffffffff80821115613ffa578485fd5b61400689838a016138c3565b9450606088015191508082111561401b578283fd5b61402789838a016138c3565b9350608088015191508082111561403c578283fd5b5061404988828901613987565b9150509295509295909350565b6000806000806080858703121561406b578182fd5b6140758686613921565b9350602085015161408581615016565b604086015190935067ffffffffffffffff8111156140a1578283fd5b6140ad87828801613987565b606096909601519497939650505050565b6000806000606084860312156140d2578081fd5b6140dc8585613921565b925060208401516140ec81615016565b80925050604084015190509250925092565b600080600060608486031215614112578081fd5b835161411d8161502b565b602085015190935067ffffffffffffffff8082111561413a578283fd5b614146878388016138c3565b9350604086015191508082111561415b578283fd5b50613e3a868287016137af565b600060208284031215614179578081fd5b813567ffffffffffffffff81111561418f578182fd5b61093484828501613939565b6000602082840312156141ac578081fd5b815167ffffffffffffffff8111156141c2578182fd5b61093484828501613987565b6000602082840312156141df578081fd5b815161184a81615016565b6000602082840312156141fb578081fd5b81516005811061184a578182fd5b6000806000806080858703121561421e578182fd5b845167ffffffffffffffff811115614234578283fd5b61424087828801613987565b945050602085015167ffffffffffffffff81111561425c578283fd5b86601f828801011261426c578283fd5b8086015161427c6136fc82614fa2565b8181526020808201919089850101865b84811015614415578151868c01016101c0601f19828f030112156142ae578889fd5b6142b96101c0614f7b565b6142c68e602084016136d3565b81526142d58e604084016136d3565b60208201526142e78e606084016136d3565b60408201526142f98e608084016136d3565b606082015260a0820151608082015260c082015160a082015260e082015160c082015261010082015160e082015261012082015161010082015261014082015161012082015261016082015167ffffffffffffffff811115614359578a8bfd5b6143688f602083860101613987565b6101408301525061018082015167ffffffffffffffff811115614389578a8bfd5b6143988f602083860101613987565b610160830152506101a082015167ffffffffffffffff8111156143b9578a8bfd5b6143c88f602083860101613987565b610180830152506101c082015167ffffffffffffffff8111156143e9578a8bfd5b6143f88f602083860101613987565b6101a083015250855250602093840193919091019060010161428c565b505080965050505050604085015167ffffffffffffffff811115614437578283fd5b614443878288016138c3565b925050606085015167ffffffffffffffff81111561445f578182fd5b613c20878288016137af565b60006060828403121561447c578081fd5b6144866060614f7b565b825160078110614494578283fd5b8152602083810151908201526040928301519281019290925250919050565b6000806000606084860312156144c7578081fd5b833567ffffffffffffffff8111156144dd578182fd5b6144e9868287016139dc565b93505060208401356144fa81615016565b929592945050506040919091013590565b6000806040838503121561451d578182fd5b823567ffffffffffffffff80821115614534578384fd5b614540868387016139dc565b93506020850135915080821115614555578283fd5b50613b8b85828601613939565b600080600060608486031215614576578081fd5b833567ffffffffffffffff81111561458c578182fd5b614598868287016139dc565b9350506020840135915060408401356145b081615016565b809150509250925092565b6000806000606084860312156145cf578081fd5b833567ffffffffffffffff808211156145e6578283fd5b81860160a081890312156145f8578384fd5b61460260a0614f7b565b925080358352602081013560208401526040810135604084015261462988606083016136c8565b606084015260808101358281111561463f578485fd5b61464b89828401613939565b60808501525091945050506020840135915061466a85604086016136c8565b90509250925092565b600060208284031215614684578081fd5b5051919050565b6001600160a01b0316815260200190565b1515815260200190565b60006146b28383614784565b505060600190565b6001600160a01b03169052565b60008282518085526020808601955080818302840101818601855b8481101561471057601f198684030189526146fe838351614758565b988401989250908301906001016146e2565b5090979650505050505050565b6000815180845260208401935060208301825b8281101561474e578151865260209586019590910190600101614730565b5093949350505050565b60008151808452614770816020860160208601614fe6565b601f01601f19169290920160200192915050565b80516007811061479057fe5b825260208181015190830152604090810151910152565b60006101c06147b78484516146ba565b60208301516147c960208601826146ba565b5060408301516147dc60408601826146ba565b5060608301516147ef60608601826146ba565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e085015261010080840151818601525061012080840151818601525061014080840151828287015261484883870182614758565b915050610160915081840151858203838701526148658282614758565b9250505061018080840151858303828701526148818382614758565b9150506101a09150818401518582038387015261489e8282614758565b9695505050505050565b600082516148ba818460208701614fe6565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000608082016001600160a01b0387168352602060808185015281875161493c8185614c41565b91508193508281028201838a01865b838110156149755786830385526149638383516147a7565b9486019492509085019060010161494b565b50508681036040880152809450885192506149908382614c41565b94505050818701845b828110156149ba576149ac85835161468b565b945090830190600101614999565b5050505082810360608401526149d0818561471d565b979650505050505050565b60006001600160a01b0386168252608060208301526149fd608083018661471d565b8281036040840152614a0f818661471d565b8381036060850152614a218186614758565b98975050505050505050565b60006001600160a01b038516825260606020830152614a4f6060830185614758565b9050826040830152949350505050565b60006001600160a01b03808716835260806020840152614a8260808401876147a7565b94166040830152506060015292915050565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b81811015614aef57835160058110614adb57fe5b835260209384019390920191600101614ac7565b509095945050505050565b60006060820160608352808651614b118184614c41565b9150602088019250835b81811015614b3f57614b2e8385516146a6565b602094909401939250600101614b1b565b50508381036020850152614b53818761471d565b9150508281036040840152808451614b6b8184614c41565b9150602086019250835b8181101561471057614b8883855161469c565b602094909401939250600101614b75565b60006020825261184a602083018461471d565b600060408252614bbf604083018561471d565b602083820381850152818551808452828401915082838202850101838801865b83811015614c0d57601f19878403018552614bfb838351614758565b94860194925090850190600101614bdf565b50909998505050505050505050565b600060408252614c2f604083018561471d565b828103602084015261190d818561471d565b90815260200190565b6001600160e01b031991909116815260200190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b60006001600160e01b0319861682526001600160a01b0380861660208401528085166040840152506080606083015261489e6080830184614758565b60006001600160e01b0319871682526001600160a01b038616602083015260a06040830152614cf060a083018661471d565b8281036060840152614d02818661471d565b8381036080850152614d148186614758565b9998505050505050505050565b60006001600160e01b0319861682526001600160a01b038516602083015260806040830152614d536080830185614758565b905082606083015295945050505050565b6001600160e01b03199390931683526001600160a01b03919091166020830152604082015260600190565b60006001600160e01b03198516825260606020830152614db2606083018561471d565b828103604084015261489e81856146c7565b60006020825261184a6020830184614758565b600060808252614dea6080830187614758565b6001600160a01b03958616602084015293909416604082015260ff9190911660609091015292915050565b6060810160048510614e2357fe5b938152602081019290925260409091015290565b6060810160088510614e2357fe5b6020810160058310614e5357fe5b91905290565b600060808252614e6c6080830187614758565b602083820381850152818751808452828401915082838202850101838a01865b83811015614eba57601f19878403018552614ea88383516147a7565b94860194925090850190600101614e8c565b50508681036040880152614ece818a61471d565b94505050505082810360608401526149d081856146c7565b60a08101614ef48286614784565b8360608301528215156080830152949350505050565b60006020825261184a60208301846147a7565b600060408252614f3060408301856147a7565b90506001600160a01b03831660208301529392505050565b600060408252614f5b60408301856147a7565b828103602084015261190d8185614758565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715614f9a57600080fd5b604052919050565b600067ffffffffffffffff821115614fb8578081fd5b5060209081020190565b600067ffffffffffffffff821115614fd8578081fd5b50601f01601f191660200190565b60005b83811015615001578181015183820152602001614fe9565b83811115615010576000848401525b50505050565b6001600160a01b038116811461075457600080fd5b6001600160e01b03198116811461075457600080fdfea365627a7a7231582042d7fae961b1460c70c7ec8ff1688f8680c3323368dee844634a86b8a2f15fdb6c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106102775760003560e01c8063a5cd62ba11610160578063d186037f116100d8578063e4e6e7da1161008c578063ee18599711610071578063ee185997146105d8578063ef3bb097146105e0578063ff84e7cc146105e857610277565b8063e4e6e7da14610595578063e77286eb146105b657610277565b8063d3d862d1116100bd578063d3d862d114610540578063d469502814610553578063e25cabf71461057357610277565b8063d186037f1461051a578063d36379051461052d57610277565b8063bbb2dcf61161012f578063c82037ef11610114578063c82037ef146104dc578063ca49f47c146104e4578063d001c5dc1461050757610277565b8063bbb2dcf6146104b2578063c26cfecd146104d457610277565b8063a5cd62ba14610464578063a6627e9f14610484578063a7530f1214610497578063b43cffe11461049f57610277565b80637982653e116101f35780639baf2705116101c25780639eadc835116101a75780639eadc8351461041a578063a070cac81461043e578063a0901e511461045157610277565b80639baf2705146103fd5780639cd016051461041257610277565b80637982653e1461039657806379c9c426146103b65780637d727512146103c95780638f4ce479146103dc57610277565b80634dfdac201161024a57806363eb39921161022f57806363eb39921461033d5780636f83188e14610350578063750bdb301461037357610277565b80634dfdac20146102fd578063590aa8751461031d57610277565b806304a5618a1461027c5780630d7b7d76146102a75780632322cf76146102c857806346eb65cb146102e8575b600080fd5b61028f61028a366004614296565b6105f0565b60405161029e93929190614ce9565b60405180910390f35b6102ba6102b5366004613d5a565b610689565b60405161029e929190614ef1565b6102db6102d6366004613d5a565b6106ab565b60405161029e9190614bc6565b6102fb6102f6366004614296565b6106d3565b005b61031061030b366004613c75565b610757565b60405161029e9190614b1e565b61033061032b366004613c59565b6107da565b60405161029e9190614d49565b61033061034b366004613d9e565b610889565b61036361035e366004614296565b61093c565b60405161029e9493929190614ddd565b610386610381366004614296565b6109dc565b60405161029e9493929190614c07565b6103a96103a4366004614468565b610a6e565b60405161029e9190614dca565b6102db6103c4366004614570565b610b20565b6102db6103d7366004613d5a565b610ba1565b6103ef6103ea366004614296565b611497565b60405161029e929190614be4565b61040561152a565b60405161029e9190614871565b610405611539565b61042d610428366004614296565b611548565b60405161029e959493929190614c43565b6102db61044c366004614517565b6115ed565b61031061045f366004613e20565b61166e565b610477610472366004613eee565b6116e7565b60405161029e9190614a37565b610330610492366004613df5565b6117a1565b610405611851565b6103306104ad366004613cc3565b611860565b6104c56104c0366004614296565b611916565b60405161029e93929190614d14565b6102db6119a6565b6104056119ac565b6104f76104f2366004614296565b6119bb565b60405161029e9493929190614ca6565b610310610515366004613c75565b611a4d565b6102db610528366004613d5a565b611abb565b6103a961053b366004614468565b6123b7565b61033061054e366004613fc9565b612419565b610566610561366004614296565b61246e565b60405161029e9190614bcf565b610586610581366004613f72565b612511565b60405161029e93929190614a83565b6105a86105a3366004613c75565b612649565b60405161029e929190614ba1565b6105c96105c43660046144c0565b612662565b60405161029e93929190614e6a565b6104056129d2565b6104056129e1565b6104056129f0565b600080600073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a856040518263ffffffff1660e01b815260040161062c9190614d49565b60606040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c91908101906141ec565b9250925092509193909250565b6000806106968484610ba1565b91506106a28484611abb565b90509250929050565b60008060006106ba8585610689565b915091506106c882826129ff565b925050505b92915050565b6040517f46eb65cb00000000000000000000000000000000000000000000000000000000815273__$d8b635de2bf4a097b4e18b67d0fb68e779$__906346eb65cb90610723908490600401614d49565b60006040518083038186803b15801561073b57600080fd5b505af415801561074f573d6000803e3d6000fd5b505050505b50565b606060008251905080604051908082528060200260200182016040528015610789578160200160208202803883390190505b50915060005b8181146107d2576107b3858583815181106107a657fe5b6020026020010151611abb565b8382815181106107bf57fe5b602090810291909101015260010161078f565b505092915050565b6040517f590aa87500000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063590aa8759061082d908590600401614871565b60006040518083038186803b15801561084557600080fd5b505af4158015610859573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261088191908101906142c9565b90505b919050565b6040517f63eb399200000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__906363eb3992906108e0908790879087906004016149b7565b60006040518083038186803b1580156108f857600080fd5b505af415801561090c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261093491908101906142c9565b949350505050565b60608060608073__$fddee3b26a806429350031cf3481976d2e$__636f83188e866040518263ffffffff1660e01b81526004016109799190614d49565b60006040518083038186803b15801561099157600080fd5b505af41580156109a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614333565b93509350935093509193509193565b6000806000606073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b8152600401610a1a9190614d49565b60006040518083038186803b158015610a3257600080fd5b505af4158015610a46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614070565b600080546040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__91639caa023b91610ad0916001600160a01b0316908890889088906004016149e9565b60206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109349190810190614318565b600061093484610b9c6040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e300000000000000000000000000000000000000000000000000000008152508787612a15565b612a6c565b600080610bb4838263ffffffff612a8016565b90506001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415610c0f576000610bfb84601063ffffffff612ab916565b9050610c078186612aec565b925050611490565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415610e285760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a866040518263ffffffff1660e01b8152600401610c7b9190614d49565b60606040518083038186803b158015610c9357600080fd5b505af4158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ccb91908101906141ec565b6040519194509250606091507f6352211e0000000000000000000000000000000000000000000000000000000090610d07908490602401614bc6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051610d829190614855565b600060405180830381855afa9150503d8060008114610dbd576040519150601f19603f3d011682016040523d82523d6000602084013e610dc2565b606091505b50915091506000828015610dd7575081516020145b610de2576000610df3565b610df382600c63ffffffff612ab916565b9050896001600160a01b0316816001600160a01b031614610e15576000610e18565b60015b60ff169750505050505050611490565b6001600160e01b031981167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156110c457600060608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__639eadc835876040518263ffffffff1660e01b8152600401610e969190614d49565b60006040518083038186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eea91908101906140da565b5081519296509094509250905060005b8181146110ba57828181518110610f0d57fe5b602002602001015160001415610f22576110b2565b83516060907efdd58e00000000000000000000000000000000000000000000000000000000908b90879085908110610f5657fe5b6020026020010151604051602401610f6f929190614a1e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060876001600160a01b031683604051610fea9190614855565b600060405180830381855afa9150503d8060008114611025576040519150601f19603f3d011682016040523d82523d6000602084013e61102a565b606091505b5091509150600082801561103f575081516020145b61104a57600061105b565b61105b82600063ffffffff612be416565b9050600087868151811061106b57fe5b6020026020010151828161107b57fe5b049050806110975760009b5050505050505050505050506106cd565b8b8110806110a357508b155b156110ac57809b505b50505050505b600101610efa565b5050505050611490565b6001600160e01b031981167fc339d10a0000000000000000000000000000000000000000000000000000000014156111f7576040516060907fa85e59e4000000000000000000000000000000000000000000000000000000009061113390869060009081908190602401614d5c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199094169390931790925260045491519092506000916001600160a01b03169061119a908490614855565b600060405180830381855afa9150503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111da565b606091505b50509050806111ea5760006111ee565b6000195b93505050611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156113205760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b81526004016112639190614d49565b60006040518083038186803b15801561127b57600080fd5b505af415801561128f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b79190810190614070565b5092509250506112c5612bf0565b6001600160a01b0316826001600160a01b03161480156112f257506005546001600160a01b038281169116145b1561131957600061130a611304612c08565b88612aec565b905061131581612c20565b9450505b5050611490565b6001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014156114905760608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6866040518263ffffffff1660e01b815260040161138c9190614d49565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e0919081019061422c565b80519194509250905060005b81811461148b578381815181106113ff57fe5b60200260200101516000141561141457611483565b60006114338985848151811061142657fe5b6020026020010151610ba1565b9050600085838151811061144357fe5b6020026020010151828161145357fe5b0490508061146b5760009750505050505050506106cd565b87811080611477575087155b15611480578097505b50505b6001016113ec565b505050505b5092915050565b60008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__638f4ce479846040518263ffffffff1660e01b81526004016114d19190614d49565b604080518083038186803b1580156114e857600080fd5b505af41580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115209190810190614039565b915091505b915091565b6004546001600160a01b031681565b6000546001600160a01b031681565b600080606080606073__$d8b635de2bf4a097b4e18b67d0fb68e779$__639eadc835876040518263ffffffff1660e01b81526004016115879190614d49565b60006040518083038186803b15801561159f57600080fd5b505af41580156115b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115db91908101906140da565b939a9299509097509550909350915050565b6000610934846116696040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e300000000000000000000000000000000000000000000000000000008152508787612a15565b612e1e565b606080825160405190808252806020026020018201604052801561169c578160200160208202803883390190505b50905060005b83518114611490578381815181106116b657fe5b60200260200101516001600160a01b0316318282815181106116d457fe5b60209081029190910101526001016116a2565b6000546040517f02cffc4500000000000000000000000000000000000000000000000000000000815260609173__$7a69f714cdde1cb6b62e3c39bc8c94deae$__916302cffc459161174d916001600160a01b039091169088908890889060040161489f565b60006040518083038186803b15801561176557600080fd5b505af4158015611779573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109349190810190613e53565b6040517fa6627e9f00000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063a6627e9f906117f69086908690600401614a1e565b60006040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184a91908101906142c9565b9392505050565b6006546001600160a01b031681565b6040517fb43cffe100000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063b43cffe1906118b9908890889088908890600401614965565b60006040518083038186803b1580156118d157600080fd5b505af41580156118e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261190d91908101906142c9565b95945050505050565b600060608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6856040518263ffffffff1660e01b81526004016119529190614d49565b60006040518083038186803b15801561196a57600080fd5b505af415801561197e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067c919081019061422c565b60075481565b6005546001600160a01b031681565b6000806060600073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63ca49f47c866040518263ffffffff1660e01b81526004016119f99190614d49565b60006040518083038186803b158015611a1157600080fd5b505af4158015611a25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614184565b606060008251905080604051908082528060200260200182016040528015611a7f578160200160208202803883390190505b50915060005b8181146107d257611a9c8585838151811061142657fe5b838281518110611aa857fe5b6020908102919091010152600101611a85565b600080611ace838263ffffffff612a8016565b90506001600160e01b031981167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611c395760608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6866040518263ffffffff1660e01b8152600401611b3c9190614d49565b60006040518083038186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b90919081019061422c565b80519194509250905060005b818114611c2e57838181518110611baf57fe5b602002602001015160001415611bc457611c26565b6000611bd6898584815181106107a657fe5b90506000858381518110611be657fe5b60200260200101518281611bf657fe5b04905080611c0e5760009750505050505050506106cd565b87811080611c1a575087155b15611c23578097505b50505b600101611b9c565b506106cd9350505050565b6001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415611c9a576000611c7e84601063ffffffff612ab916565b600154909150610c0790829087906001600160a01b0316612e2d565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415611fea5760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a866040518263ffffffff1660e01b8152600401611d069190614d49565b60606040518083038186803b158015611d1e57600080fd5b505af4158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5691908101906141ec565b600254604051929550909350606092507fe985e9c50000000000000000000000000000000000000000000000000000000091611da2918a916001600160a01b0390911690602401614885565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051611e1d9190614855565b600060405180830381855afa9150503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5091509150811580611e7157508051602014155b80611e8d5750611e8881600063ffffffff612be416565b600114155b15611fdb576040516060907f081812fc0000000000000000000000000000000000000000000000000000000090611ec8908790602401614bc6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050856001600160a01b031681604051611f3f9190614855565b600060405180830381855afa9150503d8060008114611f7a576040519150601f19603f3d011682016040523d82523d6000602084013e611f7f565b606091505b509093509150828015611f93575081516020145b8015611fc257506002546001600160a01b0316611fb783600c63ffffffff612ab916565b6001600160a01b0316145b611fcd576000611fd0565b60015b60ff169750506110ba565b60001996505050505050611490565b6001600160e01b031981167fa7cb5fb7000000000000000000000000000000000000000000000000000000001415612211576040517f9eadc83500000000000000000000000000000000000000000000000000000000815260009073__$d8b635de2bf4a097b4e18b67d0fb68e779$__90639eadc8359061206f908790600401614d49565b60006040518083038186803b15801561208757600080fd5b505af415801561209b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120c391908101906140da565b5050600354604051929450606093507fe985e9c5000000000000000000000000000000000000000000000000000000009261210d925089916001600160a01b031690602401614885565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060836001600160a01b0316836040516121889190614855565b600060405180830381855afa9150503d80600081146121c3576040519150601f19603f3d011682016040523d82523d6000602084013e6121c8565b606091505b50915091508180156121db575080516020145b80156121f757506121f381600063ffffffff612be416565b6001145b612202576000612206565b6000195b955050505050611490565b6001600160e01b031981167fc339d10a00000000000000000000000000000000000000000000000000000000141561224d576000199150611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156114905760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b81526004016122b99190614d49565b60006040518083038186803b1580156122d157600080fd5b505af41580156122e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230d9190810190614070565b50925092505061231b612bf0565b6001600160a01b0316826001600160a01b031614801561234857506005546001600160a01b038281169116145b1561239257600061236d61235a612c08565b60055489906001600160a01b0316612e2d565b905060001981146123865761238181612c20565b61238a565b6000195b9450506123ae565b6006546001600160a01b03828116911614156123ae5760001993505b50505092915050565b600080546040517f8dccde0400000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__91638dccde0491610ad0916001600160a01b0316908890889088906004016149e9565b6040517fd3d862d100000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063d3d862d1906117f69086908690600401614b31565b6040517fd469502800000000000000000000000000000000000000000000000000000000815260009073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063d4695028906124c1908590600401614d49565b60206040518083038186803b1580156124d957600080fd5b505af41580156124ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610881919081019061401e565b60608060606000855190508060405190808252806020026020018201604052801561255657816020015b612543613691565b81526020019060019003908161253b5790505b50935080604051908082528060200260200182016040528015612583578160200160208202803883390190505b509250806040519080825280602002602001820160405280156125b0578160200160208202803883390190505b50915060005b818114612640576125ed8782815181106125cc57fe5b60200260200101518783815181106125e057fe5b6020026020010151612662565b87518890859081106125fb57fe5b6020026020010187858151811061260e57fe5b6020026020010187868151811061262157fe5b93151560209485029190910190930192909252919052526001016125b6565b50509250925092565b6060806126568484611a4d565b91506106a28484610757565b61266a613691565b600080546040517f9d3fa4b900000000000000000000000000000000000000000000000000000000815282916001600160a01b031690639d3fa4b9906126b4908890600401614e8e565b60606040518083038186803b1580156126cc57600080fd5b505afa1580156126e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127049190810190614420565b85516000546040517fa12dcc6f00000000000000000000000000000000000000000000000000000000815292955090916001600160a01b039091169063a12dcc6f906127569089908990600401614ecc565b60206040518083038186803b15801561276e57600080fd5b505afa158015612782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127a69190810190613ffe565b915060006127b387612f37565b905060006127d4886101800151896101400151612f5390919063ffffffff16565b1561280957612802826127f88a60c001518b60800151612f7890919063ffffffff16565b8a60a00151612f94565b9050612876565b60c0880151612825576128028289608001518a60a00151612f94565b6000612836848a61018001516106ab565b9050600061284d848b608001518c60a00151612f94565b90506000612864838c60c001518d60a00151612f94565b905061287082826129ff565b93505050505b61289a61289487604001518a60a00151612fb690919063ffffffff16565b826129ff565b9450600460005460208a01516040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__92639caa023b92612905926001600160a01b03909216918e91908c906004016149e9565b60206040518083038186803b15801561291d57600080fd5b505af4158015612931573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129559190810190614318565b600481111561296057fe5b1461296c57600061296e565b845b945061297e886101600151612fd5565b61298757600094505b60e0880151158015906129a557506129a3886101a00151612fd5565b155b156129af57600094505b6003865160068111156129be57fe5b146129c857600094505b5050509250925092565b6001546001600160a01b031681565b6002546001600160a01b031681565b6003546001600160a01b031681565b6000818310612a0e578161184a565b5090919050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600061184a82612a7b8561318a565b613205565b60008160040183511015612aa657612aa6612aa1600385518560040161323f565b6132ae565b5001602001516001600160e01b03191690565b60008160140183511015612ada57612ada612aa1600485518560140161323f565b5001601401516001600160a01b031690565b60405160009081906060906001600160a01b038616907f70a082310000000000000000000000000000000000000000000000000000000090612b32908790602401614871565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612b859190614855565b600060405180830381855afa9150503d8060008114612bc0576040519150601f19603f3d011682016040523d82523d6000602084013e612bc5565b606091505b5091509150818015612bd8575080516020145b156107d2576106c88160005b600061184a83836132b6565b736b175474e89094c44da98b954eedeac495271d0f90565b7306af07097c9eeb7fd685c692751d5c66db49c21590565b600080612c2b612c08565b6001600160a01b0316634ba2363a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612c6557600080fd5b505af1158015612c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c9d91908101906142fc565b90506000816001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612cdc57600080fd5b505af1158015612cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d149190810190614629565b4211612d9257816001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d5557600080fd5b505af1158015612d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d8d9190810190614629565b612e05565b816001600160a01b0316639f678cca6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612dcd57600080fd5b505af1158015612de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e059190810190614629565b9050610934816b033b2e3c9fd0803ce800000086612f94565b600061184a82612a7b856132e0565b60405160009081906060906001600160a01b038716907fdd62ed3e0000000000000000000000000000000000000000000000000000000090612e759088908890602401614885565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612ec89190614855565b600060405180830381855afa9150503d8060008114612f03576040519150601f19603f3d011682016040523d82523d6000602084013e612f08565b606091505b5091509150818015612f1b575080516020145b15612f2e57612f2b816000612be4565b92505b50509392505050565b6000806000612f4584613399565b9150915061093482826129ff565b60008151835114801561184a5750508051602091820120825192909101919091201490565b60008282018381101561184a5761184a612aa16000868661359c565b600061093483612faa868563ffffffff6135bb16565b9063ffffffff6135ec16565b600082821115612fcf57612fcf612aa16002858561359c565b50900390565b60006020825181612fe257fe5b06600414612ff257506000610884565b6000613004838263ffffffff612a8016565b90506001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014613041576001915050610884565b6040517fbbb2dcf600000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063bbb2dcf690613094908790600401614d49565b60006040518083038186803b1580156130ac57600080fd5b505af41580156130c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130e8919081019061422c565b80519093509150600090505b81811461317e576000613124600085848151811061310e57fe5b6020026020010151612a8090919063ffffffff16565b90506001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415613175576131628483613616565b1561317557600095505050505050610884565b506001016130f4565b50600195945050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc7154150881529485019590955290830191909152948101949094526001600160a01b039091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6060632800659560e01b84848460405160240161325e93929190614dbc565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915290509392505050565b805160208201fd5b600081602001835110156132d7576132d7612aa1600585518560200161323f565b50016020015190565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a75349390929091602087101561332c57fe5b601f1987018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b60008060048361014001515110156133b657506000905080611525565b6101408301516000906133cf908263ffffffff612a8016565b90506001600160e01b031981167fdc1600f300000000000000000000000000000000000000000000000000000000141561356c576101408401516040517f750bdb3000000000000000000000000000000000000000000000000000000000815260009173__$d8b635de2bf4a097b4e18b67d0fb68e779$__9163750bdb309161345a91600401614d49565b60006040518083038186803b15801561347257600080fd5b505af4158015613486573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526134ae9190810190614070565b506006549093506001600160a01b0380851691161415915061356a90505773__$ef9cb1cf4426222cc0af8204def2680bac$__63d12a7960866134ef613679565b6040518363ffffffff1660e01b815260040161350c929190614ea1565b60206040518083038186803b15801561352457600080fd5b505af4158015613538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061355c9190810190614629565b600019935093505050611525565b505b61357f8460000151856101400151610ba1565b6135928560000151866101400151611abb565b9250925050915091565b606063e946c1bb60e01b84848460405160240161325e93929190614d9a565b6000826135ca575060006106cd565b828202828482816135d757fe5b041461184a5761184a612aa16001868661359c565b60008161360257613602612aa16003858561359c565b600082848161360d57fe5b04949350505050565b8151600090600183015b818110156107d25761366185828151811061363757fe5b602002602001015186868151811061364b57fe5b6020026020010151612f5390919063ffffffff16565b15613671576001925050506106cd565b600101613620565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e90565b6040805160608101909152806000815260006020820181905260409091015290565b80356106cd81614fa4565b80516106cd81614fa4565b600082601f8301126136d9578081fd5b81356136ec6136e782614f26565b614eff565b81815291506020808301908481018184028601820187101561370d57600080fd5b60005b8481101561148b57813561372381614fa4565b84529282019290820190600101613710565b600082601f830112613745578081fd5b81356137536136e782614f26565b8181529150602080830190840160005b838110156137905761377b8760208435890101613924565b83526020928301929190910190600101613763565b5050505092915050565b600082601f8301126137aa578081fd5b81516137b86136e782614f26565b8181529150602080830190840160005b83811015613790576137e08760208451890101613972565b835260209283019291909101906001016137c8565b600082601f830112613805578081fd5b81356138136136e782614f26565b8181529150602080830190840160005b838110156137905761383b87602084358901016139c7565b83526020928301929190910190600101613823565b600082601f830112613860578081fd5b813561386e6136e782614f26565b81815291506020808301908481018184028601820187101561388f57600080fd5b60005b8481101561148b57813584529282019290820190600101613892565b600082601f8301126138be578081fd5b81516138cc6136e782614f26565b8181529150602080830190848101818402860182018710156138ed57600080fd5b60005b8481101561148b578151845292820192908201906001016138f0565b80516001600160e01b0319811681146106cd57600080fd5b600082601f830112613934578081fd5b81356139426136e782614f46565b915080825283602082850101111561395957600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613982578081fd5b81516139906136e782614f46565b91508082528360208285010111156139a757600080fd5b611490816020840160208601614f6a565b8051600581106106cd57600080fd5b60006101c08083850312156139da578182fd5b6139e381614eff565b9150506139f083836136b3565b81526139ff83602084016136b3565b6020820152613a1183604084016136b3565b6040820152613a2383606084016136b3565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115613a8557600080fd5b613a9186838701613924565b83850152610160925082850135915080821115613aad57600080fd5b613ab986838701613924565b83850152610180925082850135915080821115613ad557600080fd5b613ae186838701613924565b838501526101a0925082850135915080821115613afd57600080fd5b50613b0a85828601613924565b82840152505092915050565b60006101c0808385031215613b29578182fd5b613b3281614eff565b915050613b3f83836136be565b8152613b4e83602084016136be565b6020820152613b6083604084016136be565b6040820152613b7283606084016136be565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff80821115613bd457600080fd5b613be086838701613972565b83850152610160925082850151915080821115613bfc57600080fd5b613c0886838701613972565b83850152610180925082850151915080821115613c2457600080fd5b613c3086838701613972565b838501526101a0925082850151915080821115613c4c57600080fd5b50613b0a85828601613972565b600060208284031215613c6a578081fd5b813561184a81614fa4565b60008060408385031215613c87578081fd5b8235613c9281614fa4565b9150602083013567ffffffffffffffff811115613cad578182fd5b613cb985828601613735565b9150509250929050565b60008060008060808587031215613cd8578182fd5b8435613ce381614fa4565b9350602085013567ffffffffffffffff80821115613cff578384fd5b613d0b88838901613850565b94506040870135915080821115613d20578384fd5b613d2c88838901613850565b93506060870135915080821115613d41578283fd5b50613d4e87828801613924565b91505092959194509250565b60008060408385031215613d6c578182fd5b8235613d7781614fa4565b9150602083013567ffffffffffffffff811115613d92578182fd5b613cb985828601613924565b600080600060608486031215613db2578081fd5b8335613dbd81614fa4565b9250602084013567ffffffffffffffff811115613dd8578182fd5b613de486828701613924565b925050604084013590509250925092565b60008060408385031215613e07578182fd5b8235613e1281614fa4565b946020939093013593505050565b600060208284031215613e31578081fd5b813567ffffffffffffffff811115613e47578182fd5b610934848285016136c9565b60006020808385031215613e65578182fd5b825167ffffffffffffffff811115613e7b578283fd5b80840185601f820112613e8c578384fd5b80519150613e9c6136e783614f26565b8281528381019082850185850284018601891015613eb8578687fd5b8693505b84841015613ee257613ece89826139b8565b835260019390930192918501918501613ebc565b50979650505050505050565b600080600060608486031215613f02578081fd5b833567ffffffffffffffff80821115613f19578283fd5b613f25878388016137f5565b94506020860135915080821115613f3a578283fd5b613f46878388016136c9565b93506040860135915080821115613f5b578283fd5b50613f6886828701613850565b9150509250925092565b60008060408385031215613f84578182fd5b823567ffffffffffffffff80821115613f9b578384fd5b613fa7868387016137f5565b93506020850135915080821115613fbc578283fd5b50613cb985828601613735565b60008060408385031215613fdb578182fd5b823567ffffffffffffffff80821115613ff2578384fd5b613fa786838701613850565b60006020828403121561400f578081fd5b8151801515811461184a578182fd5b60006020828403121561402f578081fd5b61184a838361390c565b6000806040838503121561404b578182fd5b614055848461390c565b9150602083015161406581614fa4565b809150509250929050565b60008060008060808587031215614085578182fd5b845161409081614fb9565b60208601519094506140a181614fa4565b60408601519093506140b281614fa4565b606086015190925067ffffffffffffffff8111156140ce578182fd5b613d4e87828801613972565b600080600080600060a086880312156140f1578283fd5b6140fb878761390c565b9450602086015161410b81614fa4565b604087015190945067ffffffffffffffff80821115614128578485fd5b61413489838a016138ae565b94506060880151915080821115614149578283fd5b61415589838a016138ae565b9350608088015191508082111561416a578283fd5b5061417788828901613972565b9150509295509295909350565b60008060008060808587031215614199578182fd5b6141a3868661390c565b935060208501516141b381614fa4565b604086015190935067ffffffffffffffff8111156141cf578283fd5b6141db87828801613972565b606096909601519497939650505050565b600080600060608486031215614200578081fd5b61420a858561390c565b9250602084015161421a81614fa4565b80925050604084015190509250925092565b600080600060608486031215614240578081fd5b835161424b81614fb9565b602085015190935067ffffffffffffffff80821115614268578283fd5b614274878388016138ae565b93506040860151915080821115614289578283fd5b50613f688682870161379a565b6000602082840312156142a7578081fd5b813567ffffffffffffffff8111156142bd578182fd5b61093484828501613924565b6000602082840312156142da578081fd5b815167ffffffffffffffff8111156142f0578182fd5b61093484828501613972565b60006020828403121561430d578081fd5b815161184a81614fa4565b600060208284031215614329578081fd5b61184a83836139b8565b60008060008060808587031215614348578182fd5b845167ffffffffffffffff8082111561435f578384fd5b61436b88838901613972565b9550602091508187015181811115614381578485fd5b80880189601f820112614392578586fd5b805191506143a26136e783614f26565b82815284810190828601885b858110156143d7576143c58e898451880101613b16565b845292870192908701906001016143ae565b505060408b01519098509450505050808211156143f2578384fd5b6143fe888389016138ae565b93506060870151915080821115614413578283fd5b50613d4e8782880161379a565b600060608284031215614431578081fd5b61443b6060614eff565b825160078110614449578283fd5b8152602083810151908201526040928301519281019290925250919050565b60008060006060848603121561447c578081fd5b833567ffffffffffffffff811115614492578182fd5b61449e868287016139c7565b93505060208401356144af81614fa4565b929592945050506040919091013590565b600080604083850312156144d2578182fd5b823567ffffffffffffffff808211156144e9578384fd5b6144f5868387016139c7565b9350602085013591508082111561450a578283fd5b50613cb985828601613924565b60008060006060848603121561452b578081fd5b833567ffffffffffffffff811115614541578182fd5b61454d868287016139c7565b93505060208401359150604084013561456581614fa4565b809150509250925092565b600080600060608486031215614584578081fd5b833567ffffffffffffffff8082111561459b578283fd5b81860160a081890312156145ad578384fd5b6145b760a0614eff565b925080358352602081013560208401526040810135604084015260608101356145df81614fa4565b60608401526080810135828111156145f5578485fd5b61460189828401613924565b60808501525091945050506020840135915061462085604086016136b3565b90509250925092565b60006020828403121561463a578081fd5b5051919050565b6001600160a01b0316815260200190565b600061465e8383614731565b505060600190565b6001600160a01b03169052565b600081518084526020840180819550602083028101915060208501845b848110156146be5782840388526146a8848351614705565b6020988901989094509190910190600101614690565b50919695505050505050565b6000815180845260208401935060208301825b828110156146fb5781518652602095860195909101906001016146dd565b5093949350505050565b6000815180845261471d816020860160208601614f6a565b601f01601f19169290920160200192915050565b80516007811061473d57fe5b825260208181015190830152604090810151910152565b60006101c0614764848451614666565b60208301516147766020860182614666565b5060408301516147896040860182614666565b50606083015161479c6060860182614666565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526147f583870182614705565b915050610160915081840151858203838701526148128282614705565b92505050610180808401518583038287015261482e8382614705565b9150506101a09150818401518582038387015261484b8282614705565b9695505050505050565b60008251614867818460208701614f6a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6000608082016001600160a01b038716835260206080818501528187516148c68185614bc6565b91508193508281028201838a01865b838110156148ff5786830385526148ed838351614754565b948601949250908501906001016148d5565b505086810360408801528094508851925061491a8382614bc6565b94505050818701845b8281101561494457614936858351614641565b945090830190600101614923565b50505050828103606084015261495a81856146ca565b979650505050505050565b60006001600160a01b03861682526080602083015261498760808301866146ca565b828103604084015261499981866146ca565b83810360608501526149ab8186614705565b98975050505050505050565b60006001600160a01b0385168252606060208301526149d96060830185614705565b9050826040830152949350505050565b60006001600160a01b03808716835260806020840152614a0c6080840187614754565b94166040830152506060015292915050565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b81811015614a78578351614a6481614f9a565b835260209384019390920191600101614a51565b509095945050505050565b60006060820160608352808651614a9a8184614bc6565b915060209250828801845b82811015614ac657614ab8848351614652565b935090840190600101614aa5565b50505083810382850152614ada81876146ca565b84810360408601528551808252908301915082860190845b81811015614b10578251151584529284019291840191600101614af2565b509198975050505050505050565b60006020825261184a60208301846146ca565b600060408252614b4460408301856146ca565b602083820381850152818551808452828401915082838202850101838801865b83811015614b9257601f19878403018552614b80838351614705565b94860194925090850190600101614b64565b50909998505050505050505050565b600060408252614bb460408301856146ca565b828103602084015261190d81856146ca565b90815260200190565b6001600160e01b031991909116815260200190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b60006001600160e01b0319861682526001600160a01b0380861660208401528085166040840152506080606083015261484b6080830184614705565b60006001600160e01b0319871682526001600160a01b038616602083015260a06040830152614c7560a08301866146ca565b8281036060840152614c8781866146ca565b8381036080850152614c998186614705565b9998505050505050505050565b60006001600160e01b0319861682526001600160a01b038516602083015260806040830152614cd86080830185614705565b905082606083015295945050505050565b6001600160e01b03199390931683526001600160a01b03919091166020830152604082015260600190565b60006001600160e01b03198516825260606020830152614d3760608301856146ca565b828103604084015261484b8185614673565b60006020825261184a6020830184614705565b600060808252614d6f6080830187614705565b6001600160a01b03958616602084015293909416604082015260ff9190911660609091015292915050565b6060810160048510614da857fe5b938152602081019290925260409091015290565b6060810160088510614da857fe5b60208101614dd783614f9a565b91905290565b600060808252614df06080830187614705565b602083820381850152818751808452828401915082838202850101838a01865b83811015614e3e57601f19878403018552614e2c838351614754565b94860194925090850190600101614e10565b50508681036040880152614e52818a6146ca565b945050505050828103606084015261495a8185614673565b60a08101614e788286614731565b8360608301528215156080830152949350505050565b60006020825261184a6020830184614754565b600060408252614eb46040830185614754565b90506001600160a01b03831660208301529392505050565b600060408252614edf6040830185614754565b828103602084015261190d8185614705565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715614f1e57600080fd5b604052919050565b600067ffffffffffffffff821115614f3c578081fd5b5060209081020190565b600067ffffffffffffffff821115614f5c578081fd5b50601f01601f191660200190565b60005b83811015614f85578181015183820152602001614f6d565b83811115614f94576000848401525b50505050565b6005811061075457fe5b6001600160a01b038116811461075457600080fd5b6001600160e01b03198116811461075457600080fdfea365627a7a72315820f05bfff91cf6f387ce89e4ca5ccc415a4c291e39b349e6d1c630a5574b2fee306c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x608060405234801561001057600080fd5b50600436106102775760003560e01c8063a5cd62ba11610160578063d186037f116100d8578063e4e6e7da1161008c578063ee18599711610071578063ee185997146105d8578063ef3bb097146105e0578063ff84e7cc146105e857610277565b8063e4e6e7da14610595578063e77286eb146105b657610277565b8063d3d862d1116100bd578063d3d862d114610540578063d469502814610553578063e25cabf71461057357610277565b8063d186037f1461051a578063d36379051461052d57610277565b8063bbb2dcf61161012f578063c82037ef11610114578063c82037ef146104dc578063ca49f47c146104e4578063d001c5dc1461050757610277565b8063bbb2dcf6146104b2578063c26cfecd146104d457610277565b8063a5cd62ba14610464578063a6627e9f14610484578063a7530f1214610497578063b43cffe11461049f57610277565b80637982653e116101f35780639baf2705116101c25780639eadc835116101a75780639eadc8351461041a578063a070cac81461043e578063a0901e511461045157610277565b80639baf2705146103fd5780639cd016051461041257610277565b80637982653e1461039657806379c9c426146103b65780637d727512146103c95780638f4ce479146103dc57610277565b80634dfdac201161024a57806363eb39921161022f57806363eb39921461033d5780636f83188e14610350578063750bdb301461037357610277565b80634dfdac20146102fd578063590aa8751461031d57610277565b806304a5618a1461027c5780630d7b7d76146102a75780632322cf76146102c857806346eb65cb146102e8575b600080fd5b61028f61028a366004614168565b6105f0565b60405161029e93929190614d64565b60405180910390f35b6102ba6102b5366004613c2c565b610689565b60405161029e929190614f6d565b6102db6102d6366004613c2c565b6106ab565b60405161029e9190614c41565b6102fb6102f6366004614168565b6106d3565b005b61031061030b366004613b47565b610757565b60405161029e9190614b99565b61033061032b366004613b2b565b6107da565b60405161029e9190614dc4565b61033061034b366004613c70565b610889565b61036361035e366004614168565b61093c565b60405161029e9493929190614e59565b610386610381366004614168565b6109dc565b60405161029e9493929190614c82565b6103a96103a43660046144b3565b610a6e565b60405161029e9190614e45565b6102db6103c43660046145bb565b610b20565b6102db6103d7366004613c2c565b610ba1565b6103ef6103ea366004614168565b611497565b60405161029e929190614c5f565b61040561152a565b60405161029e91906148c4565b610405611539565b61042d610428366004614168565b611548565b60405161029e959493929190614cbe565b6102db61044c366004614562565b6115ed565b61031061045f366004613cf2565b61166e565b610477610472366004613dc0565b6116e7565b60405161029e9190614aad565b610330610492366004613cc7565b6117a1565b610405611851565b6103306104ad366004613b95565b611860565b6104c56104c0366004614168565b611916565b60405161029e93929190614d8f565b6102db6119a6565b6104056119ac565b6104f76104f2366004614168565b6119bb565b60405161029e9493929190614d21565b610310610515366004613b47565b611a4d565b6102db610528366004613c2c565b611abb565b6103a961053b3660046144b3565b612446565b61033061054e366004613e9b565b6124a8565b610566610561366004614168565b6124fd565b60405161029e9190614c4a565b610586610581366004613e44565b6125a0565b60405161029e93929190614afa565b6105a86105a3366004613b47565b6126d8565b60405161029e929190614c1c565b6105c96105c436600461450b565b6126f1565b60405161029e93929190614ee6565b610405612960565b61040561296f565b61040561297e565b600080600073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a856040518263ffffffff1660e01b815260040161062c9190614dc4565b60606040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c91908101906140be565b9250925092509193909250565b6000806106968484610ba1565b91506106a28484611abb565b90509250929050565b60008060006106ba8585610689565b915091506106c8828261298d565b925050505b92915050565b6040517f46eb65cb00000000000000000000000000000000000000000000000000000000815273__$af40232205bf188fa8dd573e0f47eaeabc$__906346eb65cb90610723908490600401614dc4565b60006040518083038186803b15801561073b57600080fd5b505af415801561074f573d6000803e3d6000fd5b505050505b50565b606060008251905080604051908082528060200260200182016040528015610789578160200160208202803883390190505b50915060005b8181146107d2576107b3858583815181106107a657fe5b6020026020010151611abb565b8382815181106107bf57fe5b602090810291909101015260010161078f565b505092915050565b6040517f590aa87500000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063590aa8759061082d9085906004016148c4565b60006040518083038186803b15801561084557600080fd5b505af4158015610859573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610881919081019061419b565b90505b919050565b6040517f63eb399200000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__906363eb3992906108e090879087908790600401614a2d565b60006040518083038186803b1580156108f857600080fd5b505af415801561090c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610934919081019061419b565b949350505050565b60608060608073__$d80c8447db5aca01fdd367a509db3f8167$__636f83188e866040518263ffffffff1660e01b81526004016109799190614dc4565b60006040518083038186803b15801561099157600080fd5b505af41580156109a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614209565b93509350935093509193509193565b6000806000606073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b8152600401610a1a9190614dc4565b60006040518083038186803b158015610a3257600080fd5b505af4158015610a46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190613f42565b600080546040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$51238773fd6195a8a6f152a329b1854152$__91639caa023b91610ad0916001600160a01b031690889088908890600401614a5f565b60206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061093491908101906141ea565b600061093484610b9c6040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876129a3565b6129fa565b600080610bb4838263ffffffff612a0e16565b90506001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415610c0f576000610bfb84601063ffffffff612a4716565b9050610c078186612a7a565b925050611490565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415610e285760008073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a866040518263ffffffff1660e01b8152600401610c7b9190614dc4565b60606040518083038186803b158015610c9357600080fd5b505af4158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ccb91908101906140be565b6040519194509250606091507f6352211e0000000000000000000000000000000000000000000000000000000090610d07908490602401614c41565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051610d8291906148a8565b600060405180830381855afa9150503d8060008114610dbd576040519150601f19603f3d011682016040523d82523d6000602084013e610dc2565b606091505b50915091506000828015610dd7575081516020145b610de2576000610df3565b610df382600c63ffffffff612a4716565b9050896001600160a01b0316816001600160a01b031614610e15576000610e18565b60015b60ff169750505050505050611490565b6001600160e01b031981167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156110c457600060608073__$af40232205bf188fa8dd573e0f47eaeabc$__639eadc835876040518263ffffffff1660e01b8152600401610e969190614dc4565b60006040518083038186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eea9190810190613fac565b5081519296509094509250905060005b8181146110ba57828181518110610f0d57fe5b602002602001015160001415610f22576110b2565b83516060907efdd58e00000000000000000000000000000000000000000000000000000000908b90879085908110610f5657fe5b6020026020010151604051602401610f6f929190614a94565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060876001600160a01b031683604051610fea91906148a8565b600060405180830381855afa9150503d8060008114611025576040519150601f19603f3d011682016040523d82523d6000602084013e61102a565b606091505b5091509150600082801561103f575081516020145b61104a57600061105b565b61105b82600063ffffffff612b7216565b9050600087868151811061106b57fe5b6020026020010151828161107b57fe5b049050806110975760009b5050505050505050505050506106cd565b8b8110806110a357508b155b156110ac57809b505b50505050505b600101610efa565b5050505050611490565b6001600160e01b031981167fc339d10a0000000000000000000000000000000000000000000000000000000014156111f7576040516060907fa85e59e4000000000000000000000000000000000000000000000000000000009061113390869060009081908190602401614dd7565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199094169390931790925260045491519092506000916001600160a01b03169061119a9084906148a8565b600060405180830381855afa9150503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111da565b606091505b50509050806111ea5760006111ee565b6000195b93505050611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156113205760008073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b81526004016112639190614dc4565b60006040518083038186803b15801561127b57600080fd5b505af415801561128f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b79190810190613f42565b5092509250506112c5612b7e565b6001600160a01b0316826001600160a01b03161480156112f257506005546001600160a01b038281169116145b1561131957600061130a611304612b96565b88612a7a565b905061131581612bae565b9450505b5050611490565b6001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014156114905760608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6866040518263ffffffff1660e01b815260040161138c9190614dc4565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906140fe565b80519194509250905060005b81811461148b578381815181106113ff57fe5b60200260200101516000141561141457611483565b60006114338985848151811061142657fe5b6020026020010151610ba1565b9050600085838151811061144357fe5b6020026020010151828161145357fe5b0490508061146b5760009750505050505050506106cd565b87811080611477575087155b15611480578097505b50505b6001016113ec565b505050505b5092915050565b60008073__$af40232205bf188fa8dd573e0f47eaeabc$__638f4ce479846040518263ffffffff1660e01b81526004016114d19190614dc4565b604080518083038186803b1580156114e857600080fd5b505af41580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115209190810190613f0b565b915091505b915091565b6004546001600160a01b031681565b6000546001600160a01b031681565b600080606080606073__$af40232205bf188fa8dd573e0f47eaeabc$__639eadc835876040518263ffffffff1660e01b81526004016115879190614dc4565b60006040518083038186803b15801561159f57600080fd5b505af41580156115b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115db9190810190613fac565b939a9299509097509550909350915050565b6000610934846116696040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876129a3565b612dac565b606080825160405190808252806020026020018201604052801561169c578160200160208202803883390190505b50905060005b83518114611490578381815181106116b657fe5b60200260200101516001600160a01b0316318282815181106116d457fe5b60209081029190910101526001016116a2565b6000546040517f02cffc4500000000000000000000000000000000000000000000000000000000815260609173__$51238773fd6195a8a6f152a329b1854152$__916302cffc459161174d916001600160a01b0390911690889088908890600401614915565b60006040518083038186803b15801561176557600080fd5b505af4158015611779573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109349190810190613d25565b6040517fa6627e9f00000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063a6627e9f906117f69086908690600401614a94565b60006040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184a919081019061419b565b9392505050565b6006546001600160a01b031681565b6040517fb43cffe100000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063b43cffe1906118b99088908890889088906004016149db565b60006040518083038186803b1580156118d157600080fd5b505af41580156118e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261190d919081019061419b565b95945050505050565b600060608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6856040518263ffffffff1660e01b81526004016119529190614dc4565b60006040518083038186803b15801561196a57600080fd5b505af415801561197e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067c91908101906140fe565b60075481565b6005546001600160a01b031681565b6000806060600073__$af40232205bf188fa8dd573e0f47eaeabc$__63ca49f47c866040518263ffffffff1660e01b81526004016119f99190614dc4565b60006040518083038186803b158015611a1157600080fd5b505af4158015611a25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614056565b606060008251905080604051908082528060200260200182016040528015611a7f578160200160208202803883390190505b50915060005b8181146107d257611a9c8585838151811061142657fe5b838281518110611aa857fe5b6020908102919091010152600101611a85565b600080611ace838263ffffffff612a0e16565b90506001600160e01b031981167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611c395760608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6866040518263ffffffff1660e01b8152600401611b3c9190614dc4565b60006040518083038186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b9091908101906140fe565b80519194509250905060005b818114611c2e57838181518110611baf57fe5b602002602001015160001415611bc457611c26565b6000611bd6898584815181106107a657fe5b90506000858381518110611be657fe5b60200260200101518281611bf657fe5b04905080611c0e5760009750505050505050506106cd565b87811080611c1a575087155b15611c23578097505b50505b600101611b9c565b506106cd9350505050565b6001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415611c9a576000611c7e84601063ffffffff612a4716565b600154909150610c0790829087906001600160a01b0316612dbb565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415611fea5760008073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a866040518263ffffffff1660e01b8152600401611d069190614dc4565b60606040518083038186803b158015611d1e57600080fd5b505af4158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5691908101906140be565b600254604051929550909350606092507fe985e9c50000000000000000000000000000000000000000000000000000000091611da2918a916001600160a01b03909116906024016148d8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051611e1d91906148a8565b600060405180830381855afa9150503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5091509150811580611e7157508051602014155b80611e8d5750611e8881600063ffffffff612b7216565b600114155b15611fdb576040516060907f081812fc0000000000000000000000000000000000000000000000000000000090611ec8908790602401614c41565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050856001600160a01b031681604051611f3f91906148a8565b600060405180830381855afa9150503d8060008114611f7a576040519150601f19603f3d011682016040523d82523d6000602084013e611f7f565b606091505b509093509150828015611f93575081516020145b8015611fc257506002546001600160a01b0316611fb783600c63ffffffff612a4716565b6001600160a01b0316145b611fcd576000611fd0565b60015b60ff169750506110ba565b60001996505050505050611490565b6001600160e01b031981167fa7cb5fb7000000000000000000000000000000000000000000000000000000001415612211576040517f9eadc83500000000000000000000000000000000000000000000000000000000815260009073__$af40232205bf188fa8dd573e0f47eaeabc$__90639eadc8359061206f908790600401614dc4565b60006040518083038186803b15801561208757600080fd5b505af415801561209b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120c39190810190613fac565b5050600354604051929450606093507fe985e9c5000000000000000000000000000000000000000000000000000000009261210d925089916001600160a01b0316906024016148d8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060836001600160a01b03168360405161218891906148a8565b600060405180830381855afa9150503d80600081146121c3576040519150601f19603f3d011682016040523d82523d6000602084013e6121c8565b606091505b50915091508180156121db575080516020145b80156121f757506121f381600063ffffffff612b7216565b6001145b612202576000612206565b6000195b955050505050611490565b6001600160e01b031981167fc339d10a00000000000000000000000000000000000000000000000000000000141561224d576000199150611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156114905760008073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b81526004016122b99190614dc4565b60006040518083038186803b1580156122d157600080fd5b505af41580156122e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230d9190810190613f42565b50925092505061231b612b7e565b6001600160a01b0316826001600160a01b031614801561234857506005546001600160a01b038281169116145b1561239257600061236d61235a612b96565b60055489906001600160a01b0316612dbb565b905060001981146123865761238181612bae565b61238a565b6000195b94505061243d565b6006546001600160a01b038281169116141561243d5773__$8ab3d6b0b5fe290c724f8d6cfdac7eabfb$__630e70a03387836123cc612ec5565b6040518463ffffffff1660e01b81526004016123ea939291906148f2565b60206040518083038186803b15801561240257600080fd5b505af4158015612416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061243a9190810190614673565b93505b50505092915050565b600080546040517f8dccde0400000000000000000000000000000000000000000000000000000000815273__$51238773fd6195a8a6f152a329b1854152$__91638dccde0491610ad0916001600160a01b031690889088908890600401614a5f565b6040517fd3d862d100000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063d3d862d1906117f69086908690600401614bac565b6040517fd469502800000000000000000000000000000000000000000000000000000000815260009073__$af40232205bf188fa8dd573e0f47eaeabc$__9063d469502890612550908590600401614dc4565b60206040518083038186803b15801561256857600080fd5b505af415801561257c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108819190810190613ef0565b6060806060600085519050806040519080825280602002602001820160405280156125e557816020015b6125d26136a6565b8152602001906001900390816125ca5790505b50935080604051908082528060200260200182016040528015612612578160200160208202803883390190505b5092508060405190808252806020026020018201604052801561263f578160200160208202803883390190505b50915060005b8181146126cf5761267c87828151811061265b57fe5b602002602001015187838151811061266f57fe5b60200260200101516126f1565b875188908590811061268a57fe5b6020026020010187858151811061269d57fe5b602002602001018786815181106126b057fe5b9315156020948502919091019093019290925291905252600101612645565b50509250925092565b6060806126e58484611a4d565b91506106a28484610757565b6126f96136a6565b600080546040517f9d3fa4b900000000000000000000000000000000000000000000000000000000815282916001600160a01b031690639d3fa4b990612743908890600401614f0a565b60606040518083038186803b15801561275b57600080fd5b505afa15801561276f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612793919081019061446b565b85516000546040517fa12dcc6f00000000000000000000000000000000000000000000000000000000815292955090916001600160a01b039091169063a12dcc6f906127e59089908990600401614f48565b60206040518083038186803b1580156127fd57600080fd5b505afa158015612811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128359190810190613ed0565b9150600061284287612edd565b90506000612863886101800151896101400151612f0990919063ffffffff16565b1561289857612891826128878a60c001518b60800151612f2e90919063ffffffff16565b8a60a00151612f4a565b9050612905565b60c08801516128b4576128918289608001518a60a00151612f4a565b60006128c5848a61018001516106ab565b905060006128dc848b608001518c60a00151612f4a565b905060006128f3838c60c001518d60a00151612f4a565b90506128ff828261298d565b93505050505b61292961292387604001518a60a00151612f6c90919063ffffffff16565b8261298d565b945061293488612f8b565b61293d57600094505b60038651600681111561294c57fe5b1461295657600094505b5050509250925092565b6001546001600160a01b031681565b6002546001600160a01b031681565b6003546001600160a01b031681565b600081831061299c578161184a565b5090919050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600061184a82612a0985612ff2565b61306d565b60008160040183511015612a3457612a34612a2f60038551856004016130a7565b613116565b5001602001516001600160e01b03191690565b60008160140183511015612a6857612a68612a2f60048551856014016130a7565b5001601401516001600160a01b031690565b60405160009081906060906001600160a01b038616907f70a082310000000000000000000000000000000000000000000000000000000090612ac09087906024016148c4565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612b1391906148a8565b600060405180830381855afa9150503d8060008114612b4e576040519150601f19603f3d011682016040523d82523d6000602084013e612b53565b606091505b5091509150818015612b66575080516020145b156107d2576106c88160005b600061184a838361311e565b736b175474e89094c44da98b954eedeac495271d0f90565b7306af07097c9eeb7fd685c692751d5c66db49c21590565b600080612bb9612b96565b6001600160a01b0316634ba2363a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612bf357600080fd5b505af1158015612c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c2b91908101906141ce565b90506000816001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612c6a57600080fd5b505af1158015612c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ca29190810190614673565b4211612d2057816001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d1b9190810190614673565b612d93565b816001600160a01b0316639f678cca6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d5b57600080fd5b505af1158015612d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d939190810190614673565b9050610934816b033b2e3c9fd0803ce800000086612f4a565b600061184a82612a0985613148565b60405160009081906060906001600160a01b038716907fdd62ed3e0000000000000000000000000000000000000000000000000000000090612e0390889088906024016148d8565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612e5691906148a8565b600060405180830381855afa9150503d8060008114612e91576040519150601f19603f3d011682016040523d82523d6000602084013e612e96565b606091505b5091509150818015612ea9575080516020145b15612ebc57612eb9816000612b72565b92505b50509392505050565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e90565b6000806000612eeb84613201565b91509150612ef9828261298d565b925061093483856080015161298d565b60008151835114801561184a5750508051602091820120825192909101919091201490565b60008282018381101561184a5761184a612a2f60008686613414565b600061093483612f60868563ffffffff61343316565b9063ffffffff61346416565b600082821115612f8557612f85612a2f60028585613414565b50900390565b6000612f9b82610140015161348e565b8015612fbc575060c08201511580612fbc5750612fbc82610180015161348e565b8015612fd15750612fd182610160015161348e565b8015610881575060e082015115806108815750610881826101a0015161348e565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc7154150881529485019590955290830191909152948101949094526001600160a01b039091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6060632800659560e01b8484846040516024016130c693929190614e37565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915290509392505050565b805160208201fd5b6000816020018351101561313f5761313f612a2f60058551856020016130a7565b50016020015190565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a75349390929091602087101561319457fe5b601f1987018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b600080600483610140015151101561321e57506000905080611525565b610140830151600090613237908263ffffffff612a0e16565b90506001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156133e4576101408401516040517f750bdb3000000000000000000000000000000000000000000000000000000000815260009173__$af40232205bf188fa8dd573e0f47eaeabc$__9163750bdb30916132c291600401614dc4565b60006040518083038186803b1580156132da57600080fd5b505af41580156132ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133169190810190613f42565b506006549093506001600160a01b038085169116141591506133e290505773__$8ab3d6b0b5fe290c724f8d6cfdac7eabfb$__63d12a796086613357612ec5565b6040518363ffffffff1660e01b8152600401613374929190614f1d565b60206040518083038186803b15801561338c57600080fd5b505af41580156133a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133c49190810190614673565b6133d78660000151876101400151611abb565b935093505050611525565b505b6133f78460000151856101400151610ba1565b61340a8560000151866101400151611abb565b9250925050915091565b606063e946c1bb60e01b8484846040516024016130c693929190614e15565b600082613442575060006106cd565b8282028284828161344f57fe5b041461184a5761184a612a2f60018686613414565b60008161347a5761347a612a2f60038585613414565b600082848161348557fe5b04949350505050565b6000602082518161349b57fe5b066004146134ab57506000610884565b60006134bd838263ffffffff612a0e16565b90506001600160e01b031981167f94cfcdd700000000000000000000000000000000000000000000000000000000146134fa576001915050610884565b6040517fbbb2dcf600000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063bbb2dcf69061354d908790600401614dc4565b60006040518083038186803b15801561356557600080fd5b505af4158015613579573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135a191908101906140fe565b80519093509150600090505b8181146136375760006135dd60008584815181106135c757fe5b6020026020010151612a0e90919063ffffffff16565b90506001600160e01b031981167f0257179200000000000000000000000000000000000000000000000000000000141561362e5761361b8483613643565b1561362e57600095505050505050610884565b506001016135ad565b50600195945050505050565b8151600090600183015b818110156107d25761368e85828151811061366457fe5b602002602001015186868151811061367857fe5b6020026020010151612f0990919063ffffffff16565b1561369e576001925050506106cd565b60010161364d565b6040805160608101909152806000815260006020820181905260409091015290565b80356106cd81615016565b80516106cd81615016565b600082601f8301126136ee578081fd5b81356137016136fc82614fa2565b614f7b565b81815291506020808301908481018184028601820187101561372257600080fd5b60005b8481101561148b57813561373881615016565b84529282019290820190600101613725565b600082601f83011261375a578081fd5b81356137686136fc82614fa2565b8181529150602080830190840160005b838110156137a5576137908760208435890101613939565b83526020928301929190910190600101613778565b5050505092915050565b600082601f8301126137bf578081fd5b81516137cd6136fc82614fa2565b8181529150602080830190840160005b838110156137a5576137f58760208451890101613987565b835260209283019291909101906001016137dd565b600082601f83011261381a578081fd5b81356138286136fc82614fa2565b8181529150602080830190840160005b838110156137a55761385087602084358901016139dc565b83526020928301929190910190600101613838565b600082601f830112613875578081fd5b81356138836136fc82614fa2565b8181529150602080830190848101818402860182018710156138a457600080fd5b60005b8481101561148b578135845292820192908201906001016138a7565b600082601f8301126138d3578081fd5b81516138e16136fc82614fa2565b81815291506020808301908481018184028601820187101561390257600080fd5b60005b8481101561148b57815184529282019290820190600101613905565b80516001600160e01b0319811681146106cd57600080fd5b600082601f830112613949578081fd5b81356139576136fc82614fc2565b915080825283602082850101111561396e57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613997578081fd5b81516139a56136fc82614fc2565b91508082528360208285010111156139bc57600080fd5b611490816020840160208601614fe6565b8051600581106106cd57600080fd5b60006101c08083850312156139ef578182fd5b6139f881614f7b565b915050613a0583836136c8565b8152613a1483602084016136c8565b6020820152613a2683604084016136c8565b6040820152613a3883606084016136c8565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115613a9a57600080fd5b613aa686838701613939565b83850152610160925082850135915080821115613ac257600080fd5b613ace86838701613939565b83850152610180925082850135915080821115613aea57600080fd5b613af686838701613939565b838501526101a0925082850135915080821115613b1257600080fd5b50613b1f85828601613939565b82840152505092915050565b600060208284031215613b3c578081fd5b813561184a81615016565b60008060408385031215613b59578081fd5b8235613b6481615016565b9150602083013567ffffffffffffffff811115613b7f578182fd5b613b8b8582860161374a565b9150509250929050565b60008060008060808587031215613baa578182fd5b8435613bb581615016565b9350602085013567ffffffffffffffff80821115613bd1578384fd5b613bdd88838901613865565b94506040870135915080821115613bf2578384fd5b613bfe88838901613865565b93506060870135915080821115613c13578283fd5b50613c2087828801613939565b91505092959194509250565b60008060408385031215613c3e578182fd5b8235613c4981615016565b9150602083013567ffffffffffffffff811115613c64578182fd5b613b8b85828601613939565b600080600060608486031215613c84578081fd5b8335613c8f81615016565b9250602084013567ffffffffffffffff811115613caa578182fd5b613cb686828701613939565b925050604084013590509250925092565b60008060408385031215613cd9578182fd5b8235613ce481615016565b946020939093013593505050565b600060208284031215613d03578081fd5b813567ffffffffffffffff811115613d19578182fd5b610934848285016136de565b60006020808385031215613d37578182fd5b825167ffffffffffffffff811115613d4d578283fd5b80840185601f820112613d5e578384fd5b80519150613d6e6136fc83614fa2565b8281528381019082850185850284018601891015613d8a578687fd5b8693505b84841015613db457613da089826139cd565b835260019390930192918501918501613d8e565b50979650505050505050565b600080600060608486031215613dd4578081fd5b833567ffffffffffffffff80821115613deb578283fd5b613df78783880161380a565b94506020860135915080821115613e0c578283fd5b613e18878388016136de565b93506040860135915080821115613e2d578283fd5b50613e3a86828701613865565b9150509250925092565b60008060408385031215613e56578182fd5b823567ffffffffffffffff80821115613e6d578384fd5b613e798683870161380a565b93506020850135915080821115613e8e578283fd5b50613b8b8582860161374a565b60008060408385031215613ead578182fd5b823567ffffffffffffffff80821115613ec4578384fd5b613e7986838701613865565b600060208284031215613ee1578081fd5b8151801515811461184a578182fd5b600060208284031215613f01578081fd5b61184a8383613921565b60008060408385031215613f1d578182fd5b613f278484613921565b91506020830151613f3781615016565b809150509250929050565b60008060008060808587031215613f57578182fd5b8451613f628161502b565b6020860151909450613f7381615016565b6040860151909350613f8481615016565b606086015190925067ffffffffffffffff811115613fa0578182fd5b613c2087828801613987565b600080600080600060a08688031215613fc3578283fd5b613fcd8787613921565b94506020860151613fdd81615016565b604087015190945067ffffffffffffffff80821115613ffa578485fd5b61400689838a016138c3565b9450606088015191508082111561401b578283fd5b61402789838a016138c3565b9350608088015191508082111561403c578283fd5b5061404988828901613987565b9150509295509295909350565b6000806000806080858703121561406b578182fd5b6140758686613921565b9350602085015161408581615016565b604086015190935067ffffffffffffffff8111156140a1578283fd5b6140ad87828801613987565b606096909601519497939650505050565b6000806000606084860312156140d2578081fd5b6140dc8585613921565b925060208401516140ec81615016565b80925050604084015190509250925092565b600080600060608486031215614112578081fd5b835161411d8161502b565b602085015190935067ffffffffffffffff8082111561413a578283fd5b614146878388016138c3565b9350604086015191508082111561415b578283fd5b50613e3a868287016137af565b600060208284031215614179578081fd5b813567ffffffffffffffff81111561418f578182fd5b61093484828501613939565b6000602082840312156141ac578081fd5b815167ffffffffffffffff8111156141c2578182fd5b61093484828501613987565b6000602082840312156141df578081fd5b815161184a81615016565b6000602082840312156141fb578081fd5b81516005811061184a578182fd5b6000806000806080858703121561421e578182fd5b845167ffffffffffffffff811115614234578283fd5b61424087828801613987565b945050602085015167ffffffffffffffff81111561425c578283fd5b86601f828801011261426c578283fd5b8086015161427c6136fc82614fa2565b8181526020808201919089850101865b84811015614415578151868c01016101c0601f19828f030112156142ae578889fd5b6142b96101c0614f7b565b6142c68e602084016136d3565b81526142d58e604084016136d3565b60208201526142e78e606084016136d3565b60408201526142f98e608084016136d3565b606082015260a0820151608082015260c082015160a082015260e082015160c082015261010082015160e082015261012082015161010082015261014082015161012082015261016082015167ffffffffffffffff811115614359578a8bfd5b6143688f602083860101613987565b6101408301525061018082015167ffffffffffffffff811115614389578a8bfd5b6143988f602083860101613987565b610160830152506101a082015167ffffffffffffffff8111156143b9578a8bfd5b6143c88f602083860101613987565b610180830152506101c082015167ffffffffffffffff8111156143e9578a8bfd5b6143f88f602083860101613987565b6101a083015250855250602093840193919091019060010161428c565b505080965050505050604085015167ffffffffffffffff811115614437578283fd5b614443878288016138c3565b925050606085015167ffffffffffffffff81111561445f578182fd5b613c20878288016137af565b60006060828403121561447c578081fd5b6144866060614f7b565b825160078110614494578283fd5b8152602083810151908201526040928301519281019290925250919050565b6000806000606084860312156144c7578081fd5b833567ffffffffffffffff8111156144dd578182fd5b6144e9868287016139dc565b93505060208401356144fa81615016565b929592945050506040919091013590565b6000806040838503121561451d578182fd5b823567ffffffffffffffff80821115614534578384fd5b614540868387016139dc565b93506020850135915080821115614555578283fd5b50613b8b85828601613939565b600080600060608486031215614576578081fd5b833567ffffffffffffffff81111561458c578182fd5b614598868287016139dc565b9350506020840135915060408401356145b081615016565b809150509250925092565b6000806000606084860312156145cf578081fd5b833567ffffffffffffffff808211156145e6578283fd5b81860160a081890312156145f8578384fd5b61460260a0614f7b565b925080358352602081013560208401526040810135604084015261462988606083016136c8565b606084015260808101358281111561463f578485fd5b61464b89828401613939565b60808501525091945050506020840135915061466a85604086016136c8565b90509250925092565b600060208284031215614684578081fd5b5051919050565b6001600160a01b0316815260200190565b1515815260200190565b60006146b28383614784565b505060600190565b6001600160a01b03169052565b60008282518085526020808601955080818302840101818601855b8481101561471057601f198684030189526146fe838351614758565b988401989250908301906001016146e2565b5090979650505050505050565b6000815180845260208401935060208301825b8281101561474e578151865260209586019590910190600101614730565b5093949350505050565b60008151808452614770816020860160208601614fe6565b601f01601f19169290920160200192915050565b80516007811061479057fe5b825260208181015190830152604090810151910152565b60006101c06147b78484516146ba565b60208301516147c960208601826146ba565b5060408301516147dc60408601826146ba565b5060608301516147ef60608601826146ba565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e085015261010080840151818601525061012080840151818601525061014080840151828287015261484883870182614758565b915050610160915081840151858203838701526148658282614758565b9250505061018080840151858303828701526148818382614758565b9150506101a09150818401518582038387015261489e8282614758565b9695505050505050565b600082516148ba818460208701614fe6565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000608082016001600160a01b0387168352602060808185015281875161493c8185614c41565b91508193508281028201838a01865b838110156149755786830385526149638383516147a7565b9486019492509085019060010161494b565b50508681036040880152809450885192506149908382614c41565b94505050818701845b828110156149ba576149ac85835161468b565b945090830190600101614999565b5050505082810360608401526149d0818561471d565b979650505050505050565b60006001600160a01b0386168252608060208301526149fd608083018661471d565b8281036040840152614a0f818661471d565b8381036060850152614a218186614758565b98975050505050505050565b60006001600160a01b038516825260606020830152614a4f6060830185614758565b9050826040830152949350505050565b60006001600160a01b03808716835260806020840152614a8260808401876147a7565b94166040830152506060015292915050565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b81811015614aef57835160058110614adb57fe5b835260209384019390920191600101614ac7565b509095945050505050565b60006060820160608352808651614b118184614c41565b9150602088019250835b81811015614b3f57614b2e8385516146a6565b602094909401939250600101614b1b565b50508381036020850152614b53818761471d565b9150508281036040840152808451614b6b8184614c41565b9150602086019250835b8181101561471057614b8883855161469c565b602094909401939250600101614b75565b60006020825261184a602083018461471d565b600060408252614bbf604083018561471d565b602083820381850152818551808452828401915082838202850101838801865b83811015614c0d57601f19878403018552614bfb838351614758565b94860194925090850190600101614bdf565b50909998505050505050505050565b600060408252614c2f604083018561471d565b828103602084015261190d818561471d565b90815260200190565b6001600160e01b031991909116815260200190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b60006001600160e01b0319861682526001600160a01b0380861660208401528085166040840152506080606083015261489e6080830184614758565b60006001600160e01b0319871682526001600160a01b038616602083015260a06040830152614cf060a083018661471d565b8281036060840152614d02818661471d565b8381036080850152614d148186614758565b9998505050505050505050565b60006001600160e01b0319861682526001600160a01b038516602083015260806040830152614d536080830185614758565b905082606083015295945050505050565b6001600160e01b03199390931683526001600160a01b03919091166020830152604082015260600190565b60006001600160e01b03198516825260606020830152614db2606083018561471d565b828103604084015261489e81856146c7565b60006020825261184a6020830184614758565b600060808252614dea6080830187614758565b6001600160a01b03958616602084015293909416604082015260ff9190911660609091015292915050565b6060810160048510614e2357fe5b938152602081019290925260409091015290565b6060810160088510614e2357fe5b6020810160058310614e5357fe5b91905290565b600060808252614e6c6080830187614758565b602083820381850152818751808452828401915082838202850101838a01865b83811015614eba57601f19878403018552614ea88383516147a7565b94860194925090850190600101614e8c565b50508681036040880152614ece818a61471d565b94505050505082810360608401526149d081856146c7565b60a08101614ef48286614784565b8360608301528215156080830152949350505050565b60006020825261184a60208301846147a7565b600060408252614f3060408301856147a7565b90506001600160a01b03831660208301529392505050565b600060408252614f5b60408301856147a7565b828103602084015261190d8185614758565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715614f9a57600080fd5b604052919050565b600067ffffffffffffffff821115614fb8578081fd5b5060209081020190565b600067ffffffffffffffff821115614fd8578081fd5b50601f01601f191660200190565b60005b83811015615001578181015183820152602001614fe9565b83811115615010576000848401525b50505050565b6001600160a01b038116811461075457600080fd5b6001600160e01b03198116811461075457600080fdfea365627a7a7231582042d7fae961b1460c70c7ec8ff1688f8680c3323368dee844634a86b8a2f15fdb6c6578706572696d656e74616cf564736f6c63430005110040" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/DummyERC20Token.json b/packages/contract-artifacts/artifacts/DummyERC20Token.json index ee5c6b5fe9..cacb8011be 100644 --- a/packages/contract-artifacts/artifacts/DummyERC20Token.json +++ b/packages/contract-artifacts/artifacts/DummyERC20Token.json @@ -245,16 +245,16 @@ }, "evm": { "bytecode": { - "object": "0x60806040523480156200001157600080fd5b506040516200119538038062001195833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060409081526020828101519290910151600080546001600160a01b0319163317905586519294509250620001d39160049187019062000209565b508251620001e990600590602086019062000209565b506006919091553360009081526001602052604090205550620002ae9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024c57805160ff19168380011785556200027c565b828001600101855582156200027c579182015b828111156200027c5782518255916020019190600101906200025f565b506200028a9291506200028e565b5090565b620002ab91905b808211156200028a576000815560010162000295565b90565b610ed780620002be6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e146102e2578063e30443bc1461031d578063f2fde38b14610356578063fa9b701814610389576100ea565b806395d89b4114610282578063a0712d681461028a578063a9059cbb146102a9576100ea565b806323b872dd116100c857806323b872dd146101d3578063313ce5671461021657806370a082311461021e5780638da5cb5b14610251576100ea565b806306fdde03146100ef578063095ea7b31461016c57806318160ddd146101b9575b600080fd5b6100f7610391565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a56004803603604081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561043d565b604080519115158252519081900360200190f35b6101c16104b0565b60408051918252519081900360200190f35b6101a5600480360360608110156101e957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104b6565b6101c1610772565b6101c16004803603602081101561023457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610778565b6102596107a0565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f76107bc565b6102a7600480360360208110156102a057600080fd5b5035610835565b005b6101a5600480360360408110156102bf57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108bb565b6101c1600480360360408110156102f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610a4a565b6102a76004803603604081101561033357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a82565b6102a76004803603602081101561036c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b32565b6101c1610bda565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b820191906000526020600020905b81548152906001019060200180831161041857829003601f168201915b505050505081565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600260209081526040808320338452825280832054938352600190915281205490919083111561056357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b828110156105d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020526040902054838101101561066857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107025773ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b60065481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b69021e19e0c9bab24000008111156108ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f56414c55455f544f4f5f4c415247450000000000000000000000000000000000604482015290519081900360640190fd5b6108b83382610be8565b50565b3360009081526001602052604081205482111561093957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205482810110156109cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b3360008181526001602090815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b610a8a610cad565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205480821015610ae257610ada610acb828463ffffffff610cf616565b6003549063ffffffff610cf616565b600355610b08565b610b04610af5838363ffffffff610cf616565b6003549063ffffffff610d1516565b6003555b5073ffffffffffffffffffffffffffffffffffffffff909116600090815260016020526040902055565b610b3a610cad565b73ffffffffffffffffffffffffffffffffffffffff8116610b6a57610b65610b60610d38565b610d6f565b6108b8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b69021e19e0c9bab240000081565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054610c1f90829063ffffffff610d1516565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902055600354610c58908263ffffffff610d1516565b60035560408051828152905173ffffffffffffffffffffffffffffffffffffffff8416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cf457600054610cf490610b6090339073ffffffffffffffffffffffffffffffffffffffff16610d77565b565b600082821115610d0f57610d0f610b6060028585610e03565b50900390565b600082820183811015610d3157610d31610b6060008686610e03565b9392505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b606063e946c1bb60e01b84848460405160240180846003811115610e2357fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050939250505056fea265627a7a7231582068363eaaf6157fb6d8a621bf297ac36a69731cbdca3d7856b87e498da471edf264736f6c63430005100032" + "object": "0x60806040523480156200001157600080fd5b506040516200119538038062001195833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060409081526020828101519290910151600080546001600160a01b0319163317905586519294509250620001d39160049187019062000209565b508251620001e990600590602086019062000209565b506006919091553360009081526001602052604090205550620002ae9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024c57805160ff19168380011785556200027c565b828001600101855582156200027c579182015b828111156200027c5782518255916020019190600101906200025f565b506200028a9291506200028e565b5090565b620002ab91905b808211156200028a576000815560010162000295565b90565b610ed780620002be6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e146102e2578063e30443bc1461031d578063f2fde38b14610356578063fa9b701814610389576100ea565b806395d89b4114610282578063a0712d681461028a578063a9059cbb146102a9576100ea565b806323b872dd116100c857806323b872dd146101d3578063313ce5671461021657806370a082311461021e5780638da5cb5b14610251576100ea565b806306fdde03146100ef578063095ea7b31461016c57806318160ddd146101b9575b600080fd5b6100f7610391565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a56004803603604081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561043d565b604080519115158252519081900360200190f35b6101c16104b0565b60408051918252519081900360200190f35b6101a5600480360360608110156101e957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104b6565b6101c1610772565b6101c16004803603602081101561023457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610778565b6102596107a0565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f76107bc565b6102a7600480360360208110156102a057600080fd5b5035610835565b005b6101a5600480360360408110156102bf57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108bb565b6101c1600480360360408110156102f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610a4a565b6102a76004803603604081101561033357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a82565b6102a76004803603602081101561036c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b32565b6101c1610bda565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b820191906000526020600020905b81548152906001019060200180831161041857829003601f168201915b505050505081565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600260209081526040808320338452825280832054938352600190915281205490919083111561056357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b828110156105d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020526040902054838101101561066857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107025773ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b60065481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b69021e19e0c9bab24000008111156108ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f56414c55455f544f4f5f4c415247450000000000000000000000000000000000604482015290519081900360640190fd5b6108b83382610be8565b50565b3360009081526001602052604081205482111561093957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205482810110156109cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b3360008181526001602090815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b610a8a610cad565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205480821015610ae257610ada610acb828463ffffffff610cf616565b6003549063ffffffff610cf616565b600355610b08565b610b04610af5838363ffffffff610cf616565b6003549063ffffffff610d1516565b6003555b5073ffffffffffffffffffffffffffffffffffffffff909116600090815260016020526040902055565b610b3a610cad565b73ffffffffffffffffffffffffffffffffffffffff8116610b6a57610b65610b60610d38565b610d6f565b6108b8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b69021e19e0c9bab240000081565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054610c1f90829063ffffffff610d1516565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902055600354610c58908263ffffffff610d1516565b60035560408051828152905173ffffffffffffffffffffffffffffffffffffffff8416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cf457600054610cf490610b6090339073ffffffffffffffffffffffffffffffffffffffff16610d77565b565b600082821115610d0f57610d0f610b6060028585610e03565b50900390565b600082820183811015610d3157610d31610b6060008686610e03565b9392505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b606063e946c1bb60e01b84848460405160240180846003811115610e2357fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050939250505056fea265627a7a723158206ef0f3c96df89da55ebf944709666a3bef710cfb7a0cbbdee62d42f3a26f80f064736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e146102e2578063e30443bc1461031d578063f2fde38b14610356578063fa9b701814610389576100ea565b806395d89b4114610282578063a0712d681461028a578063a9059cbb146102a9576100ea565b806323b872dd116100c857806323b872dd146101d3578063313ce5671461021657806370a082311461021e5780638da5cb5b14610251576100ea565b806306fdde03146100ef578063095ea7b31461016c57806318160ddd146101b9575b600080fd5b6100f7610391565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a56004803603604081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561043d565b604080519115158252519081900360200190f35b6101c16104b0565b60408051918252519081900360200190f35b6101a5600480360360608110156101e957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104b6565b6101c1610772565b6101c16004803603602081101561023457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610778565b6102596107a0565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f76107bc565b6102a7600480360360208110156102a057600080fd5b5035610835565b005b6101a5600480360360408110156102bf57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108bb565b6101c1600480360360408110156102f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610a4a565b6102a76004803603604081101561033357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a82565b6102a76004803603602081101561036c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b32565b6101c1610bda565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b820191906000526020600020905b81548152906001019060200180831161041857829003601f168201915b505050505081565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600260209081526040808320338452825280832054938352600190915281205490919083111561056357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b828110156105d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020526040902054838101101561066857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107025773ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b60065481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b69021e19e0c9bab24000008111156108ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f56414c55455f544f4f5f4c415247450000000000000000000000000000000000604482015290519081900360640190fd5b6108b83382610be8565b50565b3360009081526001602052604081205482111561093957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205482810110156109cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b3360008181526001602090815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b610a8a610cad565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205480821015610ae257610ada610acb828463ffffffff610cf616565b6003549063ffffffff610cf616565b600355610b08565b610b04610af5838363ffffffff610cf616565b6003549063ffffffff610d1516565b6003555b5073ffffffffffffffffffffffffffffffffffffffff909116600090815260016020526040902055565b610b3a610cad565b73ffffffffffffffffffffffffffffffffffffffff8116610b6a57610b65610b60610d38565b610d6f565b6108b8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b69021e19e0c9bab240000081565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054610c1f90829063ffffffff610d1516565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902055600354610c58908263ffffffff610d1516565b60035560408051828152905173ffffffffffffffffffffffffffffffffffffffff8416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cf457600054610cf490610b6090339073ffffffffffffffffffffffffffffffffffffffff16610d77565b565b600082821115610d0f57610d0f610b6060028585610e03565b50900390565b600082820183811015610d3157610d31610b6060008686610e03565b9392505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b606063e946c1bb60e01b84848460405160240180846003811115610e2357fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050939250505056fea265627a7a7231582068363eaaf6157fb6d8a621bf297ac36a69731cbdca3d7856b87e498da471edf264736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e146102e2578063e30443bc1461031d578063f2fde38b14610356578063fa9b701814610389576100ea565b806395d89b4114610282578063a0712d681461028a578063a9059cbb146102a9576100ea565b806323b872dd116100c857806323b872dd146101d3578063313ce5671461021657806370a082311461021e5780638da5cb5b14610251576100ea565b806306fdde03146100ef578063095ea7b31461016c57806318160ddd146101b9575b600080fd5b6100f7610391565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a56004803603604081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561043d565b604080519115158252519081900360200190f35b6101c16104b0565b60408051918252519081900360200190f35b6101a5600480360360608110156101e957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104b6565b6101c1610772565b6101c16004803603602081101561023457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610778565b6102596107a0565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f76107bc565b6102a7600480360360208110156102a057600080fd5b5035610835565b005b6101a5600480360360408110156102bf57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108bb565b6101c1600480360360408110156102f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610a4a565b6102a76004803603604081101561033357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a82565b6102a76004803603602081101561036c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b32565b6101c1610bda565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b820191906000526020600020905b81548152906001019060200180831161041857829003601f168201915b505050505081565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600260209081526040808320338452825280832054938352600190915281205490919083111561056357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b828110156105d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020526040902054838101101561066857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156107025773ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b60065481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104355780601f1061040a57610100808354040283529160200191610435565b69021e19e0c9bab24000008111156108ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f56414c55455f544f4f5f4c415247450000000000000000000000000000000000604482015290519081900360640190fd5b6108b83382610be8565b50565b3360009081526001602052604081205482111561093957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205482810110156109cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b3360008181526001602090815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b610a8a610cad565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205480821015610ae257610ada610acb828463ffffffff610cf616565b6003549063ffffffff610cf616565b600355610b08565b610b04610af5838363ffffffff610cf616565b6003549063ffffffff610d1516565b6003555b5073ffffffffffffffffffffffffffffffffffffffff909116600090815260016020526040902055565b610b3a610cad565b73ffffffffffffffffffffffffffffffffffffffff8116610b6a57610b65610b60610d38565b610d6f565b6108b8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b69021e19e0c9bab240000081565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054610c1f90829063ffffffff610d1516565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902055600354610c58908263ffffffff610d1516565b60035560408051828152905173ffffffffffffffffffffffffffffffffffffffff8416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cf457600054610cf490610b6090339073ffffffffffffffffffffffffffffffffffffffff16610d77565b565b600082821115610d0f57610d0f610b6060028585610e03565b50900390565b600082820183811015610d3157610d31610b6060008686610e03565b9392505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b606063e946c1bb60e01b84848460405160240180846003811115610e2357fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050939250505056fea265627a7a723158206ef0f3c96df89da55ebf944709666a3bef710cfb7a0cbbdee62d42f3a26f80f064736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/DummyERC721Token.json b/packages/contract-artifacts/artifacts/DummyERC721Token.json index 3e2014b4a6..d2218168af 100644 --- a/packages/contract-artifacts/artifacts/DummyERC721Token.json +++ b/packages/contract-artifacts/artifacts/DummyERC721Token.json @@ -297,16 +297,16 @@ }, "evm": { "bytecode": { - "object": "0x60806040523480156200001157600080fd5b50604051620019a2380380620019a2833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b506040525050600080546001600160a01b03191633179055508151620001c6906005906020850190620001e5565b508051620001dc906006906020840190620001e5565b5050506200028a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022857805160ff191683800117855562000258565b8280016001018555821562000258579182015b82811115620002585782518255916020019190600101906200023b565b50620002669291506200026a565b5090565b6200028791905b8082111562000266576000815560010162000271565b90565b611708806200029a6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a22cb46511610066578063a22cb46514610362578063b88d4fde1461039d578063e985e9c51461043a578063f2fde38b14610489576100f5565b806370a08231146102d45780638da5cb5b1461031957806395d89b41146103215780639dc29fac14610329576100f5565b806323b872dd116100d357806323b872dd146101f857806340c10f191461023b57806342842e0e146102745780636352211e146102b7576100f5565b806306fdde03146100fa578063081812fc14610177578063095ea7b3146101bd575b600080fd5b6101026104bc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013c578181015183820152602001610124565b50505050905090810190601f1680156101695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101946004803603602081101561018d57600080fd5b5035610568565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f6600480360360408110156101d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610590565b005b6101f66004803603606081101561020e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356106b2565b6101f66004803603604081101561025157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a26565b6101f66004803603606081101561028a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610a34565b610194600480360360208110156102cd57600080fd5b5035610bce565b610307600480360360208110156102ea57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c65565b60408051918252519081900360200190f35b610194610d12565b610102610d2e565b6101f66004803603604081101561033f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da7565b6101f66004803603604081101561037857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610db9565b6101f6600480360360808110156103b357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156103fb57600080fd5b82018360208201111561040d57600080fd5b8035906020019184600183028401116401000000008311171561042f57600080fd5b509092509050610e52565b6104756004803603604081101561045057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661101d565b604080519115158252519081900360200190f35b6101f66004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611058565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b505050505081565b60009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061059b82610bce565b90503373ffffffffffffffffffffffffffffffffffffffff821614806105c657506105c6813361101d565b61063157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661073457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061073f82610bce565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146107db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006107e784610568565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806108285750610828838361101d565b8061085e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6108c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561091a57600084815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600084815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b8116919091179091558a16845260039091529091205461098491611101565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526003602052604080822093909355908716815220546109c790600163ffffffff61112016565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260036020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610a308282611143565b5050565b610a3f8383836106b2565b813b8015610bc857604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b158015610ad457600080fd5b505af1158015610ae8573d6000803e3d6000fd5b505050506040513d6020811015610afe57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610bc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526001602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610c5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ce957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6006805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b610daf611316565b610a30828261135f565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610e5d8585856106b2565b833b8015611015576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461101357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205460ff1690565b611060611316565b73ffffffffffffffffffffffffffffffffffffffff81166110905761108b61108661153a565b611571565b6110fe565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b60008282111561111a5761111a61108660028585611579565b50900390565b60008282018381101561113c5761113c61108660008686611579565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166111c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16801561125757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552433732315f4f574e45525f414c52454144595f4558495354530000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff891690811790915584526003909152909120546112bd91611120565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600360205260408082209390935591518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461135d5760005461135d9061108690339073ffffffffffffffffffffffffffffffffffffffff16611618565b565b73ffffffffffffffffffffffffffffffffffffffff82166113e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732315f5a45524f5f4f574e45525f4144445245535300000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff908116908316811461147857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff871684526003909152909120546114e09163ffffffff61110116565b73ffffffffffffffffffffffffffffffffffffffff8416600081815260036020526040808220939093559151849291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561159957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad1000000000000000000000000000000000000000000000000000000001790529291505056fe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a723158200a8e9d99bf20bef83790737ceaf111fb62f69c510b58f13ef3fe65ac7e36f9db64736f6c63430005100032" + "object": "0x60806040523480156200001157600080fd5b50604051620019a2380380620019a2833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b506040525050600080546001600160a01b03191633179055508151620001c6906005906020850190620001e5565b508051620001dc906006906020840190620001e5565b5050506200028a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022857805160ff191683800117855562000258565b8280016001018555821562000258579182015b82811115620002585782518255916020019190600101906200023b565b50620002669291506200026a565b5090565b6200028791905b8082111562000266576000815560010162000271565b90565b611708806200029a6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a22cb46511610066578063a22cb46514610362578063b88d4fde1461039d578063e985e9c51461043a578063f2fde38b14610489576100f5565b806370a08231146102d45780638da5cb5b1461031957806395d89b41146103215780639dc29fac14610329576100f5565b806323b872dd116100d357806323b872dd146101f857806340c10f191461023b57806342842e0e146102745780636352211e146102b7576100f5565b806306fdde03146100fa578063081812fc14610177578063095ea7b3146101bd575b600080fd5b6101026104bc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013c578181015183820152602001610124565b50505050905090810190601f1680156101695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101946004803603602081101561018d57600080fd5b5035610568565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f6600480360360408110156101d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610590565b005b6101f66004803603606081101561020e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356106b2565b6101f66004803603604081101561025157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a26565b6101f66004803603606081101561028a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610a34565b610194600480360360208110156102cd57600080fd5b5035610bce565b610307600480360360208110156102ea57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c65565b60408051918252519081900360200190f35b610194610d12565b610102610d2e565b6101f66004803603604081101561033f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da7565b6101f66004803603604081101561037857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610db9565b6101f6600480360360808110156103b357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156103fb57600080fd5b82018360208201111561040d57600080fd5b8035906020019184600183028401116401000000008311171561042f57600080fd5b509092509050610e52565b6104756004803603604081101561045057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661101d565b604080519115158252519081900360200190f35b6101f66004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611058565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b505050505081565b60009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061059b82610bce565b90503373ffffffffffffffffffffffffffffffffffffffff821614806105c657506105c6813361101d565b61063157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661073457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061073f82610bce565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146107db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006107e784610568565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806108285750610828838361101d565b8061085e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6108c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561091a57600084815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600084815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b8116919091179091558a16845260039091529091205461098491611101565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526003602052604080822093909355908716815220546109c790600163ffffffff61112016565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260036020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610a308282611143565b5050565b610a3f8383836106b2565b813b8015610bc857604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b158015610ad457600080fd5b505af1158015610ae8573d6000803e3d6000fd5b505050506040513d6020811015610afe57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610bc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526001602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610c5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ce957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6006805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b610daf611316565b610a30828261135f565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610e5d8585856106b2565b833b8015611015576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461101357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205460ff1690565b611060611316565b73ffffffffffffffffffffffffffffffffffffffff81166110905761108b61108661153a565b611571565b6110fe565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b60008282111561111a5761111a61108660028585611579565b50900390565b60008282018381101561113c5761113c61108660008686611579565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166111c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16801561125757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552433732315f4f574e45525f414c52454144595f4558495354530000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff891690811790915584526003909152909120546112bd91611120565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600360205260408082209390935591518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461135d5760005461135d9061108690339073ffffffffffffffffffffffffffffffffffffffff16611618565b565b73ffffffffffffffffffffffffffffffffffffffff82166113e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732315f5a45524f5f4f574e45525f4144445245535300000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff908116908316811461147857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff871684526003909152909120546114e09163ffffffff61110116565b73ffffffffffffffffffffffffffffffffffffffff8416600081815260036020526040808220939093559151849291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561159957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad1000000000000000000000000000000000000000000000000000000001790529291505056fe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a723158207507cba24e1cb21cecc03a109bffbbe03db690aeba9d887a9ddd9a327c74bb9164736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a22cb46511610066578063a22cb46514610362578063b88d4fde1461039d578063e985e9c51461043a578063f2fde38b14610489576100f5565b806370a08231146102d45780638da5cb5b1461031957806395d89b41146103215780639dc29fac14610329576100f5565b806323b872dd116100d357806323b872dd146101f857806340c10f191461023b57806342842e0e146102745780636352211e146102b7576100f5565b806306fdde03146100fa578063081812fc14610177578063095ea7b3146101bd575b600080fd5b6101026104bc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013c578181015183820152602001610124565b50505050905090810190601f1680156101695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101946004803603602081101561018d57600080fd5b5035610568565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f6600480360360408110156101d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610590565b005b6101f66004803603606081101561020e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356106b2565b6101f66004803603604081101561025157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a26565b6101f66004803603606081101561028a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610a34565b610194600480360360208110156102cd57600080fd5b5035610bce565b610307600480360360208110156102ea57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c65565b60408051918252519081900360200190f35b610194610d12565b610102610d2e565b6101f66004803603604081101561033f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da7565b6101f66004803603604081101561037857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610db9565b6101f6600480360360808110156103b357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156103fb57600080fd5b82018360208201111561040d57600080fd5b8035906020019184600183028401116401000000008311171561042f57600080fd5b509092509050610e52565b6104756004803603604081101561045057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661101d565b604080519115158252519081900360200190f35b6101f66004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611058565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b505050505081565b60009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061059b82610bce565b90503373ffffffffffffffffffffffffffffffffffffffff821614806105c657506105c6813361101d565b61063157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661073457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061073f82610bce565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146107db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006107e784610568565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806108285750610828838361101d565b8061085e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6108c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561091a57600084815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600084815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b8116919091179091558a16845260039091529091205461098491611101565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526003602052604080822093909355908716815220546109c790600163ffffffff61112016565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260036020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610a308282611143565b5050565b610a3f8383836106b2565b813b8015610bc857604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b158015610ad457600080fd5b505af1158015610ae8573d6000803e3d6000fd5b505050506040513d6020811015610afe57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610bc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526001602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610c5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ce957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6006805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b610daf611316565b610a30828261135f565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610e5d8585856106b2565b833b8015611015576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461101357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205460ff1690565b611060611316565b73ffffffffffffffffffffffffffffffffffffffff81166110905761108b61108661153a565b611571565b6110fe565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b60008282111561111a5761111a61108660028585611579565b50900390565b60008282018381101561113c5761113c61108660008686611579565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166111c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16801561125757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552433732315f4f574e45525f414c52454144595f4558495354530000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff891690811790915584526003909152909120546112bd91611120565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600360205260408082209390935591518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461135d5760005461135d9061108690339073ffffffffffffffffffffffffffffffffffffffff16611618565b565b73ffffffffffffffffffffffffffffffffffffffff82166113e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732315f5a45524f5f4f574e45525f4144445245535300000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff908116908316811461147857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff871684526003909152909120546114e09163ffffffff61110116565b73ffffffffffffffffffffffffffffffffffffffff8416600081815260036020526040808220939093559151849291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561159957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad1000000000000000000000000000000000000000000000000000000001790529291505056fe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a723158200a8e9d99bf20bef83790737ceaf111fb62f69c510b58f13ef3fe65ac7e36f9db64736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a22cb46511610066578063a22cb46514610362578063b88d4fde1461039d578063e985e9c51461043a578063f2fde38b14610489576100f5565b806370a08231146102d45780638da5cb5b1461031957806395d89b41146103215780639dc29fac14610329576100f5565b806323b872dd116100d357806323b872dd146101f857806340c10f191461023b57806342842e0e146102745780636352211e146102b7576100f5565b806306fdde03146100fa578063081812fc14610177578063095ea7b3146101bd575b600080fd5b6101026104bc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013c578181015183820152602001610124565b50505050905090810190601f1680156101695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101946004803603602081101561018d57600080fd5b5035610568565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f6600480360360408110156101d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610590565b005b6101f66004803603606081101561020e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356106b2565b6101f66004803603604081101561025157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a26565b6101f66004803603606081101561028a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610a34565b610194600480360360208110156102cd57600080fd5b5035610bce565b610307600480360360208110156102ea57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c65565b60408051918252519081900360200190f35b610194610d12565b610102610d2e565b6101f66004803603604081101561033f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610da7565b6101f66004803603604081101561037857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610db9565b6101f6600480360360808110156103b357600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156103fb57600080fd5b82018360208201111561040d57600080fd5b8035906020019184600183028401116401000000008311171561042f57600080fd5b509092509050610e52565b6104756004803603604081101561045057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661101d565b604080519115158252519081900360200190f35b6101f66004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611058565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b505050505081565b60009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061059b82610bce565b90503373ffffffffffffffffffffffffffffffffffffffff821614806105c657506105c6813361101d565b61063157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661073457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061073f82610bce565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146107db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006107e784610568565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806108285750610828838361101d565b8061085e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6108c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561091a57600084815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600084815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8b8116919091179091558a16845260039091529091205461098491611101565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526003602052604080822093909355908716815220546109c790600163ffffffff61112016565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260036020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610a308282611143565b5050565b610a3f8383836106b2565b813b8015610bc857604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b158015610ad457600080fd5b505af1158015610ae8573d6000803e3d6000fd5b505050506040513d6020811015610afe57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610bc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526001602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610c5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ce957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6006805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156105605780601f1061053557610100808354040283529160200191610560565b610daf611316565b610a30828261135f565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610e5d8585856106b2565b833b8015611015576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505160405190915080602f6116a58239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461101357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205460ff1690565b611060611316565b73ffffffffffffffffffffffffffffffffffffffff81166110905761108b61108661153a565b611571565b6110fe565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b60008282111561111a5761111a61108660028585611579565b50900390565b60008282018381101561113c5761113c61108660008686611579565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166111c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16801561125757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552433732315f4f574e45525f414c52454144595f4558495354530000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff891690811790915584526003909152909120546112bd91611120565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600360205260408082209390935591518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461135d5760005461135d9061108690339073ffffffffffffffffffffffffffffffffffffffff16611618565b565b73ffffffffffffffffffffffffffffffffffffffff82166113e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732315f5a45524f5f4f574e45525f4144445245535300000000000000604482015290519081900360640190fd5b60008181526001602052604090205473ffffffffffffffffffffffffffffffffffffffff908116908316811461147857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b600082815260016020818152604080842080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff871684526003909152909120546114e09163ffffffff61110116565b73ffffffffffffffffffffffffffffffffffffffff8416600081815260036020526040808220939093559151849291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561159957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad1000000000000000000000000000000000000000000000000000000001790529291505056fe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a723158207507cba24e1cb21cecc03a109bffbbe03db690aeba9d887a9ddd9a327c74bb9164736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ERC1155Mintable.json b/packages/contract-artifacts/artifacts/ERC1155Mintable.json index da08fb9cde..78ac6fdaa1 100644 --- a/packages/contract-artifacts/artifacts/ERC1155Mintable.json +++ b/packages/contract-artifacts/artifacts/ERC1155Mintable.json @@ -349,16 +349,16 @@ }, "evm": { "bytecode": { - "object": "0x608060405234801561001057600080fd5b50612448806100206000396000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c80639f4b286a116100d8578063e0a5c9491161008c578063f242432a11610066578063f242432a14610312578063f941908814610325578063fc67bf1c1461033857610176565b8063e0a5c949146102d7578063e44591f0146102ec578063e985e9c5146102ff57610176565b8063adebf6f2116100bd578063adebf6f21461029e578063cc10e401146102b1578063cd53d08e146102c457610176565b80639f4b286a14610278578063a22cb4651461028b57610176565b80636352211e1161012f5780637269a327116101145780637269a3271461023f57806378b27221146102525780639cca1c641461026557610176565b80636352211e1461020c5780636f969c2d1461022c57610176565b80632eb2c2d6116101605780632eb2c2d6146101b75780634e1273f4146101cc5780635e81b958146101ec57610176565b8062fdd58e1461017b57806308d7d469146101a4575b600080fd5b61018e610189366004611c80565b610340565b60405161019b91906123c9565b60405180910390f35b61018e6101b2366004611dac565b6103ca565b6101ca6101c5366004611b12565b6103dc565b005b6101df6101da366004611caa565b610943565b60405161019b91906120b1565b6101ff6101fa366004611dac565b610ae9565b60405161019b91906120f4565b61021f61021a366004611dac565b610b2f565b60405161019b9190611f57565b61018e61023a366004611dac565b610b57565b6101ff61024d366004611dac565b610b7c565b6101ca610260366004611e0e565b610bc1565b61018e610273366004611dac565b610e8d565b6101ca610286366004611e85565b610ea2565b6101ca610299366004611c45565b610f5e565b6101ff6102ac366004611dac565b610ff8565b61018e6102bf366004611d53565b61101e565b61021f6102d2366004611dac565b611113565b6102df61113b565b60405161019b91906120ff565b6101ff6102fa366004611dac565b61115f565b6101ff61030d366004611ade565b611187565b6101ca610320366004611bcb565b6111c2565b6101ca610333366004611dc4565b611624565b6102df6118ff565b600061034b82610ae9565b156103925760008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614610385576000610388565b60015b60ff1690506103c4565b50600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60056020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff8716610432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b60405180910390fd5b84831461046b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121a1565b73ffffffffffffffffffffffffffffffffffffffff88163314806104c4575073ffffffffffffffffffffffffffffffffffffffff8816600090815260026020908152604080832033845290915290205460ff1615156001145b6104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b60005b8581101561075e57600087878381811061051357fe5b905060200201359050600086868481811061052a57fe5b90506020020135905061053c8261115f565b1561062c578060011461057b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff8c81169116146105db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600082815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8c16179055610754565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f16845290915290205461066c908263ffffffff61192316565b6001600084815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610723816001600085815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194790919063ffffffff16565b600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f1684529091529020555b50506001016104fd565b508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040516107d9949392919061207f565b60405180910390a46108008773ffffffffffffffffffffffffffffffffffffffff16611963565b15610939576040517fbc197c8100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff89169063bc197c81906108689033908d908c908c908c908c908c908c90600401611fbd565b602060405180830381600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108ba9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050505050505050565b606083821461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906122d8565b6040805185815260208087028201019091528480156109a7578160200160208202803883390190505b50905060005b84811015610ae05760008484838181106109c357fe5b9050602002013590506109d581610ae9565b15610a53578686838181106109e657fe5b90506020020160206109fb9190810190611ac3565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614610a30576000610a33565b60015b60ff16838381518110610a4257fe5b602002602001018181525050610ad7565b600081815260016020526040812090888885818110610a6e57fe5b9050602002016020610a839190810190611ac3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054838381518110610aca57fe5b6020026020010181815250505b506001016109ad565b50949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff16151590565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000001690565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff161590565b600085815260046020526040902054859073ffffffffffffffffffffffffffffffffffffffff163314610bf357600080fd5b610bfc86610ff8565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612335565b60005b84811015610e84576000868683818110610c4b57fe5b9050602002016020610c609190810190611ac3565b90506000858584818110610c7057fe5b60008c815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168452825290912054910292909201359250610cbb9183915063ffffffff61194716565b60008a815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832093909355915133907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610d22908e9087906123d2565b60405180910390a4610d498273ffffffffffffffffffffffffffffffffffffffff16611963565b15610e7a576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e6190610da990339081908f908890600401611f78565b602060405180830381600087803b158015610dc357600080fd5b505af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dfb9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050600101610c35565b50505050505050565b6fffffffffffffffffffffffffffffffff1690565b60008381526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610f1090889085906123d2565b60405180910390a48015610f5957827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8383604051610f5092919061214e565b60405180910390a25b505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871680855292529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610fec9085906120f4565b60405180910390a35050565b7f8000000000000000000000000000000000000000000000000000000000000000161590565b600380546001019081905560801b8115611055577f8000000000000000000000000000000000000000000000000000000000000000175b60008181526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906110c390869085906123d2565b60405180910390a4821561110c57807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b858560405161110392919061214e565b60405180910390a25b9392505050565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f80000000000000000000000000000000000000000000000000000000000000009081161490565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff851661120f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b73ffffffffffffffffffffffffffffffffffffffff8616331480611268575073ffffffffffffffffffffffffffffffffffffffff8616600090815260026020908152604080832033845290915290205460ff1615156001145b61129e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b6112a78461115f565b1561139757826001146112e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008481526020819052604090205473ffffffffffffffffffffffffffffffffffffffff878116911614611346576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600084815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff871617905561144c565b600084815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020546113d7908463ffffffff61192316565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b8116855292528083209390935587168152205461141b9084611947565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020555b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516114c29291906123d2565b60405180910390a46114e98573ffffffffffffffffffffffffffffffffffffffff16611963565b1561161c576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e619061154d9033908b908a908a908a908a9060040161202d565b602060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061159f9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505050505050565b600083815260046020526040902054839073ffffffffffffffffffffffffffffffffffffffff16331461165657600080fd5b61165f8461115f565b611695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061227b565b600084815260056020526040812054600101905b838110156118c55760008585838181106116bf57fe5b90506020020160206116d49190810190611ac3565b828401881760008181526020819052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86169081179091559051939450919233907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906117629086906001906123d2565b60405180910390a46117898273ffffffffffffffffffffffffffffffffffffffff16611963565b156118bb576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e61906117ea90339081908790600190600401611f78565b602060405180830381600087803b15801561180457600080fd5b505af1158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061183c9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146118b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b50506001016116a9565b506000858152600560205260409020546118e690849063ffffffff61194716565b6000958652600560205260409095209490945550505050565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b6000828211156119415761194161193c60028585611969565b611a0e565b50900390565b60008282018381101561110c5761110c61193c60008686611969565b3b151590565b606063e946c1bb60e01b8484846040516024016119889392919061212c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60008083601f840112611a4b578182fd5b50813567ffffffffffffffff811115611a62578182fd5b6020830191508360208083028501011115611a7c57600080fd5b9250929050565b60008083601f840112611a94578182fd5b50813567ffffffffffffffff811115611aab578182fd5b602083019150836020828501011115611a7c57600080fd5b600060208284031215611ad4578081fd5b61110c8383611a16565b60008060408385031215611af0578081fd5b611afa8484611a16565b9150611b098460208501611a16565b90509250929050565b60008060008060008060008060a0898b031215611b2d578384fd5b611b378a8a611a16565b9750611b468a60208b01611a16565b9650604089013567ffffffffffffffff80821115611b62578586fd5b611b6e8c838d01611a3a565b909850965060608b0135915080821115611b86578586fd5b611b928c838d01611a3a565b909650945060808b0135915080821115611baa578384fd5b50611bb78b828c01611a83565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215611be3578182fd5b8635611bee816123e0565b95506020870135611bfe816123e0565b94506040870135935060608701359250608087013567ffffffffffffffff811115611c27578283fd5b611c3389828a01611a83565b979a9699509497509295939492505050565b60008060408385031215611c57578182fd5b611c618484611a16565b915060208301358015158114611c75578182fd5b809150509250929050565b60008060408385031215611c92578182fd5b611c9c8484611a16565b946020939093013593505050565b60008060008060408587031215611cbf578384fd5b843567ffffffffffffffff80821115611cd6578586fd5b611ce288838901611a3a565b90965094506020870135915080821115611cfa578384fd5b50611d0787828801611a3a565b95989497509550505050565b600060208284031215611d24578081fd5b81517fffffffff000000000000000000000000000000000000000000000000000000008116811461110c578182fd5b600080600060408486031215611d67578283fd5b833567ffffffffffffffff811115611d7d578384fd5b611d8986828701611a83565b90945092505060208401358015158114611da1578182fd5b809150509250925092565b600060208284031215611dbd578081fd5b5035919050565b600080600060408486031215611dd8578283fd5b83359250602084013567ffffffffffffffff811115611df5578283fd5b611e0186828701611a3a565b9497909650939450505050565b600080600080600060608688031215611e25578081fd5b85359450602086013567ffffffffffffffff80821115611e43578283fd5b611e4f89838a01611a3a565b90965094506040880135915080821115611e67578283fd5b50611e7488828901611a3a565b969995985093965092949392505050565b600080600060408486031215611e99578081fd5b83359250602084013567ffffffffffffffff811115611eb6578182fd5b611e0186828701611a83565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611ef3578081fd5b6020830280836020870137939093016020019283525090919050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611ff760a08301888a611ec2565b828103606084015261200a818789611ec2565b838103608085015261201d818688611f0f565b9c9b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261207360a083018486611f0f565b98975050505050505050565b600060408252612093604083018688611ec2565b82810360208401526120a6818587611ec2565b979650505050505050565b602080825282518282018190526000918401906040840190835b818110156120e95783518352602093840193909201916001016120cb565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061213a57fe5b938152602081019290925260409091015290565b600060208252612162602083018486611f0f565b949350505050565b6020808252601f908201527f43414e4e4f545f5452414e534645525f544f5f414444524553535f5a45524f00604082015260600190565b6020808252818101527f544f4b454e5f414e445f56414c5545535f4c454e4754485f4d49534d41544348604082015260600190565b6020808252601d908201527f4e46545f4e4f545f4f574e45445f42595f46524f4d5f41444452455353000000604082015260600190565b60208082526016908201527f494e53554646494349454e545f414c4c4f57414e434500000000000000000000604082015260600190565b6020808252601c908201527f414d4f554e545f455155414c5f544f5f4f4e455f524551554952454400000000604082015260600190565b6020808252602d908201527f54524945445f544f5f4d494e545f4e4f4e5f46554e4749424c455f464f525f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4f574e4552535f414e445f4944535f4d5553545f484156455f53414d455f4c4560408201527f4e47544800000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602d908201527f54524945445f544f5f4d494e545f46554e4749424c455f464f525f4e4f4e5f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4241445f52454345495645525f52455455524e5f56414c554500000000000000604082015260600190565b90815260200190565b918252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff8116811461240257600080fd5b5056fea365627a7a7231582066e9e02679a1339247a560b2455f640fc604f18add8b680d9fbe0bb5f4302a6d6c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x608060405234801561001057600080fd5b50612448806100206000396000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c80639f4b286a116100d8578063e0a5c9491161008c578063f242432a11610066578063f242432a14610312578063f941908814610325578063fc67bf1c1461033857610176565b8063e0a5c949146102d7578063e44591f0146102ec578063e985e9c5146102ff57610176565b8063adebf6f2116100bd578063adebf6f21461029e578063cc10e401146102b1578063cd53d08e146102c457610176565b80639f4b286a14610278578063a22cb4651461028b57610176565b80636352211e1161012f5780637269a327116101145780637269a3271461023f57806378b27221146102525780639cca1c641461026557610176565b80636352211e1461020c5780636f969c2d1461022c57610176565b80632eb2c2d6116101605780632eb2c2d6146101b75780634e1273f4146101cc5780635e81b958146101ec57610176565b8062fdd58e1461017b57806308d7d469146101a4575b600080fd5b61018e610189366004611c80565b610340565b60405161019b91906123c9565b60405180910390f35b61018e6101b2366004611dac565b6103ca565b6101ca6101c5366004611b12565b6103dc565b005b6101df6101da366004611caa565b610943565b60405161019b91906120b1565b6101ff6101fa366004611dac565b610ae9565b60405161019b91906120f4565b61021f61021a366004611dac565b610b2f565b60405161019b9190611f57565b61018e61023a366004611dac565b610b57565b6101ff61024d366004611dac565b610b7c565b6101ca610260366004611e0e565b610bc1565b61018e610273366004611dac565b610e8d565b6101ca610286366004611e85565b610ea2565b6101ca610299366004611c45565b610f5e565b6101ff6102ac366004611dac565b610ff8565b61018e6102bf366004611d53565b61101e565b61021f6102d2366004611dac565b611113565b6102df61113b565b60405161019b91906120ff565b6101ff6102fa366004611dac565b61115f565b6101ff61030d366004611ade565b611187565b6101ca610320366004611bcb565b6111c2565b6101ca610333366004611dc4565b611624565b6102df6118ff565b600061034b82610ae9565b156103925760008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614610385576000610388565b60015b60ff1690506103c4565b50600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60056020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff8716610432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b60405180910390fd5b84831461046b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121a1565b73ffffffffffffffffffffffffffffffffffffffff88163314806104c4575073ffffffffffffffffffffffffffffffffffffffff8816600090815260026020908152604080832033845290915290205460ff1615156001145b6104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b60005b8581101561075e57600087878381811061051357fe5b905060200201359050600086868481811061052a57fe5b90506020020135905061053c8261115f565b1561062c578060011461057b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff8c81169116146105db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600082815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8c16179055610754565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f16845290915290205461066c908263ffffffff61192316565b6001600084815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610723816001600085815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194790919063ffffffff16565b600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f1684529091529020555b50506001016104fd565b508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040516107d9949392919061207f565b60405180910390a46108008773ffffffffffffffffffffffffffffffffffffffff16611963565b15610939576040517fbc197c8100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff89169063bc197c81906108689033908d908c908c908c908c908c908c90600401611fbd565b602060405180830381600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108ba9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050505050505050565b606083821461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906122d8565b6040805185815260208087028201019091528480156109a7578160200160208202803883390190505b50905060005b84811015610ae05760008484838181106109c357fe5b9050602002013590506109d581610ae9565b15610a53578686838181106109e657fe5b90506020020160206109fb9190810190611ac3565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614610a30576000610a33565b60015b60ff16838381518110610a4257fe5b602002602001018181525050610ad7565b600081815260016020526040812090888885818110610a6e57fe5b9050602002016020610a839190810190611ac3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054838381518110610aca57fe5b6020026020010181815250505b506001016109ad565b50949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff16151590565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000001690565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff161590565b600085815260046020526040902054859073ffffffffffffffffffffffffffffffffffffffff163314610bf357600080fd5b610bfc86610ff8565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612335565b60005b84811015610e84576000868683818110610c4b57fe5b9050602002016020610c609190810190611ac3565b90506000858584818110610c7057fe5b60008c815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168452825290912054910292909201359250610cbb9183915063ffffffff61194716565b60008a815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832093909355915133907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610d22908e9087906123d2565b60405180910390a4610d498273ffffffffffffffffffffffffffffffffffffffff16611963565b15610e7a576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e6190610da990339081908f908890600401611f78565b602060405180830381600087803b158015610dc357600080fd5b505af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dfb9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050600101610c35565b50505050505050565b6fffffffffffffffffffffffffffffffff1690565b60008381526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610f1090889085906123d2565b60405180910390a48015610f5957827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8383604051610f5092919061214e565b60405180910390a25b505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871680855292529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610fec9085906120f4565b60405180910390a35050565b7f8000000000000000000000000000000000000000000000000000000000000000161590565b600380546001019081905560801b8115611055577f8000000000000000000000000000000000000000000000000000000000000000175b60008181526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906110c390869085906123d2565b60405180910390a4821561110c57807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b858560405161110392919061214e565b60405180910390a25b9392505050565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f80000000000000000000000000000000000000000000000000000000000000009081161490565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff851661120f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b73ffffffffffffffffffffffffffffffffffffffff8616331480611268575073ffffffffffffffffffffffffffffffffffffffff8616600090815260026020908152604080832033845290915290205460ff1615156001145b61129e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b6112a78461115f565b1561139757826001146112e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008481526020819052604090205473ffffffffffffffffffffffffffffffffffffffff878116911614611346576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600084815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff871617905561144c565b600084815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020546113d7908463ffffffff61192316565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b8116855292528083209390935587168152205461141b9084611947565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020555b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516114c29291906123d2565b60405180910390a46114e98573ffffffffffffffffffffffffffffffffffffffff16611963565b1561161c576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e619061154d9033908b908a908a908a908a9060040161202d565b602060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061159f9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505050505050565b600083815260046020526040902054839073ffffffffffffffffffffffffffffffffffffffff16331461165657600080fd5b61165f8461115f565b611695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061227b565b600084815260056020526040812054600101905b838110156118c55760008585838181106116bf57fe5b90506020020160206116d49190810190611ac3565b828401881760008181526020819052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86169081179091559051939450919233907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906117629086906001906123d2565b60405180910390a46117898273ffffffffffffffffffffffffffffffffffffffff16611963565b156118bb576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e61906117ea90339081908790600190600401611f78565b602060405180830381600087803b15801561180457600080fd5b505af1158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061183c9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146118b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b50506001016116a9565b506000858152600560205260409020546118e690849063ffffffff61194716565b6000958652600560205260409095209490945550505050565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b6000828211156119415761194161193c60028585611969565b611a0e565b50900390565b60008282018381101561110c5761110c61193c60008686611969565b3b151590565b606063e946c1bb60e01b8484846040516024016119889392919061212c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60008083601f840112611a4b578182fd5b50813567ffffffffffffffff811115611a62578182fd5b6020830191508360208083028501011115611a7c57600080fd5b9250929050565b60008083601f840112611a94578182fd5b50813567ffffffffffffffff811115611aab578182fd5b602083019150836020828501011115611a7c57600080fd5b600060208284031215611ad4578081fd5b61110c8383611a16565b60008060408385031215611af0578081fd5b611afa8484611a16565b9150611b098460208501611a16565b90509250929050565b60008060008060008060008060a0898b031215611b2d578384fd5b611b378a8a611a16565b9750611b468a60208b01611a16565b9650604089013567ffffffffffffffff80821115611b62578586fd5b611b6e8c838d01611a3a565b909850965060608b0135915080821115611b86578586fd5b611b928c838d01611a3a565b909650945060808b0135915080821115611baa578384fd5b50611bb78b828c01611a83565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215611be3578182fd5b8635611bee816123e0565b95506020870135611bfe816123e0565b94506040870135935060608701359250608087013567ffffffffffffffff811115611c27578283fd5b611c3389828a01611a83565b979a9699509497509295939492505050565b60008060408385031215611c57578182fd5b611c618484611a16565b915060208301358015158114611c75578182fd5b809150509250929050565b60008060408385031215611c92578182fd5b611c9c8484611a16565b946020939093013593505050565b60008060008060408587031215611cbf578384fd5b843567ffffffffffffffff80821115611cd6578586fd5b611ce288838901611a3a565b90965094506020870135915080821115611cfa578384fd5b50611d0787828801611a3a565b95989497509550505050565b600060208284031215611d24578081fd5b81517fffffffff000000000000000000000000000000000000000000000000000000008116811461110c578182fd5b600080600060408486031215611d67578283fd5b833567ffffffffffffffff811115611d7d578384fd5b611d8986828701611a83565b90945092505060208401358015158114611da1578182fd5b809150509250925092565b600060208284031215611dbd578081fd5b5035919050565b600080600060408486031215611dd8578283fd5b83359250602084013567ffffffffffffffff811115611df5578283fd5b611e0186828701611a3a565b9497909650939450505050565b600080600080600060608688031215611e25578081fd5b85359450602086013567ffffffffffffffff80821115611e43578283fd5b611e4f89838a01611a3a565b90965094506040880135915080821115611e67578283fd5b50611e7488828901611a3a565b969995985093965092949392505050565b600080600060408486031215611e99578081fd5b83359250602084013567ffffffffffffffff811115611eb6578182fd5b611e0186828701611a83565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611ef3578081fd5b6020830280836020870137939093016020019283525090919050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611ff760a08301888a611ec2565b828103606084015261200a818789611ec2565b838103608085015261201d818688611f0f565b9c9b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261207360a083018486611f0f565b98975050505050505050565b600060408252612093604083018688611ec2565b82810360208401526120a6818587611ec2565b979650505050505050565b602080825282518282018190526000918401906040840190835b818110156120e95783518352602093840193909201916001016120cb565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061213a57fe5b938152602081019290925260409091015290565b600060208252612162602083018486611f0f565b949350505050565b6020808252601f908201527f43414e4e4f545f5452414e534645525f544f5f414444524553535f5a45524f00604082015260600190565b6020808252818101527f544f4b454e5f414e445f56414c5545535f4c454e4754485f4d49534d41544348604082015260600190565b6020808252601d908201527f4e46545f4e4f545f4f574e45445f42595f46524f4d5f41444452455353000000604082015260600190565b60208082526016908201527f494e53554646494349454e545f414c4c4f57414e434500000000000000000000604082015260600190565b6020808252601c908201527f414d4f554e545f455155414c5f544f5f4f4e455f524551554952454400000000604082015260600190565b6020808252602d908201527f54524945445f544f5f4d494e545f4e4f4e5f46554e4749424c455f464f525f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4f574e4552535f414e445f4944535f4d5553545f484156455f53414d455f4c4560408201527f4e47544800000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602d908201527f54524945445f544f5f4d494e545f46554e4749424c455f464f525f4e4f4e5f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4241445f52454345495645525f52455455524e5f56414c554500000000000000604082015260600190565b90815260200190565b918252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff8116811461240257600080fd5b5056fea365627a7a723158201ee52511037fd21c6670dcd6401daeac26f62a6afdc23addc02ff5cf826773246c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106101765760003560e01c80639f4b286a116100d8578063e0a5c9491161008c578063f242432a11610066578063f242432a14610312578063f941908814610325578063fc67bf1c1461033857610176565b8063e0a5c949146102d7578063e44591f0146102ec578063e985e9c5146102ff57610176565b8063adebf6f2116100bd578063adebf6f21461029e578063cc10e401146102b1578063cd53d08e146102c457610176565b80639f4b286a14610278578063a22cb4651461028b57610176565b80636352211e1161012f5780637269a327116101145780637269a3271461023f57806378b27221146102525780639cca1c641461026557610176565b80636352211e1461020c5780636f969c2d1461022c57610176565b80632eb2c2d6116101605780632eb2c2d6146101b75780634e1273f4146101cc5780635e81b958146101ec57610176565b8062fdd58e1461017b57806308d7d469146101a4575b600080fd5b61018e610189366004611c80565b610340565b60405161019b91906123c9565b60405180910390f35b61018e6101b2366004611dac565b6103ca565b6101ca6101c5366004611b12565b6103dc565b005b6101df6101da366004611caa565b610943565b60405161019b91906120b1565b6101ff6101fa366004611dac565b610ae9565b60405161019b91906120f4565b61021f61021a366004611dac565b610b2f565b60405161019b9190611f57565b61018e61023a366004611dac565b610b57565b6101ff61024d366004611dac565b610b7c565b6101ca610260366004611e0e565b610bc1565b61018e610273366004611dac565b610e8d565b6101ca610286366004611e85565b610ea2565b6101ca610299366004611c45565b610f5e565b6101ff6102ac366004611dac565b610ff8565b61018e6102bf366004611d53565b61101e565b61021f6102d2366004611dac565b611113565b6102df61113b565b60405161019b91906120ff565b6101ff6102fa366004611dac565b61115f565b6101ff61030d366004611ade565b611187565b6101ca610320366004611bcb565b6111c2565b6101ca610333366004611dc4565b611624565b6102df6118ff565b600061034b82610ae9565b156103925760008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614610385576000610388565b60015b60ff1690506103c4565b50600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60056020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff8716610432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b60405180910390fd5b84831461046b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121a1565b73ffffffffffffffffffffffffffffffffffffffff88163314806104c4575073ffffffffffffffffffffffffffffffffffffffff8816600090815260026020908152604080832033845290915290205460ff1615156001145b6104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b60005b8581101561075e57600087878381811061051357fe5b905060200201359050600086868481811061052a57fe5b90506020020135905061053c8261115f565b1561062c578060011461057b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff8c81169116146105db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600082815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8c16179055610754565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f16845290915290205461066c908263ffffffff61192316565b6001600084815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610723816001600085815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194790919063ffffffff16565b600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f1684529091529020555b50506001016104fd565b508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040516107d9949392919061207f565b60405180910390a46108008773ffffffffffffffffffffffffffffffffffffffff16611963565b15610939576040517fbc197c8100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff89169063bc197c81906108689033908d908c908c908c908c908c908c90600401611fbd565b602060405180830381600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108ba9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050505050505050565b606083821461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906122d8565b6040805185815260208087028201019091528480156109a7578160200160208202803883390190505b50905060005b84811015610ae05760008484838181106109c357fe5b9050602002013590506109d581610ae9565b15610a53578686838181106109e657fe5b90506020020160206109fb9190810190611ac3565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614610a30576000610a33565b60015b60ff16838381518110610a4257fe5b602002602001018181525050610ad7565b600081815260016020526040812090888885818110610a6e57fe5b9050602002016020610a839190810190611ac3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054838381518110610aca57fe5b6020026020010181815250505b506001016109ad565b50949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff16151590565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000001690565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff161590565b600085815260046020526040902054859073ffffffffffffffffffffffffffffffffffffffff163314610bf357600080fd5b610bfc86610ff8565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612335565b60005b84811015610e84576000868683818110610c4b57fe5b9050602002016020610c609190810190611ac3565b90506000858584818110610c7057fe5b60008c815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168452825290912054910292909201359250610cbb9183915063ffffffff61194716565b60008a815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832093909355915133907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610d22908e9087906123d2565b60405180910390a4610d498273ffffffffffffffffffffffffffffffffffffffff16611963565b15610e7a576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e6190610da990339081908f908890600401611f78565b602060405180830381600087803b158015610dc357600080fd5b505af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dfb9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050600101610c35565b50505050505050565b6fffffffffffffffffffffffffffffffff1690565b60008381526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610f1090889085906123d2565b60405180910390a48015610f5957827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8383604051610f5092919061214e565b60405180910390a25b505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871680855292529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610fec9085906120f4565b60405180910390a35050565b7f8000000000000000000000000000000000000000000000000000000000000000161590565b600380546001019081905560801b8115611055577f8000000000000000000000000000000000000000000000000000000000000000175b60008181526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906110c390869085906123d2565b60405180910390a4821561110c57807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b858560405161110392919061214e565b60405180910390a25b9392505050565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f80000000000000000000000000000000000000000000000000000000000000009081161490565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff851661120f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b73ffffffffffffffffffffffffffffffffffffffff8616331480611268575073ffffffffffffffffffffffffffffffffffffffff8616600090815260026020908152604080832033845290915290205460ff1615156001145b61129e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b6112a78461115f565b1561139757826001146112e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008481526020819052604090205473ffffffffffffffffffffffffffffffffffffffff878116911614611346576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600084815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff871617905561144c565b600084815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020546113d7908463ffffffff61192316565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b8116855292528083209390935587168152205461141b9084611947565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020555b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516114c29291906123d2565b60405180910390a46114e98573ffffffffffffffffffffffffffffffffffffffff16611963565b1561161c576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e619061154d9033908b908a908a908a908a9060040161202d565b602060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061159f9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505050505050565b600083815260046020526040902054839073ffffffffffffffffffffffffffffffffffffffff16331461165657600080fd5b61165f8461115f565b611695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061227b565b600084815260056020526040812054600101905b838110156118c55760008585838181106116bf57fe5b90506020020160206116d49190810190611ac3565b828401881760008181526020819052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86169081179091559051939450919233907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906117629086906001906123d2565b60405180910390a46117898273ffffffffffffffffffffffffffffffffffffffff16611963565b156118bb576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e61906117ea90339081908790600190600401611f78565b602060405180830381600087803b15801561180457600080fd5b505af1158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061183c9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146118b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b50506001016116a9565b506000858152600560205260409020546118e690849063ffffffff61194716565b6000958652600560205260409095209490945550505050565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b6000828211156119415761194161193c60028585611969565b611a0e565b50900390565b60008282018381101561110c5761110c61193c60008686611969565b3b151590565b606063e946c1bb60e01b8484846040516024016119889392919061212c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60008083601f840112611a4b578182fd5b50813567ffffffffffffffff811115611a62578182fd5b6020830191508360208083028501011115611a7c57600080fd5b9250929050565b60008083601f840112611a94578182fd5b50813567ffffffffffffffff811115611aab578182fd5b602083019150836020828501011115611a7c57600080fd5b600060208284031215611ad4578081fd5b61110c8383611a16565b60008060408385031215611af0578081fd5b611afa8484611a16565b9150611b098460208501611a16565b90509250929050565b60008060008060008060008060a0898b031215611b2d578384fd5b611b378a8a611a16565b9750611b468a60208b01611a16565b9650604089013567ffffffffffffffff80821115611b62578586fd5b611b6e8c838d01611a3a565b909850965060608b0135915080821115611b86578586fd5b611b928c838d01611a3a565b909650945060808b0135915080821115611baa578384fd5b50611bb78b828c01611a83565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215611be3578182fd5b8635611bee816123e0565b95506020870135611bfe816123e0565b94506040870135935060608701359250608087013567ffffffffffffffff811115611c27578283fd5b611c3389828a01611a83565b979a9699509497509295939492505050565b60008060408385031215611c57578182fd5b611c618484611a16565b915060208301358015158114611c75578182fd5b809150509250929050565b60008060408385031215611c92578182fd5b611c9c8484611a16565b946020939093013593505050565b60008060008060408587031215611cbf578384fd5b843567ffffffffffffffff80821115611cd6578586fd5b611ce288838901611a3a565b90965094506020870135915080821115611cfa578384fd5b50611d0787828801611a3a565b95989497509550505050565b600060208284031215611d24578081fd5b81517fffffffff000000000000000000000000000000000000000000000000000000008116811461110c578182fd5b600080600060408486031215611d67578283fd5b833567ffffffffffffffff811115611d7d578384fd5b611d8986828701611a83565b90945092505060208401358015158114611da1578182fd5b809150509250925092565b600060208284031215611dbd578081fd5b5035919050565b600080600060408486031215611dd8578283fd5b83359250602084013567ffffffffffffffff811115611df5578283fd5b611e0186828701611a3a565b9497909650939450505050565b600080600080600060608688031215611e25578081fd5b85359450602086013567ffffffffffffffff80821115611e43578283fd5b611e4f89838a01611a3a565b90965094506040880135915080821115611e67578283fd5b50611e7488828901611a3a565b969995985093965092949392505050565b600080600060408486031215611e99578081fd5b83359250602084013567ffffffffffffffff811115611eb6578182fd5b611e0186828701611a83565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611ef3578081fd5b6020830280836020870137939093016020019283525090919050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611ff760a08301888a611ec2565b828103606084015261200a818789611ec2565b838103608085015261201d818688611f0f565b9c9b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261207360a083018486611f0f565b98975050505050505050565b600060408252612093604083018688611ec2565b82810360208401526120a6818587611ec2565b979650505050505050565b602080825282518282018190526000918401906040840190835b818110156120e95783518352602093840193909201916001016120cb565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061213a57fe5b938152602081019290925260409091015290565b600060208252612162602083018486611f0f565b949350505050565b6020808252601f908201527f43414e4e4f545f5452414e534645525f544f5f414444524553535f5a45524f00604082015260600190565b6020808252818101527f544f4b454e5f414e445f56414c5545535f4c454e4754485f4d49534d41544348604082015260600190565b6020808252601d908201527f4e46545f4e4f545f4f574e45445f42595f46524f4d5f41444452455353000000604082015260600190565b60208082526016908201527f494e53554646494349454e545f414c4c4f57414e434500000000000000000000604082015260600190565b6020808252601c908201527f414d4f554e545f455155414c5f544f5f4f4e455f524551554952454400000000604082015260600190565b6020808252602d908201527f54524945445f544f5f4d494e545f4e4f4e5f46554e4749424c455f464f525f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4f574e4552535f414e445f4944535f4d5553545f484156455f53414d455f4c4560408201527f4e47544800000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602d908201527f54524945445f544f5f4d494e545f46554e4749424c455f464f525f4e4f4e5f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4241445f52454345495645525f52455455524e5f56414c554500000000000000604082015260600190565b90815260200190565b918252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff8116811461240257600080fd5b5056fea365627a7a7231582066e9e02679a1339247a560b2455f640fc604f18add8b680d9fbe0bb5f4302a6d6c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x608060405234801561001057600080fd5b50600436106101765760003560e01c80639f4b286a116100d8578063e0a5c9491161008c578063f242432a11610066578063f242432a14610312578063f941908814610325578063fc67bf1c1461033857610176565b8063e0a5c949146102d7578063e44591f0146102ec578063e985e9c5146102ff57610176565b8063adebf6f2116100bd578063adebf6f21461029e578063cc10e401146102b1578063cd53d08e146102c457610176565b80639f4b286a14610278578063a22cb4651461028b57610176565b80636352211e1161012f5780637269a327116101145780637269a3271461023f57806378b27221146102525780639cca1c641461026557610176565b80636352211e1461020c5780636f969c2d1461022c57610176565b80632eb2c2d6116101605780632eb2c2d6146101b75780634e1273f4146101cc5780635e81b958146101ec57610176565b8062fdd58e1461017b57806308d7d469146101a4575b600080fd5b61018e610189366004611c80565b610340565b60405161019b91906123c9565b60405180910390f35b61018e6101b2366004611dac565b6103ca565b6101ca6101c5366004611b12565b6103dc565b005b6101df6101da366004611caa565b610943565b60405161019b91906120b1565b6101ff6101fa366004611dac565b610ae9565b60405161019b91906120f4565b61021f61021a366004611dac565b610b2f565b60405161019b9190611f57565b61018e61023a366004611dac565b610b57565b6101ff61024d366004611dac565b610b7c565b6101ca610260366004611e0e565b610bc1565b61018e610273366004611dac565b610e8d565b6101ca610286366004611e85565b610ea2565b6101ca610299366004611c45565b610f5e565b6101ff6102ac366004611dac565b610ff8565b61018e6102bf366004611d53565b61101e565b61021f6102d2366004611dac565b611113565b6102df61113b565b60405161019b91906120ff565b6101ff6102fa366004611dac565b61115f565b6101ff61030d366004611ade565b611187565b6101ca610320366004611bcb565b6111c2565b6101ca610333366004611dc4565b611624565b6102df6118ff565b600061034b82610ae9565b156103925760008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614610385576000610388565b60015b60ff1690506103c4565b50600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60056020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff8716610432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b60405180910390fd5b84831461046b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121a1565b73ffffffffffffffffffffffffffffffffffffffff88163314806104c4575073ffffffffffffffffffffffffffffffffffffffff8816600090815260026020908152604080832033845290915290205460ff1615156001145b6104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b60005b8581101561075e57600087878381811061051357fe5b905060200201359050600086868481811061052a57fe5b90506020020135905061053c8261115f565b1561062c578060011461057b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff8c81169116146105db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600082815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8c16179055610754565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f16845290915290205461066c908263ffffffff61192316565b6001600084815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610723816001600085815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194790919063ffffffff16565b600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8f1684529091529020555b50506001016104fd565b508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040516107d9949392919061207f565b60405180910390a46108008773ffffffffffffffffffffffffffffffffffffffff16611963565b15610939576040517fbc197c8100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff89169063bc197c81906108689033908d908c908c908c908c908c908c90600401611fbd565b602060405180830381600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108ba9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050505050505050565b606083821461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906122d8565b6040805185815260208087028201019091528480156109a7578160200160208202803883390190505b50905060005b84811015610ae05760008484838181106109c357fe5b9050602002013590506109d581610ae9565b15610a53578686838181106109e657fe5b90506020020160206109fb9190810190611ac3565b60008281526020819052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614610a30576000610a33565b60015b60ff16838381518110610a4257fe5b602002602001018181525050610ad7565b600081815260016020526040812090888885818110610a6e57fe5b9050602002016020610a839190810190611ac3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054838381518110610aca57fe5b6020026020010181815250505b506001016109ad565b50949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff16151590565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000001690565b60007f80000000000000000000000000000000000000000000000000000000000000008083161480156103c45750506fffffffffffffffffffffffffffffffff161590565b600085815260046020526040902054859073ffffffffffffffffffffffffffffffffffffffff163314610bf357600080fd5b610bfc86610ff8565b610c32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612335565b60005b84811015610e84576000868683818110610c4b57fe5b9050602002016020610c609190810190611ac3565b90506000858584818110610c7057fe5b60008c815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168452825290912054910292909201359250610cbb9183915063ffffffff61194716565b60008a815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832093909355915133907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610d22908e9087906123d2565b60405180910390a4610d498273ffffffffffffffffffffffffffffffffffffffff16611963565b15610e7a576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e6190610da990339081908f908890600401611f78565b602060405180830381600087803b158015610dc357600080fd5b505af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dfb9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b5050600101610c35565b50505050505050565b6fffffffffffffffffffffffffffffffff1690565b60008381526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6290610f1090889085906123d2565b60405180910390a48015610f5957827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8383604051610f5092919061214e565b60405180910390a25b505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871680855292529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610fec9085906120f4565b60405180910390a35050565b7f8000000000000000000000000000000000000000000000000000000000000000161590565b600380546001019081905560801b8115611055577f8000000000000000000000000000000000000000000000000000000000000000175b60008181526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590518291907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906110c390869085906123d2565b60405180910390a4821561110c57807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b858560405161110392919061214e565b60405180910390a25b9392505050565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f80000000000000000000000000000000000000000000000000000000000000009081161490565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff851661120f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061216a565b73ffffffffffffffffffffffffffffffffffffffff8616331480611268575073ffffffffffffffffffffffffffffffffffffffff8616600090815260026020908152604080832033845290915290205460ff1615156001145b61129e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061220d565b6112a78461115f565b1561139757826001146112e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612244565b60008481526020819052604090205473ffffffffffffffffffffffffffffffffffffffff878116911614611346576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610429906121d6565b600084815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff871617905561144c565b600084815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020546113d7908463ffffffff61192316565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b8116855292528083209390935587168152205461141b9084611947565b600085815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1684529091529020555b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516114c29291906123d2565b60405180910390a46114e98573ffffffffffffffffffffffffffffffffffffffff16611963565b1561161c576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e619061154d9033908b908a908a908a908a9060040161202d565b602060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061159f9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505050505050565b600083815260046020526040902054839073ffffffffffffffffffffffffffffffffffffffff16331461165657600080fd5b61165f8461115f565b611695576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104299061227b565b600084815260056020526040812054600101905b838110156118c55760008585838181106116bf57fe5b90506020020160206116d49190810190611ac3565b828401881760008181526020819052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86169081179091559051939450919233907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906117629086906001906123d2565b60405180910390a46117898273ffffffffffffffffffffffffffffffffffffffff16611963565b156118bb576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff84169063f23a6e61906117ea90339081908790600190600401611f78565b602060405180830381600087803b15801561180457600080fd5b505af1158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061183c9190810190611d13565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146118b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042990612392565b505b50506001016116a9565b506000858152600560205260409020546118e690849063ffffffff61194716565b6000958652600560205260409095209490945550505050565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b6000828211156119415761194161193c60028585611969565b611a0e565b50900390565b60008282018381101561110c5761110c61193c60008686611969565b3b151590565b606063e946c1bb60e01b8484846040516024016119889392919061212c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60008083601f840112611a4b578182fd5b50813567ffffffffffffffff811115611a62578182fd5b6020830191508360208083028501011115611a7c57600080fd5b9250929050565b60008083601f840112611a94578182fd5b50813567ffffffffffffffff811115611aab578182fd5b602083019150836020828501011115611a7c57600080fd5b600060208284031215611ad4578081fd5b61110c8383611a16565b60008060408385031215611af0578081fd5b611afa8484611a16565b9150611b098460208501611a16565b90509250929050565b60008060008060008060008060a0898b031215611b2d578384fd5b611b378a8a611a16565b9750611b468a60208b01611a16565b9650604089013567ffffffffffffffff80821115611b62578586fd5b611b6e8c838d01611a3a565b909850965060608b0135915080821115611b86578586fd5b611b928c838d01611a3a565b909650945060808b0135915080821115611baa578384fd5b50611bb78b828c01611a83565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215611be3578182fd5b8635611bee816123e0565b95506020870135611bfe816123e0565b94506040870135935060608701359250608087013567ffffffffffffffff811115611c27578283fd5b611c3389828a01611a83565b979a9699509497509295939492505050565b60008060408385031215611c57578182fd5b611c618484611a16565b915060208301358015158114611c75578182fd5b809150509250929050565b60008060408385031215611c92578182fd5b611c9c8484611a16565b946020939093013593505050565b60008060008060408587031215611cbf578384fd5b843567ffffffffffffffff80821115611cd6578586fd5b611ce288838901611a3a565b90965094506020870135915080821115611cfa578384fd5b50611d0787828801611a3a565b95989497509550505050565b600060208284031215611d24578081fd5b81517fffffffff000000000000000000000000000000000000000000000000000000008116811461110c578182fd5b600080600060408486031215611d67578283fd5b833567ffffffffffffffff811115611d7d578384fd5b611d8986828701611a83565b90945092505060208401358015158114611da1578182fd5b809150509250925092565b600060208284031215611dbd578081fd5b5035919050565b600080600060408486031215611dd8578283fd5b83359250602084013567ffffffffffffffff811115611df5578283fd5b611e0186828701611a3a565b9497909650939450505050565b600080600080600060608688031215611e25578081fd5b85359450602086013567ffffffffffffffff80821115611e43578283fd5b611e4f89838a01611a3a565b90965094506040880135915080821115611e67578283fd5b50611e7488828901611a3a565b969995985093965092949392505050565b600080600060408486031215611e99578081fd5b83359250602084013567ffffffffffffffff811115611eb6578182fd5b611e0186828701611a83565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611ef3578081fd5b6020830280836020870137939093016020019283525090919050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611ff760a08301888a611ec2565b828103606084015261200a818789611ec2565b838103608085015261201d818688611f0f565b9c9b505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261207360a083018486611f0f565b98975050505050505050565b600060408252612093604083018688611ec2565b82810360208401526120a6818587611ec2565b979650505050505050565b602080825282518282018190526000918401906040840190835b818110156120e95783518352602093840193909201916001016120cb565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061213a57fe5b938152602081019290925260409091015290565b600060208252612162602083018486611f0f565b949350505050565b6020808252601f908201527f43414e4e4f545f5452414e534645525f544f5f414444524553535f5a45524f00604082015260600190565b6020808252818101527f544f4b454e5f414e445f56414c5545535f4c454e4754485f4d49534d41544348604082015260600190565b6020808252601d908201527f4e46545f4e4f545f4f574e45445f42595f46524f4d5f41444452455353000000604082015260600190565b60208082526016908201527f494e53554646494349454e545f414c4c4f57414e434500000000000000000000604082015260600190565b6020808252601c908201527f414d4f554e545f455155414c5f544f5f4f4e455f524551554952454400000000604082015260600190565b6020808252602d908201527f54524945445f544f5f4d494e545f4e4f4e5f46554e4749424c455f464f525f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4f574e4552535f414e445f4944535f4d5553545f484156455f53414d455f4c4560408201527f4e47544800000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602d908201527f54524945445f544f5f4d494e545f46554e4749424c455f464f525f4e4f4e5f4660408201527f554e4749424c455f544f4b454e00000000000000000000000000000000000000606082015260800190565b60208082526019908201527f4241445f52454345495645525f52455455524e5f56414c554500000000000000604082015260600190565b90815260200190565b918252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff8116811461240257600080fd5b5056fea365627a7a723158201ee52511037fd21c6670dcd6401daeac26f62a6afdc23addc02ff5cf826773246c6578706572696d656e74616cf564736f6c63430005110040" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ERC1155Proxy.json b/packages/contract-artifacts/artifacts/ERC1155Proxy.json index 59cbd9827a..da923e2fdc 100644 --- a/packages/contract-artifacts/artifacts/ERC1155Proxy.json +++ b/packages/contract-artifacts/artifacts/ERC1155Proxy.json @@ -167,16 +167,16 @@ }, "evm": { "bytecode": { - "object": "0x6080604052600080546001600160a01b031916331790556114bc806100256000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a85e59e411610076578063b91816111161005b578063b918161114610285578063d39de6e9146102cc578063f2fde38b14610324576100be565b8063a85e59e4146101b2578063ae25532e14610248576100be565b806370712939116100a7578063707129391461013e5780638da5cb5b146101715780639ad2674414610179576100be565b806342f1181e146100c3578063494503d4146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610357565b005b6101156004803603602081101561010e57600080fd5b5035610543565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603602081101561015457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610577565b61011561086a565b6100f66004803603604081101561018f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610886565b6100f6600480360360808110156101c857600080fd5b8101906020810181356401000000008111156101e357600080fd5b8201836020820111156101f557600080fd5b8035906020019184600183028401116401000000008311171561021757600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c37565b610250611141565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6102b86004803603602081101561029b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611162565b604080519115158252519081900360200190f35b6102d4611177565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103105781810151838201526020016102f8565b505050509050019250505060405180910390f35b6100f66004803603602081101561033a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e6565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561047257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061055057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661069157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610823578173ffffffffffffffffffffffffffffffffffffffff166002828154811061070b57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561081b57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061076357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061079657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906108159082611410565b50610823565b6001016106dd565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461090c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610a1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610a3457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610ac257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610b3d57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610b7057fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610bef9082611410565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff16610cb557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53454e4445525f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b60006060806060610d0b60048a8a90508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6112cc169050565b8060200190516080811015610d1f57600080fd5b815160208301805160405192949293830192919084640100000000821115610d4657600080fd5b908301906020820185811115610d5b57600080fd5b8251866020820283011164010000000082111715610d7857600080fd5b82525081516020918201928201910280838360005b83811015610da5578181015183820152602001610d8d565b5050505090500160405260200180516040519392919084640100000000821115610dce57600080fd5b908301906020820185811115610de357600080fd5b8251866020820283011164010000000082111715610e0057600080fd5b82525081516020918201928201910280838360005b83811015610e2d578181015183820152602001610e15565b5050505090500160405260200180516040519392919084640100000000821115610e5657600080fd5b908301906020820185811115610e6b57600080fd5b8251640100000000811182820188101715610e8557600080fd5b82525081516020918201929091019080838360005b83811015610eb2578181015183820152602001610e9a565b50505050905090810190601f168015610edf5780820380516001836020036101000a031916815260200191505b506040525050509350935093509350600082519050606081604051908082528060200260200182016040528015610f20578160200160208202803883390190505b50905060005b828114610f7257610f5388868381518110610f3d57fe5b602002602001015161130f90919063ffffffff16565b828281518110610f5f57fe5b6020908102919091010152600101610f26565b508573ffffffffffffffffffffffffffffffffffffffff16632eb2c2d68a8a8885886040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561104f578181015183820152602001611037565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561108e578181015183820152602001611076565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110ca5781810151838201526020016110b2565b50505050905090810190601f1680156110f75780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561111c57600080fd5b505af1158015611130573d6000803e3d6000fd5b505050505050505050505050505050565b60006040518080611458603091396030019050604051809103902090505b90565b60016020526000908152604090205460ff1681565b606060028054806020026020016040519081016040528092919081815260200182805480156111dc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116111b1575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156112c957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b6060818311156112ea576112ea6112e560008585611349565b6113e8565b8351821115611303576113036112e56001848751611349565b50819003910190815290565b60008261131e57506000611343565b8282028284828161132b57fe5b0414611340576113406112e5600186866113f0565b90505b92915050565b6060632800659560e01b8484846040516024018084600781111561136957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561136957fe5b81548183558181111561143457600083815260209020611434918101908301611439565b505050565b61115f91905b80821115611453576000815560010161143f565b509056fe4552433131353541737365747328616464726573732c75696e743235365b5d2c75696e743235365b5d2c627974657329a265627a7a723158201776c74f30e9d9e14fbe836f80264afb611d3aa6a23417488ac84cae624768ba64736f6c63430005100032" + "object": "0x6080604052600080546001600160a01b031916331790556114bc806100256000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a85e59e411610076578063b91816111161005b578063b918161114610285578063d39de6e9146102cc578063f2fde38b14610324576100be565b8063a85e59e4146101b2578063ae25532e14610248576100be565b806370712939116100a7578063707129391461013e5780638da5cb5b146101715780639ad2674414610179576100be565b806342f1181e146100c3578063494503d4146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610357565b005b6101156004803603602081101561010e57600080fd5b5035610543565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603602081101561015457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610577565b61011561086a565b6100f66004803603604081101561018f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610886565b6100f6600480360360808110156101c857600080fd5b8101906020810181356401000000008111156101e357600080fd5b8201836020820111156101f557600080fd5b8035906020019184600183028401116401000000008311171561021757600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c37565b610250611141565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6102b86004803603602081101561029b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611162565b604080519115158252519081900360200190f35b6102d4611177565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103105781810151838201526020016102f8565b505050509050019250505060405180910390f35b6100f66004803603602081101561033a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e6565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561047257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061055057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661069157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610823578173ffffffffffffffffffffffffffffffffffffffff166002828154811061070b57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561081b57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061076357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061079657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906108159082611410565b50610823565b6001016106dd565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461090c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610a1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610a3457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610ac257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610b3d57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610b7057fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610bef9082611410565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff16610cb557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53454e4445525f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b60006060806060610d0b60048a8a90508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6112cc169050565b8060200190516080811015610d1f57600080fd5b815160208301805160405192949293830192919084640100000000821115610d4657600080fd5b908301906020820185811115610d5b57600080fd5b8251866020820283011164010000000082111715610d7857600080fd5b82525081516020918201928201910280838360005b83811015610da5578181015183820152602001610d8d565b5050505090500160405260200180516040519392919084640100000000821115610dce57600080fd5b908301906020820185811115610de357600080fd5b8251866020820283011164010000000082111715610e0057600080fd5b82525081516020918201928201910280838360005b83811015610e2d578181015183820152602001610e15565b5050505090500160405260200180516040519392919084640100000000821115610e5657600080fd5b908301906020820185811115610e6b57600080fd5b8251640100000000811182820188101715610e8557600080fd5b82525081516020918201929091019080838360005b83811015610eb2578181015183820152602001610e9a565b50505050905090810190601f168015610edf5780820380516001836020036101000a031916815260200191505b506040525050509350935093509350600082519050606081604051908082528060200260200182016040528015610f20578160200160208202803883390190505b50905060005b828114610f7257610f5388868381518110610f3d57fe5b602002602001015161130f90919063ffffffff16565b828281518110610f5f57fe5b6020908102919091010152600101610f26565b508573ffffffffffffffffffffffffffffffffffffffff16632eb2c2d68a8a8885886040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561104f578181015183820152602001611037565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561108e578181015183820152602001611076565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110ca5781810151838201526020016110b2565b50505050905090810190601f1680156110f75780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561111c57600080fd5b505af1158015611130573d6000803e3d6000fd5b505050505050505050505050505050565b60006040518080611458603091396030019050604051809103902090505b90565b60016020526000908152604090205460ff1681565b606060028054806020026020016040519081016040528092919081815260200182805480156111dc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116111b1575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156112c957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b6060818311156112ea576112ea6112e560008585611349565b6113e8565b8351821115611303576113036112e56001848751611349565b50819003910190815290565b60008261131e57506000611343565b8282028284828161132b57fe5b0414611340576113406112e5600186866113f0565b90505b92915050565b6060632800659560e01b8484846040516024018084600781111561136957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561136957fe5b81548183558181111561143457600083815260209020611434918101908301611439565b505050565b61115f91905b80821115611453576000815560010161143f565b509056fe4552433131353541737365747328616464726573732c75696e743235365b5d2c75696e743235365b5d2c627974657329a265627a7a72315820ab23c6179cd8f3e1ee6b07cd4de12728ecf85693686b24490441dbc612b4612664736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a85e59e411610076578063b91816111161005b578063b918161114610285578063d39de6e9146102cc578063f2fde38b14610324576100be565b8063a85e59e4146101b2578063ae25532e14610248576100be565b806370712939116100a7578063707129391461013e5780638da5cb5b146101715780639ad2674414610179576100be565b806342f1181e146100c3578063494503d4146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610357565b005b6101156004803603602081101561010e57600080fd5b5035610543565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603602081101561015457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610577565b61011561086a565b6100f66004803603604081101561018f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610886565b6100f6600480360360808110156101c857600080fd5b8101906020810181356401000000008111156101e357600080fd5b8201836020820111156101f557600080fd5b8035906020019184600183028401116401000000008311171561021757600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c37565b610250611141565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6102b86004803603602081101561029b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611162565b604080519115158252519081900360200190f35b6102d4611177565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103105781810151838201526020016102f8565b505050509050019250505060405180910390f35b6100f66004803603602081101561033a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e6565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561047257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061055057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661069157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610823578173ffffffffffffffffffffffffffffffffffffffff166002828154811061070b57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561081b57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061076357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061079657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906108159082611410565b50610823565b6001016106dd565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461090c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610a1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610a3457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610ac257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610b3d57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610b7057fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610bef9082611410565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff16610cb557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53454e4445525f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b60006060806060610d0b60048a8a90508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6112cc169050565b8060200190516080811015610d1f57600080fd5b815160208301805160405192949293830192919084640100000000821115610d4657600080fd5b908301906020820185811115610d5b57600080fd5b8251866020820283011164010000000082111715610d7857600080fd5b82525081516020918201928201910280838360005b83811015610da5578181015183820152602001610d8d565b5050505090500160405260200180516040519392919084640100000000821115610dce57600080fd5b908301906020820185811115610de357600080fd5b8251866020820283011164010000000082111715610e0057600080fd5b82525081516020918201928201910280838360005b83811015610e2d578181015183820152602001610e15565b5050505090500160405260200180516040519392919084640100000000821115610e5657600080fd5b908301906020820185811115610e6b57600080fd5b8251640100000000811182820188101715610e8557600080fd5b82525081516020918201929091019080838360005b83811015610eb2578181015183820152602001610e9a565b50505050905090810190601f168015610edf5780820380516001836020036101000a031916815260200191505b506040525050509350935093509350600082519050606081604051908082528060200260200182016040528015610f20578160200160208202803883390190505b50905060005b828114610f7257610f5388868381518110610f3d57fe5b602002602001015161130f90919063ffffffff16565b828281518110610f5f57fe5b6020908102919091010152600101610f26565b508573ffffffffffffffffffffffffffffffffffffffff16632eb2c2d68a8a8885886040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561104f578181015183820152602001611037565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561108e578181015183820152602001611076565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110ca5781810151838201526020016110b2565b50505050905090810190601f1680156110f75780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561111c57600080fd5b505af1158015611130573d6000803e3d6000fd5b505050505050505050505050505050565b60006040518080611458603091396030019050604051809103902090505b90565b60016020526000908152604090205460ff1681565b606060028054806020026020016040519081016040528092919081815260200182805480156111dc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116111b1575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156112c957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b6060818311156112ea576112ea6112e560008585611349565b6113e8565b8351821115611303576113036112e56001848751611349565b50819003910190815290565b60008261131e57506000611343565b8282028284828161132b57fe5b0414611340576113406112e5600186866113f0565b90505b92915050565b6060632800659560e01b8484846040516024018084600781111561136957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561136957fe5b81548183558181111561143457600083815260209020611434918101908301611439565b505050565b61115f91905b80821115611453576000815560010161143f565b509056fe4552433131353541737365747328616464726573732c75696e743235365b5d2c75696e743235365b5d2c627974657329a265627a7a723158201776c74f30e9d9e14fbe836f80264afb611d3aa6a23417488ac84cae624768ba64736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a85e59e411610076578063b91816111161005b578063b918161114610285578063d39de6e9146102cc578063f2fde38b14610324576100be565b8063a85e59e4146101b2578063ae25532e14610248576100be565b806370712939116100a7578063707129391461013e5780638da5cb5b146101715780639ad2674414610179576100be565b806342f1181e146100c3578063494503d4146100f8575b600080fd5b6100f6600480360360208110156100d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610357565b005b6101156004803603602081101561010e57600080fd5b5035610543565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100f66004803603602081101561015457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610577565b61011561086a565b6100f66004803603604081101561018f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610886565b6100f6600480360360808110156101c857600080fd5b8101906020810181356401000000008111156101e357600080fd5b8201836020820111156101f557600080fd5b8035906020019184600183028401116401000000008311171561021757600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c37565b610250611141565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6102b86004803603602081101561029b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611162565b604080519115158252519081900360200190f35b6102d4611177565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103105781810151838201526020016102f8565b505050509050019250505060405180910390f35b6100f66004803603602081101561033a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e6565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561047257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061055057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661069157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610823578173ffffffffffffffffffffffffffffffffffffffff166002828154811061070b57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561081b57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061076357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061079657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906108159082611410565b50610823565b6001016106dd565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461090c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610a1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610a3457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610ac257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610b3d57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610b7057fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610bef9082611410565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff16610cb557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f53454e4445525f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b60006060806060610d0b60048a8a90508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6112cc169050565b8060200190516080811015610d1f57600080fd5b815160208301805160405192949293830192919084640100000000821115610d4657600080fd5b908301906020820185811115610d5b57600080fd5b8251866020820283011164010000000082111715610d7857600080fd5b82525081516020918201928201910280838360005b83811015610da5578181015183820152602001610d8d565b5050505090500160405260200180516040519392919084640100000000821115610dce57600080fd5b908301906020820185811115610de357600080fd5b8251866020820283011164010000000082111715610e0057600080fd5b82525081516020918201928201910280838360005b83811015610e2d578181015183820152602001610e15565b5050505090500160405260200180516040519392919084640100000000821115610e5657600080fd5b908301906020820185811115610e6b57600080fd5b8251640100000000811182820188101715610e8557600080fd5b82525081516020918201929091019080838360005b83811015610eb2578181015183820152602001610e9a565b50505050905090810190601f168015610edf5780820380516001836020036101000a031916815260200191505b506040525050509350935093509350600082519050606081604051908082528060200260200182016040528015610f20578160200160208202803883390190505b50905060005b828114610f7257610f5388868381518110610f3d57fe5b602002602001015161130f90919063ffffffff16565b828281518110610f5f57fe5b6020908102919091010152600101610f26565b508573ffffffffffffffffffffffffffffffffffffffff16632eb2c2d68a8a8885886040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561104f578181015183820152602001611037565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561108e578181015183820152602001611076565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110ca5781810151838201526020016110b2565b50505050905090810190601f1680156110f75780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561111c57600080fd5b505af1158015611130573d6000803e3d6000fd5b505050505050505050505050505050565b60006040518080611458603091396030019050604051809103902090505b90565b60016020526000908152604090205460ff1681565b606060028054806020026020016040519081016040528092919081815260200182805480156111dc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116111b1575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156112c957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b6060818311156112ea576112ea6112e560008585611349565b6113e8565b8351821115611303576113036112e56001848751611349565b50819003910190815290565b60008261131e57506000611343565b8282028284828161132b57fe5b0414611340576113406112e5600186866113f0565b90505b92915050565b6060632800659560e01b8484846040516024018084600781111561136957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fd5b606063e946c1bb60e01b8484846040516024018084600381111561136957fe5b81548183558181111561143457600083815260209020611434918101908301611439565b505050565b61115f91905b80821115611453576000815560010161143f565b509056fe4552433131353541737365747328616464726573732c75696e743235365b5d2c75696e743235365b5d2c627974657329a265627a7a72315820ab23c6179cd8f3e1ee6b07cd4de12728ecf85693686b24490441dbc612b4612664736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ERC20BridgeProxy.json b/packages/contract-artifacts/artifacts/ERC20BridgeProxy.json index e5668365f0..ce122087c3 100644 --- a/packages/contract-artifacts/artifacts/ERC20BridgeProxy.json +++ b/packages/contract-artifacts/artifacts/ERC20BridgeProxy.json @@ -187,16 +187,16 @@ }, "evm": { "bytecode": { - "object": "0x6080604052600080546001600160a01b03191633179055611463806100256000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063a85e59e411610081578063d39de6e91161005b578063d39de6e914610182578063f2fde38b14610197578063fc124ebd146101aa576100c9565b8063a85e59e41461013a578063ae25532e1461014d578063b918161114610162576100c9565b806370712939116100b2578063707129391461010c5780638da5cb5b1461011f5780639ad2674414610127576100c9565b806342f1181e146100ce578063494503d4146100e3575b600080fd5b6100e16100dc366004610f27565b6101ca565b005b6100f66100f1366004611160565b6101de565b6040516101039190611190565b60405180910390f35b6100e161011a366004610f27565b610212565b6100f66102cc565b6100e1610135366004611032565b6102e8565b6100e16101483660046110f2565b6102fa565b6101556104f6565b60405161010391906112c5565b610175610170366004610f27565b61051b565b60405161010391906112ba565b61018a610530565b6040516101039190611261565b6100e16101a5366004610f27565b61059f565b6101bd6101b836600461109d565b610642565b6040516101039190611390565b6101d26106bc565b6101db81610705565b50565b600281815481106101eb57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b61021a6106bc565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166102585761025861025382610836565b6108d5565b60005b6002548110156102c8578173ffffffffffffffffffffffffffffffffffffffff166002828154811061028957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156102c0576102bb82826108dd565b6102c8565b60010161025b565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6102f06106bc565b6102c882826108dd565b610302610b2c565b60008060606103566004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516103699190810190610f5f565b925092509250600061037b8487610b8d565b905060008373ffffffffffffffffffffffffffffffffffffffff1663c2df82e6868a8a8a886040518663ffffffff1660e01b81526004016103c09594939291906111d8565b602060405180830381600087803b1580156103da57600080fd5b505af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610412919081019061105d565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f30000000000000000000000000000000000000000000000000000000014610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611322565b60405180910390fd5b6104a28588610b8d565b6104b2838863ffffffff610c3916565b11156104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611359565b50505050505050505050565b7fdc1600f3000000000000000000000000000000000000000000000000000000005b90565b60016020526000908152604090205460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561059557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161056a575b5050505050905090565b6105a76106bc565b73ffffffffffffffffffffffffffffffffffffffff81166105d2576105cd610253610c55565b6101db565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60008061069460048686905087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516106a79190810190610f43565b90506106b38184610b8d565b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610703576000546107039061025390339073ffffffffffffffffffffffffffffffffffffffff16610c8c565b565b73ffffffffffffffffffffffffffffffffffffffff811661072b5761072b610253610d2e565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156107655761076561025382610d65565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b606063eb5108a260e01b826040516024016108519190611190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109165761091661025383610836565b60025481106109315761093161025382600280549050610d80565b8173ffffffffffffffffffffffffffffffffffffffff166002828154811061095557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16146109b7576109b76102536002838154811061098f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684610d9d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610a3257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610a6557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610ae49082610e99565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff166107035761070361025333610dba565b606081831115610b6857610b6861025360008585610dd5565b8351821115610b8157610b816102536001848751610dd5565b50819003910190815290565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190610be2908590600401611190565b60206040518083038186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c329190810190611178565b9392505050565b600082820183811015610c3257610c3261025360008686610e7a565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401610ca99291906111b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016108519190611190565b606063e9f8377160e01b8383604051602401610ca9929190611399565b606063140a84db60e01b8383604051602401610ca99291906111b1565b606063b65a25b960e01b826040516024016108519190611190565b6060632800659560e01b848484604051602401610df493929190611314565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063e946c1bb60e01b848484604051602401610df4939291906112f2565b815481835581811115610ebd57600083815260209020610ebd918101908301610ec2565b505050565b61051891905b80821115610edc5760008155600101610ec8565b5090565b60008083601f840112610ef1578182fd5b50813567ffffffffffffffff811115610f08578182fd5b602083019150836020828501011115610f2057600080fd5b9250929050565b600060208284031215610f38578081fd5b8135610c32816113fe565b600060208284031215610f54578081fd5b8151610c32816113fe565b600080600060608486031215610f73578182fd5b8351610f7e816113fe565b6020850151909350610f8f816113fe565b604085015190925067ffffffffffffffff80821115610fac578283fd5b81860187601f820112610fbd578384fd5b8051925081831115610fcd578384fd5b610ffe60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116016113a7565b9150828252876020848301011115611014578384fd5b6110258360208401602084016113ce565b5080925050509250925092565b60008060408385031215611044578182fd5b823561104f816113fe565b946020939093013593505050565b60006020828403121561106e578081fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c32578182fd5b6000806000604084860312156110b1578283fd5b833567ffffffffffffffff8111156110c7578384fd5b6110d386828701610ee0565b90945092505060208401356110e7816113fe565b809150509250925092565b600080600080600060808688031215611109578081fd5b853567ffffffffffffffff81111561111f578182fd5b61112b88828901610ee0565b909650945050602086013561113f816113fe565b9250604086013561114f816113fe565b949793965091946060013592915050565b600060208284031215611171578081fd5b5035919050565b600060208284031215611189578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352808716602084015280861660408401525083606083015260a0608083015282518060a084015261122b8160c08501602087016113ce565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b602080825282518282018190526000918401906040840190835b818110156112af57835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161127b565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061130057fe5b938152602081019290925260409091015290565b606081016008851061130057fe5b6020808252600d908201527f4252494447455f4641494c454400000000000000000000000000000000000000604082015260600190565b6020808252600f908201527f4252494447455f554e4445525041590000000000000000000000000000000000604082015260600190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156113c657600080fd5b604052919050565b60005b838110156113e95781810151838201526020016113d1565b838111156113f8576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146101db57600080fdfea365627a7a72315820f3e0e666f1b073e911f7e90f5402365ad8141bf7a59ba19c0e30ed91dbe5a4be6c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x6080604052600080546001600160a01b03191633179055611463806100256000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063a85e59e411610081578063d39de6e91161005b578063d39de6e914610182578063f2fde38b14610197578063fc124ebd146101aa576100c9565b8063a85e59e41461013a578063ae25532e1461014d578063b918161114610162576100c9565b806370712939116100b2578063707129391461010c5780638da5cb5b1461011f5780639ad2674414610127576100c9565b806342f1181e146100ce578063494503d4146100e3575b600080fd5b6100e16100dc366004610f27565b6101ca565b005b6100f66100f1366004611160565b6101de565b6040516101039190611190565b60405180910390f35b6100e161011a366004610f27565b610212565b6100f66102cc565b6100e1610135366004611032565b6102e8565b6100e16101483660046110f2565b6102fa565b6101556104f6565b60405161010391906112c5565b610175610170366004610f27565b61051b565b60405161010391906112ba565b61018a610530565b6040516101039190611261565b6100e16101a5366004610f27565b61059f565b6101bd6101b836600461109d565b610642565b6040516101039190611390565b6101d26106bc565b6101db81610705565b50565b600281815481106101eb57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b61021a6106bc565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166102585761025861025382610836565b6108d5565b60005b6002548110156102c8578173ffffffffffffffffffffffffffffffffffffffff166002828154811061028957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156102c0576102bb82826108dd565b6102c8565b60010161025b565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6102f06106bc565b6102c882826108dd565b610302610b2c565b60008060606103566004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516103699190810190610f5f565b925092509250600061037b8487610b8d565b905060008373ffffffffffffffffffffffffffffffffffffffff1663c2df82e6868a8a8a886040518663ffffffff1660e01b81526004016103c09594939291906111d8565b602060405180830381600087803b1580156103da57600080fd5b505af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610412919081019061105d565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f30000000000000000000000000000000000000000000000000000000014610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611322565b60405180910390fd5b6104a28588610b8d565b6104b2838863ffffffff610c3916565b11156104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611359565b50505050505050505050565b7fdc1600f3000000000000000000000000000000000000000000000000000000005b90565b60016020526000908152604090205460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561059557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161056a575b5050505050905090565b6105a76106bc565b73ffffffffffffffffffffffffffffffffffffffff81166105d2576105cd610253610c55565b6101db565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60008061069460048686905087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516106a79190810190610f43565b90506106b38184610b8d565b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610703576000546107039061025390339073ffffffffffffffffffffffffffffffffffffffff16610c8c565b565b73ffffffffffffffffffffffffffffffffffffffff811661072b5761072b610253610d2e565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156107655761076561025382610d65565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b606063eb5108a260e01b826040516024016108519190611190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109165761091661025383610836565b60025481106109315761093161025382600280549050610d80565b8173ffffffffffffffffffffffffffffffffffffffff166002828154811061095557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16146109b7576109b76102536002838154811061098f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684610d9d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610a3257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610a6557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610ae49082610e99565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff166107035761070361025333610dba565b606081831115610b6857610b6861025360008585610dd5565b8351821115610b8157610b816102536001848751610dd5565b50819003910190815290565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190610be2908590600401611190565b60206040518083038186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c329190810190611178565b9392505050565b600082820183811015610c3257610c3261025360008686610e7a565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401610ca99291906111b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016108519190611190565b606063e9f8377160e01b8383604051602401610ca9929190611399565b606063140a84db60e01b8383604051602401610ca99291906111b1565b606063b65a25b960e01b826040516024016108519190611190565b6060632800659560e01b848484604051602401610df493929190611314565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063e946c1bb60e01b848484604051602401610df4939291906112f2565b815481835581811115610ebd57600083815260209020610ebd918101908301610ec2565b505050565b61051891905b80821115610edc5760008155600101610ec8565b5090565b60008083601f840112610ef1578182fd5b50813567ffffffffffffffff811115610f08578182fd5b602083019150836020828501011115610f2057600080fd5b9250929050565b600060208284031215610f38578081fd5b8135610c32816113fe565b600060208284031215610f54578081fd5b8151610c32816113fe565b600080600060608486031215610f73578182fd5b8351610f7e816113fe565b6020850151909350610f8f816113fe565b604085015190925067ffffffffffffffff80821115610fac578283fd5b81860187601f820112610fbd578384fd5b8051925081831115610fcd578384fd5b610ffe60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116016113a7565b9150828252876020848301011115611014578384fd5b6110258360208401602084016113ce565b5080925050509250925092565b60008060408385031215611044578182fd5b823561104f816113fe565b946020939093013593505050565b60006020828403121561106e578081fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c32578182fd5b6000806000604084860312156110b1578283fd5b833567ffffffffffffffff8111156110c7578384fd5b6110d386828701610ee0565b90945092505060208401356110e7816113fe565b809150509250925092565b600080600080600060808688031215611109578081fd5b853567ffffffffffffffff81111561111f578182fd5b61112b88828901610ee0565b909650945050602086013561113f816113fe565b9250604086013561114f816113fe565b949793965091946060013592915050565b600060208284031215611171578081fd5b5035919050565b600060208284031215611189578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352808716602084015280861660408401525083606083015260a0608083015282518060a084015261122b8160c08501602087016113ce565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b602080825282518282018190526000918401906040840190835b818110156112af57835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161127b565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061130057fe5b938152602081019290925260409091015290565b606081016008851061130057fe5b6020808252600d908201527f4252494447455f4641494c454400000000000000000000000000000000000000604082015260600190565b6020808252600f908201527f4252494447455f554e4445525041590000000000000000000000000000000000604082015260600190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156113c657600080fd5b604052919050565b60005b838110156113e95781810151838201526020016113d1565b838111156113f8576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146101db57600080fdfea365627a7a723158206dd983bb53b37fd1cff1b072611526e30d21c7f5e43678ebb603fa78d5a1c7b46c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c8063a85e59e411610081578063d39de6e91161005b578063d39de6e914610182578063f2fde38b14610197578063fc124ebd146101aa576100c9565b8063a85e59e41461013a578063ae25532e1461014d578063b918161114610162576100c9565b806370712939116100b2578063707129391461010c5780638da5cb5b1461011f5780639ad2674414610127576100c9565b806342f1181e146100ce578063494503d4146100e3575b600080fd5b6100e16100dc366004610f27565b6101ca565b005b6100f66100f1366004611160565b6101de565b6040516101039190611190565b60405180910390f35b6100e161011a366004610f27565b610212565b6100f66102cc565b6100e1610135366004611032565b6102e8565b6100e16101483660046110f2565b6102fa565b6101556104f6565b60405161010391906112c5565b610175610170366004610f27565b61051b565b60405161010391906112ba565b61018a610530565b6040516101039190611261565b6100e16101a5366004610f27565b61059f565b6101bd6101b836600461109d565b610642565b6040516101039190611390565b6101d26106bc565b6101db81610705565b50565b600281815481106101eb57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b61021a6106bc565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166102585761025861025382610836565b6108d5565b60005b6002548110156102c8578173ffffffffffffffffffffffffffffffffffffffff166002828154811061028957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156102c0576102bb82826108dd565b6102c8565b60010161025b565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6102f06106bc565b6102c882826108dd565b610302610b2c565b60008060606103566004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516103699190810190610f5f565b925092509250600061037b8487610b8d565b905060008373ffffffffffffffffffffffffffffffffffffffff1663c2df82e6868a8a8a886040518663ffffffff1660e01b81526004016103c09594939291906111d8565b602060405180830381600087803b1580156103da57600080fd5b505af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610412919081019061105d565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f30000000000000000000000000000000000000000000000000000000014610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611322565b60405180910390fd5b6104a28588610b8d565b6104b2838863ffffffff610c3916565b11156104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611359565b50505050505050505050565b7fdc1600f3000000000000000000000000000000000000000000000000000000005b90565b60016020526000908152604090205460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561059557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161056a575b5050505050905090565b6105a76106bc565b73ffffffffffffffffffffffffffffffffffffffff81166105d2576105cd610253610c55565b6101db565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60008061069460048686905087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516106a79190810190610f43565b90506106b38184610b8d565b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610703576000546107039061025390339073ffffffffffffffffffffffffffffffffffffffff16610c8c565b565b73ffffffffffffffffffffffffffffffffffffffff811661072b5761072b610253610d2e565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156107655761076561025382610d65565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b606063eb5108a260e01b826040516024016108519190611190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109165761091661025383610836565b60025481106109315761093161025382600280549050610d80565b8173ffffffffffffffffffffffffffffffffffffffff166002828154811061095557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16146109b7576109b76102536002838154811061098f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684610d9d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610a3257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610a6557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610ae49082610e99565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff166107035761070361025333610dba565b606081831115610b6857610b6861025360008585610dd5565b8351821115610b8157610b816102536001848751610dd5565b50819003910190815290565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190610be2908590600401611190565b60206040518083038186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c329190810190611178565b9392505050565b600082820183811015610c3257610c3261025360008686610e7a565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401610ca99291906111b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016108519190611190565b606063e9f8377160e01b8383604051602401610ca9929190611399565b606063140a84db60e01b8383604051602401610ca99291906111b1565b606063b65a25b960e01b826040516024016108519190611190565b6060632800659560e01b848484604051602401610df493929190611314565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063e946c1bb60e01b848484604051602401610df4939291906112f2565b815481835581811115610ebd57600083815260209020610ebd918101908301610ec2565b505050565b61051891905b80821115610edc5760008155600101610ec8565b5090565b60008083601f840112610ef1578182fd5b50813567ffffffffffffffff811115610f08578182fd5b602083019150836020828501011115610f2057600080fd5b9250929050565b600060208284031215610f38578081fd5b8135610c32816113fe565b600060208284031215610f54578081fd5b8151610c32816113fe565b600080600060608486031215610f73578182fd5b8351610f7e816113fe565b6020850151909350610f8f816113fe565b604085015190925067ffffffffffffffff80821115610fac578283fd5b81860187601f820112610fbd578384fd5b8051925081831115610fcd578384fd5b610ffe60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116016113a7565b9150828252876020848301011115611014578384fd5b6110258360208401602084016113ce565b5080925050509250925092565b60008060408385031215611044578182fd5b823561104f816113fe565b946020939093013593505050565b60006020828403121561106e578081fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c32578182fd5b6000806000604084860312156110b1578283fd5b833567ffffffffffffffff8111156110c7578384fd5b6110d386828701610ee0565b90945092505060208401356110e7816113fe565b809150509250925092565b600080600080600060808688031215611109578081fd5b853567ffffffffffffffff81111561111f578182fd5b61112b88828901610ee0565b909650945050602086013561113f816113fe565b9250604086013561114f816113fe565b949793965091946060013592915050565b600060208284031215611171578081fd5b5035919050565b600060208284031215611189578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352808716602084015280861660408401525083606083015260a0608083015282518060a084015261122b8160c08501602087016113ce565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b602080825282518282018190526000918401906040840190835b818110156112af57835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161127b565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061130057fe5b938152602081019290925260409091015290565b606081016008851061130057fe5b6020808252600d908201527f4252494447455f4641494c454400000000000000000000000000000000000000604082015260600190565b6020808252600f908201527f4252494447455f554e4445525041590000000000000000000000000000000000604082015260600190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156113c657600080fd5b604052919050565b60005b838110156113e95781810151838201526020016113d1565b838111156113f8576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146101db57600080fdfea365627a7a72315820f3e0e666f1b073e911f7e90f5402365ad8141bf7a59ba19c0e30ed91dbe5a4be6c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c8063a85e59e411610081578063d39de6e91161005b578063d39de6e914610182578063f2fde38b14610197578063fc124ebd146101aa576100c9565b8063a85e59e41461013a578063ae25532e1461014d578063b918161114610162576100c9565b806370712939116100b2578063707129391461010c5780638da5cb5b1461011f5780639ad2674414610127576100c9565b806342f1181e146100ce578063494503d4146100e3575b600080fd5b6100e16100dc366004610f27565b6101ca565b005b6100f66100f1366004611160565b6101de565b6040516101039190611190565b60405180910390f35b6100e161011a366004610f27565b610212565b6100f66102cc565b6100e1610135366004611032565b6102e8565b6100e16101483660046110f2565b6102fa565b6101556104f6565b60405161010391906112c5565b610175610170366004610f27565b61051b565b60405161010391906112ba565b61018a610530565b6040516101039190611261565b6100e16101a5366004610f27565b61059f565b6101bd6101b836600461109d565b610642565b6040516101039190611390565b6101d26106bc565b6101db81610705565b50565b600281815481106101eb57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b61021a6106bc565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166102585761025861025382610836565b6108d5565b60005b6002548110156102c8578173ffffffffffffffffffffffffffffffffffffffff166002828154811061028957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156102c0576102bb82826108dd565b6102c8565b60010161025b565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6102f06106bc565b6102c882826108dd565b610302610b2c565b60008060606103566004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516103699190810190610f5f565b925092509250600061037b8487610b8d565b905060008373ffffffffffffffffffffffffffffffffffffffff1663c2df82e6868a8a8a886040518663ffffffff1660e01b81526004016103c09594939291906111d8565b602060405180830381600087803b1580156103da57600080fd5b505af11580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610412919081019061105d565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f30000000000000000000000000000000000000000000000000000000014610498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611322565b60405180910390fd5b6104a28588610b8d565b6104b2838863ffffffff610c3916565b11156104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048f90611359565b50505050505050505050565b7fdc1600f3000000000000000000000000000000000000000000000000000000005b90565b60016020526000908152604090205460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561059557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161056a575b5050505050905090565b6105a76106bc565b73ffffffffffffffffffffffffffffffffffffffff81166105d2576105cd610253610c55565b6101db565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60008061069460048686905087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff610b4f169050565b8060200190516106a79190810190610f43565b90506106b38184610b8d565b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610703576000546107039061025390339073ffffffffffffffffffffffffffffffffffffffff16610c8c565b565b73ffffffffffffffffffffffffffffffffffffffff811661072b5761072b610253610d2e565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156107655761076561025382610d65565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b606063eb5108a260e01b826040516024016108519190611190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff166109165761091661025383610836565b60025481106109315761093161025382600280549050610d80565b8173ffffffffffffffffffffffffffffffffffffffff166002828154811061095557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16146109b7576109b76102536002838154811061098f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684610d9d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610a3257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610a6557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610ae49082610e99565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b3360009081526001602052604090205460ff166107035761070361025333610dba565b606081831115610b6857610b6861025360008585610dd5565b8351821115610b8157610b816102536001848751610dd5565b50819003910190815290565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190610be2908590600401611190565b60206040518083038186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c329190810190611178565b9392505050565b600082820183811015610c3257610c3261025360008686610e7a565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401610ca99291906111b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016108519190611190565b606063e9f8377160e01b8383604051602401610ca9929190611399565b606063140a84db60e01b8383604051602401610ca99291906111b1565b606063b65a25b960e01b826040516024016108519190611190565b6060632800659560e01b848484604051602401610df493929190611314565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063e946c1bb60e01b848484604051602401610df4939291906112f2565b815481835581811115610ebd57600083815260209020610ebd918101908301610ec2565b505050565b61051891905b80821115610edc5760008155600101610ec8565b5090565b60008083601f840112610ef1578182fd5b50813567ffffffffffffffff811115610f08578182fd5b602083019150836020828501011115610f2057600080fd5b9250929050565b600060208284031215610f38578081fd5b8135610c32816113fe565b600060208284031215610f54578081fd5b8151610c32816113fe565b600080600060608486031215610f73578182fd5b8351610f7e816113fe565b6020850151909350610f8f816113fe565b604085015190925067ffffffffffffffff80821115610fac578283fd5b81860187601f820112610fbd578384fd5b8051925081831115610fcd578384fd5b610ffe60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116016113a7565b9150828252876020848301011115611014578384fd5b6110258360208401602084016113ce565b5080925050509250925092565b60008060408385031215611044578182fd5b823561104f816113fe565b946020939093013593505050565b60006020828403121561106e578081fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c32578182fd5b6000806000604084860312156110b1578283fd5b833567ffffffffffffffff8111156110c7578384fd5b6110d386828701610ee0565b90945092505060208401356110e7816113fe565b809150509250925092565b600080600080600060808688031215611109578081fd5b853567ffffffffffffffff81111561111f578182fd5b61112b88828901610ee0565b909650945050602086013561113f816113fe565b9250604086013561114f816113fe565b949793965091946060013592915050565b600060208284031215611171578081fd5b5035919050565b600060208284031215611189578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352808716602084015280861660408401525083606083015260a0608083015282518060a084015261122b8160c08501602087016113ce565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b602080825282518282018190526000918401906040840190835b818110156112af57835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161127b565b509095945050505050565b901515815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b606081016004851061130057fe5b938152602081019290925260409091015290565b606081016008851061130057fe5b6020808252600d908201527f4252494447455f4641494c454400000000000000000000000000000000000000604082015260600190565b6020808252600f908201527f4252494447455f554e4445525041590000000000000000000000000000000000604082015260600190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156113c657600080fd5b604052919050565b60005b838110156113e95781810151838201526020016113d1565b838111156113f8576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146101db57600080fdfea365627a7a723158206dd983bb53b37fd1cff1b072611526e30d21c7f5e43678ebb603fa78d5a1c7b46c6578706572696d656e74616cf564736f6c63430005110040" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ERC20BridgeSampler.json b/packages/contract-artifacts/artifacts/ERC20BridgeSampler.json index 87d60e36db..74746d3371 100644 --- a/packages/contract-artifacts/artifacts/ERC20BridgeSampler.json +++ b/packages/contract-artifacts/artifacts/ERC20BridgeSampler.json @@ -471,10 +471,10 @@ }, "evm": { "bytecode": { - "object": "0x608060405234801561001057600080fd5b5061447d806100206000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806368be3cf2116100b2578063abffc76111610081578063d0eea06d11610066578063d0eea06d14610288578063e68248f71461029b578063e9a8e442146102ae57610136565b8063abffc76114610255578063c7f7142e1461026857610136565b806368be3cf2146101fc5780636dd6b78d1461021c57806398cdafba1461022f5780639f76ad351461024257610136565b80634703a7e61161010957806358306ba0116100ee57806358306ba0146101c357806360ee052a146101d657806364ee6ade146101e957610136565b80634703a7e61461019d5780634cb8e253146101b057610136565b80631796fb871461013b5780632d753aa414610164578063354152a31461017757806339b085ad1461018a575b600080fd5b61014e6101493660046139e0565b6102c1565b60405161015b91906140df565b60405180910390f35b61014e610172366004613691565b610492565b61014e6101853660046139e0565b610688565b61014e610198366004613be0565b610842565b61014e6101ab36600461380f565b610aff565b61014e6101be36600461380f565b610cdb565b61014e6101d1366004613717565b610e0e565b61014e6101e436600461380f565b610ea5565b61014e6101f736600461380f565b61115a565b61020f61020a366004613b74565b611320565b60405161015b9190614061565b61014e61022a36600461380f565b611466565b61014e61023d36600461378a565b61170e565b61014e610250366004613717565b611748565b61014e610263366004613a1e565b61194c565b61027b610276366004613647565b611b37565b60405161015b9190613e5f565b61014e61029636600461386f565b611c72565b61014e6102a9366004613a1e565b611ca3565b61014e6102bc366004613be0565b611e76565b6060600082519050806040519080825280602002602001820160405280156102f3578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff16630e71d1b9905060e01b8a8a8a888151811061035057fe5b602002602001015160405160240161036a93929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516103f39190613e43565b6000604051808303818686fa925050503d806000811461042f576040519150601f19603f3d011682016040523d82523d6000602084013e610434565b606091505b5090925090506000821561045d57818060200190516104569190810190613ca2565b9050610465565b505050610488565b8086858151811061047257fe5b60209081029190910101525050506001016102f9565b5050949350505050565b6060600082519050806040519080825280602002602001820160405280156104c4578160200160208202803883390190505b50915073ffffffffffffffffffffffffffffffffffffffff87166104e8575061067f565b60005b8181101561067c57600060608973ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff16636e79e133905060e01b8b8b8b8b898151811061054357fe5b602002602001015160405160240161055e9493929190613ee8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516105e79190613e43565b6000604051808303818686fa925050503d8060008114610623576040519150601f19603f3d011682016040523d82523d6000602084013e610628565b606091505b50909250905060008215610651578180602001905161064a9190810190613ca2565b9050610659565b50505061067c565b8086858151811061066657fe5b60209081029190910101525050506001016104eb565b50505b95945050505050565b6060600082519050806040519080825280602002602001820160405280156106ba578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff166307211ef7905060e01b8a8a8a888151811061071757fe5b602002602001015160405160240161073193929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107ba9190613e43565b6000604051808303818686fa925050503d80600081146107f6576040519150601f19603f3d011682016040523d82523d6000602084013e6107fb565b606091505b5090925090506000821561045d578180602001905161081d9190810190613ca2565b90508086858151811061082c57fe5b60209081029190910101525050506001016106c0565b6060835160405190808252806020026020018201604052801561086f578160200160208202803883390190505b50905060005b84518114610af75783818151811061088957fe5b602002602001015151600014806108b757508481815181106108a757fe5b6020026020010151608001516000145b806108d957508481815181106108c957fe5b602002602001015160a001516000145b156108fd5760008282815181106108ec57fe5b602002602001018181525050610aef565b600060608473ffffffffffffffffffffffffffffffffffffffff166207a1208673ffffffffffffffffffffffffffffffffffffffff1663e77286eb905060e01b89868151811061094957fe5b602002602001015189878151811061095d57fe5b602002602001015160405160240161097692919061419c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516109ff9190613e43565b6000604051808303818686fa925050503d8060008114610a3b576040519150601f19603f3d011682016040523d82523d6000602084013e610a40565b606091505b509150915081610a6b576000848481518110610a5857fe5b6020026020010181815250505050610aef565b610a73613340565b60008083806020019051610a8a9190810190613d27565b91945092509050600383516006811115610aa057fe5b141580610aab575080155b15610acf576000878781518110610abe57fe5b602002602001018181525050610ae9565b81878781518110610adc57fe5b6020026020010181815250505b50505050505b600101610875565b509392505050565b6060610b0b8385611f19565b8151604080518281526020808402820101909152818015610b36578160200160208202803883390190505b50915060005b81811015610cd25760006060610b50611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663ff1fd974905060e01b8a8a8a8881518110610b9a57fe5b6020026020010151604051602401610bb493929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610c3d9190613e43565b6000604051808303818686fa925050503d8060008114610c79576040519150601f19603f3d011682016040523d82523d6000602084013e610c7e565b606091505b50909250905060008215610ca75781806020019051610ca09190810190613ca2565b9050610caf565b505050610cd2565b80868581518110610cbc57fe5b6020908102919091010152505050600101610b3c565b50509392505050565b6060610ce78385611f19565b8151604080518281526020808402820101909152818015610d12578160200160208202803883390190505b5091506000610d1f611fa4565b90506000805b83811015610e03578273ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480610d9257508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15610dbc57610db58888888481518110610da857fe5b6020026020010151611fbc565b9150610de3565b610dcd8884888481518110610da857fe5b91508115610de357610de0838884611fbc565b91505b81858281518110610df057fe5b6020908102919091010152600101610d25565b505050509392505050565b60608273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610e7557508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15610e7f57610e9d565b6060610e8c86858561115a565b9050610e9984868361115a565b9150505b949350505050565b6060610eb18385611f19565b8151604080518281526020808402820101909152818015610edc578160200160208202803883390190505b5091506000610ee9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f2957610f24866127dc565b610f2c565b60005b90506000610f38611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f7857610f73866127dc565b610f7b565b60005b905060005b83811015610e03576001610f92611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156110295786516110089085907f2640f62c00000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b6020026020010151612874565b87848151811061101457fe5b60200260200101819350828152505050611146565b611031611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561109a5786516110089084907f59e9486200000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906110d39085907f59e9486200000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b92509050801561112957611108857f2640f62c0000000000000000000000000000000000000000000000000000000083612874565b88858151811061111457fe5b60200260200101819450828152505050611144565b600087848151811061113757fe5b6020026020010181815250505b505b806111515750610e03565b50600101610f80565b60606111668385611f19565b8151604080518281526020808402820101909152818015611191578160200160208202803883390190505b50915060005b81811015610cd257600060606111ab611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663144a2752905060e01b898b8a88815181106111f557fe5b602002602001015160405160240161120f93929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516112989190613e43565b6000604051808303818686fa925050503d80600081146112d4576040519150601f19603f3d011682016040523d82523d6000602084013e6112d9565b606091505b50909250905060008215610ca757818060200190516112fb9190810190613ca2565b90508086858151811061130a57fe5b6020908102919091010152505050600101611197565b60408051828152602080840282010190915260609082801561135657816020015b60608152602001906001900390816113415790505b50905060005b80831461145f57600060603086868581811061137457fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126113ae57600080fd5b9091016020810191503567ffffffffffffffff8111156113cd57600080fd5b368190038213156113dd57600080fd5b6040516113eb929190613e33565b600060405180830381855afa9150503d8060008114611426576040519150601f19603f3d011682016040523d82523d6000602084013e61142b565b606091505b50915091508161143d57805160208201fd5b8084848151811061144a57fe5b6020908102919091010152505060010161135c565b5092915050565b60606114728385611f19565b815160408051828152602080840282010190915281801561149d578160200160208202803883390190505b50915060006114aa611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146114ea576114e5866127dc565b6114ed565b60005b905060006114f9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461153957611534866127dc565b61153c565b60005b905060005b83811015610e03576001611553611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156115dd5786516115bc9085907f95b68fe700000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b8784815181106115c857fe5b602002602001018193508281525050506116fa565b6115e5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561164e5786516115bc9084907fcd7724c300000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906116879086907f95b68fe700000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b9250905080156116dd576116bc847fcd7724c30000000000000000000000000000000000000000000000000000000083612874565b8885815181106116c857fe5b602002602001018194508281525050506116f8565b60008784815181106116eb57fe5b6020026020010181815250505b505b806117055750610e03565b50600101611541565b606061173e858585857f9f76ad35000000000000000000000000000000000000000000000000000000008b6129bd565b9695505050505050565b60606000825190508060405190808252806020026020018201604052801561177a578160200160208202803883390190505b509150600061178a878787611b37565b905073ffffffffffffffffffffffffffffffffffffffff81166117af5750610e9d9050565b60005b8281101561194157600060608373ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff1663343fbcdd905060e01b8b8b8b888151811061180957fe5b602002602001015160405160240161182393929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516118ac9190613e43565b6000604051808303818686fa925050503d80600081146118e8576040519150601f19603f3d011682016040523d82523d6000602084013e6118ed565b606091505b50909250905060008215611916578180602001905161190f9190810190613ca2565b905061191e565b505050611941565b8087858151811061192b57fe5b60209081029190910101525050506001016117b2565b505050949350505050565b60606000825190508060405190808252806020026020018201604052801561197e578160200160208202803883390190505b50915060005b81811015611b2f5760006060611998612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f905060e01b8886815181106119e057fe5b60200260200101518a6040516024016119fa9291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611a839190613e43565b6000604051808303818686fa925050503d8060008114611abf576040519150601f19603f3d011682016040523d82523d6000602084013e611ac4565b606091505b50909250905060008215611b045781806020019051611ae69190810190613ae1565b600189510381518110611af557fe5b60200260200101519050611b0c565b505050611b2f565b80868581518110611b1957fe5b6020908102919091010152505050600101611984565b505092915050565b6040516000906060907f153f59970000000000000000000000000000000000000000000000000000000090611b729086908690602401613e80565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608673ffffffffffffffffffffffffffffffffffffffff1683604051611bfa9190613e43565b600060405180830381855afa9150503d8060008114611c35576040519150601f19603f3d011682016040523d82523d6000602084013e611c3a565b606091505b5091509150818015611c4d575080516020145b15611c6757611c5d81600c612b9b565b9350505050611c6b565b5050505b9392505050565b606061067f858585857f4cb8e2530000000000000000000000000000000000000000000000000000000060006129bd565b606060008251905080604051908082528060200260200182016040528015611cd5578160200160208202803883390190505b50915060005b81811015611b2f5760006060611cef612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff16631f00ca74905060e01b888681518110611d3757fe5b60200260200101518a604051602401611d519291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611dda9190613e43565b6000604051808303818686fa925050503d8060008114611e16576040519150601f19603f3d011682016040523d82523d6000602084013e611e1b565b606091505b50909250905060008215611b045781806020019051611e3d9190810190613ae1565b600081518110611e4957fe5b6020026020010151905080868581518110611e6057fe5b6020908102919091010152505050600101611cdb565b6060611e83848484610842565b905060005b8451811015610af757818181518110611e9d57fe5b6020026020010151600014611f1157611ef8828281518110611ebb57fe5b6020026020010151868381518110611ecf57fe5b602002602001015160a00151878481518110611ee757fe5b602002602001015160800151612be0565b828281518110611f0457fe5b6020026020010181815250505b600101611e88565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f9061413f565b60405180910390fd5b5050565b73794e6e91555438afc3ccf1c5076a74f42133d08d90565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b6000806000611fc9612c22565b9150915060608173ffffffffffffffffffffffffffffffffffffffff16633d3dc52c611ff3611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461202b578861202d565b875b6040518263ffffffff1660e01b81526004016120499190613e5f565b60006040518083038186803b15801561206157600080fd5b505afa158015612075573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526120bb9190810190613ae1565b604080516000808252602082019092529192505b8251811015612374576040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061213e907331e085afd48a1d6e51cc193153d625e8f0514c7f90600401613e5f565b60206040518083038186803b15801561215657600080fd5b505afa15801561216a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061218e9190810190613ca2565b83828151811061219a57fe5b6020026020010151148061227557506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061220f907310908c875d865c66f271f5d3949848971c9595c990600401613e5f565b60206040518083038186803b15801561222757600080fd5b505afa15801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061225f9190810190613ca2565b83828151811061226b57fe5b6020026020010151145b8061234757506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b906122e190731e158c0e93c30d24e918ef83d1e0be23595c3c0f90600401613e5f565b60206040518083038186803b1580156122f957600080fd5b505afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123319190810190613ca2565b83828151811061233d57fe5b6020026020010151145b1561236c576123698284838151811061235c57fe5b6020026020010151612d56565b91505b6001016120cf565b50606061237f611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415612496578473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8960028560006040519080825280602002602001820160405280156123fd578160200160208202803883390190505b506040518563ffffffff1660e01b815260040161241d9493929190613fdc565b60006040518083038186803b15801561243557600080fd5b505afa158015612449573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261248f9190810190613cba565b9050612576565b8473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8a60028560006040519080825280602002602001820160405280156124e1578160200160208202803883390190505b506040518563ffffffff1660e01b81526004016125019493929190613fdc565b60006040518083038186803b15801561251957600080fd5b505afa15801561252d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526125739190810190613cba565b90505b60006060612582612dec565b73ffffffffffffffffffffffffffffffffffffffff166216e3607f418436bc000000000000000000000000000000000000000000000000000000006125c5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff16146125fd578d612613565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b61261b611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612653578d612669565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b8d600089604051602401612681959493929190613f89565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161270a9190613e43565b6000604051808303818686fa925050503d8060008114612746576040519150601f19603f3d011682016040523d82523d6000602084013e61274b565b606091505b50909250905060008215612774578180602001905161276d9190810190613ca2565b9050612785565b600098505050505050505050611c6b565b60006127908c612e04565b60ff16905060006127a08e612e04565b60ff169050670de0b6b3a764000081600a0a83600a0a8e860202816127c157fe5b04816127c957fe5b049e9d5050505050505050505050505050565b60006127e6612e0f565b73ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b815260040161281e9190613e5f565b60206040518083038186803b15801561283657600080fd5b505afa15801561284a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061286e919081019061362b565b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff8516612897576129b5565b60608573ffffffffffffffffffffffffffffffffffffffff16620249f086866040516024016128c691906142e5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161294f9190613e43565b6000604051808303818686fa925050503d806000811461298b576040519150601f19603f3d011682016040523d82523d6000602084013e612990565b606091505b50909250905081156129b357808060200190516129b09190810190613ca2565b92505b505b935093915050565b60606129c98688611f19565b84516129d45761173e565b60008060008751604051908082528060200260200182016040528015612a04578160200160208202803883390190505b509350612a28898b8a600081518110612a1957fe5b60200260200101518989612e27565b925082612a38575061173e915050565b612a458a8a858989612e27565b915081612a55575061173e915050565b60005b8851811015612b755760005b8860200151811015612b3757612a8e8a8381518110612a7f57fe5b60200260200101518587612be0565b9450612aa589600001516127100161271087612be0565b94506000612ab68d8d888c8c612e27565b905080612ac35750612b37565b8094508a8381518110612ad257fe5b60200260200101518510612b2e5760008b8481518110612aee57fe5b60200260200101518c8581518110612b0257fe5b602002602001015187036127100281612b1757fe5b0490508a600001518111612b2c575050612b37565b505b50600101612a64565b50612b56898281518110612b4757fe5b60200260200101518486612be0565b858281518110612b6257fe5b6020908102919091010152600101612a58565b505050509695505050505050565b73f164fc0ec4e93095b804a4795bbe1e041497b92a90565b60008160140183511015612bc157612bc1612bbc60048551856014016130dc565b613181565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6000610e9d83612c16612bfa82600163ffffffff61318916565b612c0a888763ffffffff6131a816565b9063ffffffff6131d916565b9063ffffffff6131f516565b600080612c2d612dec565b73ffffffffffffffffffffffffffffffffffffffff1663b78b842d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c7257600080fd5b505afa158015612c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612caa919081019061362b565b73ffffffffffffffffffffffffffffffffffffffff1663c3a2a93a6040518163ffffffff1660e01b815260040160006040518083038186803b158015612cef57600080fd5b505afa158015612d03573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612d4991908101906138e1565b5091955093505050509091565b60608251600101604051908082528060200260200182016040528015612d86578160200160208202803883390190505b50905060005b8351811015612dc857838181518110612da157fe5b6020026020010151828281518110612db557fe5b6020908102919091010152600101612d8c565b508181600183510381518110612dda57fe5b60200260200101818152505092915050565b739aab3f75489902f3a48495025729a0af77d4b11e90565b600061286e8261321f565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9590565b6040805160018082528183019092526000916060918291602080830190803883390190505090508581600081518110612e5c57fe5b60209081029190910101527fffffffff0000000000000000000000000000000000000000000000000000000085167f4cb8e253000000000000000000000000000000000000000000000000000000001415612f6c576040517f4cb8e2530000000000000000000000000000000000000000000000000000000090612ee8908a908a908590602401613f1f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529150613025565b6040517f9f76ad350000000000000000000000000000000000000000000000000000000090612fa59086908b908b908690602401613ea7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915291505b600060603073ffffffffffffffffffffffffffffffffffffffff168460405161304e9190613e43565b600060405180830381855afa9150503d8060008114613089576040519150601f19603f3d011682016040523d82523d6000602084013e61308e565b606091505b5091509150816130a557600094505050505061067f565b808060200190516130b99190810190613ae1565b6000815181106130c557fe5b602002602001015194505050505095945050505050565b6060632800659560e01b8484846040516024016130fb93929190614113565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b6000828211156131a2576131a2612bbc600285856132f0565b50900390565b6000826131b75750600061286e565b828202828482816131c457fe5b0414611c6b57611c6b612bbc600186866132f0565b600082820183811015611c6b57611c6b612bbc600086866132f0565b60008161320b5761320b612bbc600385856132f0565b600082848161321657fe5b04949350505050565b600060129050600060608373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600481526020017f313ce567000000000000000000000000000000000000000000000000000000008152506040516132839190613e43565b600060405180830381855afa9150503d80600081146132be576040519150601f19603f3d011682016040523d82523d6000602084013e6132c3565b606091505b50915091508180156132d6575080516020145b156132e9576132e681600061330f565b92505b5050919050565b606063e946c1bb60e01b8484846040516024016130fb939291906140f2565b6000611c6b83836000816020018351101561333757613337612bbc60058551856020016130dc565b50016020015190565b6040805160608101909152806000815260006020820181905260409091015290565b803561286e81614418565b805161286e81614418565b600082601f830112613388578081fd5b813561339b61339682614379565b614352565b8181529150602080830190840160005b838110156133d8576133c3876020843589010161344b565b835260209283019291909101906001016133ab565b5050505092915050565b600082601f8301126133f2578081fd5b813561340061339682614379565b81815291506020808301908481018184028601820187101561342157600080fd5b60005b8481101561344057813584529282019290820190600101613424565b505050505092915050565b600082601f83011261345b578081fd5b813561346961339682614399565b915080825283602082850101111561348057600080fd5b8060208401602084013760009082016020015292915050565b8035600f81900b811461286e57600080fd5b6000604082840312156134bc578081fd5b6134c66040614352565b9050813581526020820135602082015292915050565b60006101c08083850312156134ef578182fd5b6134f881614352565b9150506135058383613362565b81526135148360208401613362565b60208201526135268360408401613362565b60408201526135388360608401613362565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff8082111561359a57600080fd5b6135a68683870161344b565b838501526101609250828501359150808211156135c257600080fd5b6135ce8683870161344b565b838501526101809250828501359150808211156135ea57600080fd5b6135f68683870161344b565b838501526101a092508285013591508082111561361257600080fd5b5061361f8582860161344b565b82840152505092915050565b60006020828403121561363c578081fd5b8151611c6b81614418565b60008060006060848603121561365b578182fd5b833561366681614418565b9250602084013561367681614418565b9150604084013561368681614418565b809150509250925092565b600080600080600060a086880312156136a8578283fd5b85356136b381614418565b945060208601356136c381614418565b935060408601356136d381614418565b925060608601356136e381614418565b9150608086013567ffffffffffffffff8111156136fe578182fd5b61370a888289016133e2565b9150509295509295909350565b6000806000806080858703121561372c578182fd5b843561373781614418565b9350602085013561374781614418565b9250604085013561375781614418565b9150606085013567ffffffffffffffff811115613772578182fd5b61377e878288016133e2565b91505092959194509250565b600080600080600060c086880312156137a1578283fd5b85356137ac81614418565b945060208601356137bc81614418565b935060408601356137cc81614418565b9250606086013567ffffffffffffffff8111156137e7578182fd5b6137f3888289016133e2565b92505061380387608088016134ab565b90509295509295909350565b600080600060608486031215613823578081fd5b833561382e81614418565b9250602084013561383e81614418565b9150604084013567ffffffffffffffff811115613859578182fd5b613865868287016133e2565b9150509250925092565b60008060008060a08587031215613884578182fd5b843561388f81614418565b9350602085013561389f81614418565b9250604085013567ffffffffffffffff8111156138ba578283fd5b6138c6878288016133e2565b9250506138d686606087016134ab565b905092959194509250565b60008060008060008060c087890312156138f9578384fd5b865161390481614418565b8096505060208088015161391781614418565b604089015190965061392881614418565b606089015190955061393981614418565b608089015190945061394a81614418565b60a089015190935067ffffffffffffffff811115613966578283fd5b8089018a601f820112613977578384fd5b8051915061398761339683614379565b82815283810190828501858502840186018e10156139a3578687fd5b8693505b848410156139cd576139b98e8261336d565b8352600193909301929185019185016139a7565b5080955050505050509295509295509295565b600080600080608085870312156139f5578182fd5b8435613a0081614418565b9350613a0f8660208701613499565b92506137578660408701613499565b60008060408385031215613a30578182fd5b823567ffffffffffffffff80821115613a47578384fd5b81850186601f820112613a58578485fd5b80359250613a6861339684614379565b80848252602080830192508084018a828389028701011115613a88578889fd5b8894505b86851015613ab3578035613a9f81614418565b845260019490940193928101928101613a8c565b509096508701359350505080821115613aca578283fd5b50613ad7858286016133e2565b9150509250929050565b60006020808385031215613af3578182fd5b825167ffffffffffffffff811115613b09578283fd5b80840185601f820112613b1a578384fd5b80519150613b2a61339683614379565b8281528381019082850185850284018601891015613b46578687fd5b8693505b84841015613b68578051835260019390930192918501918501613b4a565b50979650505050505050565b60008060208385031215613b86578182fd5b823567ffffffffffffffff80821115613b9d578384fd5b81850186601f820112613bae578485fd5b8035925081831115613bbe578485fd5b8660208085028301011115613bd1578485fd5b60200196919550909350505050565b600080600060608486031215613bf4578081fd5b833567ffffffffffffffff80821115613c0b578283fd5b81860187601f820112613c1c578384fd5b80359250613c2c61339684614379565b83815260208082019190838101875b87811015613c6457613c528d8484358901016134dc565b85529382019390820190600101613c3b565b50919850890135945050505080821115613c7c578283fd5b50613c8986828701613378565b925050613c998560408601613362565b90509250925092565b600060208284031215613cb3578081fd5b5051919050565b600060208284031215613ccb578081fd5b815167ffffffffffffffff811115613ce1578182fd5b80830184601f820112613cf2578283fd5b80519150613d0261339683614399565b828152856020848401011115613d16578384fd5b61067f8360208301602085016143db565b600080600083850360a0811215613d3c578182fd5b6060811215613d49578182fd5b50613d546060614352565b845160078110613d62578283fd5b815260208581015190820152604080860151908201526060850151608086015191945092508015158114613686578182fd5b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613ddf578151865260209586019590910190600101613dc1565b5093949350505050565b60008151808452613e018160208601602086016143db565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b60008251613e558184602087016143db565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401528085166040840152506080606083015261173e6080830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015292166040820152606081019190915260800190565b600073ffffffffffffffffffffffffffffffffffffffff80861683528085166020840152506060604083015261067f6060830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260ff8416606083015260a06080830152613fd160a0830184613de9565b979650505050505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526140048661440b565b60208381018790526080604085015285519182905285019060a0840190835b81811015614041578351835260209384019390920191600101614023565b505083810360608501526140558186613dae565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156140d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526140c0858351613de9565b94509285019290850190600101614086565b5092979650505050505050565b600060208252611c6b6020830184613dae565b606081016140ff8561440b565b938152602081019290925260409091015290565b60608101600885106140ff57fe5b600f93840b81529190920b6020820152604081019190915260600190565b60208082526025908201527f455243323042726964676553616d706c65722f494e56414c49445f544f4b454e60408201527f5f50414952000000000000000000000000000000000000000000000000000000606082015260800190565b6000604082526141b0604083018551613d94565b60208401516141c26060840182613d94565b5060408401516141d56080840182613d94565b5060608401516141e860a0840182613d94565b50608084015160c083015260a084015160e083015260c0840151610100818185015260e086015191506101208281860152818701519250610140915082828601528087015192505061016082818601528187015192506101c091506101808281870152614259610200870185613de9565b8289015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc092506101a08388830301818901526142988287613de9565b838b015196508489820301868a01526142b18188613de9565b955050808a0151955050505080858303016101e0860152506142d38183613de9565b8481036020860152613fd18187613de9565b90815260200190565b60006040820184835260406020840152808451808352606085019150602086019250835b8181101561434657835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614312565b50909695505050505050565b60405181810167ffffffffffffffff8111828210171561437157600080fd5b604052919050565b600067ffffffffffffffff82111561438f578081fd5b5060209081020190565b600067ffffffffffffffff8211156143af578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156143f65781810151838201526020016143de565b83811115614405576000848401525b50505050565b6004811061441557fe5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461441557600080fdfea365627a7a723158200ca872017075258b0971b4ddeb56cd71e136b20e6f3441f5aebf89a73cd1ca6a6c6578706572696d656e74616cf564736f6c63430005110040" + "object": "0x608060405234801561001057600080fd5b5061447d806100206000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806368be3cf2116100b2578063abffc76111610081578063d0eea06d11610066578063d0eea06d14610288578063e68248f71461029b578063e9a8e442146102ae57610136565b8063abffc76114610255578063c7f7142e1461026857610136565b806368be3cf2146101fc5780636dd6b78d1461021c57806398cdafba1461022f5780639f76ad351461024257610136565b80634703a7e61161010957806358306ba0116100ee57806358306ba0146101c357806360ee052a146101d657806364ee6ade146101e957610136565b80634703a7e61461019d5780634cb8e253146101b057610136565b80631796fb871461013b5780632d753aa414610164578063354152a31461017757806339b085ad1461018a575b600080fd5b61014e6101493660046139e0565b6102c1565b60405161015b91906140df565b60405180910390f35b61014e610172366004613691565b610492565b61014e6101853660046139e0565b610688565b61014e610198366004613be0565b610842565b61014e6101ab36600461380f565b610aff565b61014e6101be36600461380f565b610cdb565b61014e6101d1366004613717565b610e0e565b61014e6101e436600461380f565b610ea5565b61014e6101f736600461380f565b61115a565b61020f61020a366004613b74565b611320565b60405161015b9190614061565b61014e61022a36600461380f565b611466565b61014e61023d36600461378a565b61170e565b61014e610250366004613717565b611748565b61014e610263366004613a1e565b61194c565b61027b610276366004613647565b611b37565b60405161015b9190613e5f565b61014e61029636600461386f565b611c72565b61014e6102a9366004613a1e565b611ca3565b61014e6102bc366004613be0565b611e76565b6060600082519050806040519080825280602002602001820160405280156102f3578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff16630e71d1b9905060e01b8a8a8a888151811061035057fe5b602002602001015160405160240161036a93929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516103f39190613e43565b6000604051808303818686fa925050503d806000811461042f576040519150601f19603f3d011682016040523d82523d6000602084013e610434565b606091505b5090925090506000821561045d57818060200190516104569190810190613ca2565b9050610465565b505050610488565b8086858151811061047257fe5b60209081029190910101525050506001016102f9565b5050949350505050565b6060600082519050806040519080825280602002602001820160405280156104c4578160200160208202803883390190505b50915073ffffffffffffffffffffffffffffffffffffffff87166104e8575061067f565b60005b8181101561067c57600060608973ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff16636e79e133905060e01b8b8b8b8b898151811061054357fe5b602002602001015160405160240161055e9493929190613ee8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516105e79190613e43565b6000604051808303818686fa925050503d8060008114610623576040519150601f19603f3d011682016040523d82523d6000602084013e610628565b606091505b50909250905060008215610651578180602001905161064a9190810190613ca2565b9050610659565b50505061067c565b8086858151811061066657fe5b60209081029190910101525050506001016104eb565b50505b95945050505050565b6060600082519050806040519080825280602002602001820160405280156106ba578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff166307211ef7905060e01b8a8a8a888151811061071757fe5b602002602001015160405160240161073193929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107ba9190613e43565b6000604051808303818686fa925050503d80600081146107f6576040519150601f19603f3d011682016040523d82523d6000602084013e6107fb565b606091505b5090925090506000821561045d578180602001905161081d9190810190613ca2565b90508086858151811061082c57fe5b60209081029190910101525050506001016106c0565b6060835160405190808252806020026020018201604052801561086f578160200160208202803883390190505b50905060005b84518114610af75783818151811061088957fe5b602002602001015151600014806108b757508481815181106108a757fe5b6020026020010151608001516000145b806108d957508481815181106108c957fe5b602002602001015160a001516000145b156108fd5760008282815181106108ec57fe5b602002602001018181525050610aef565b600060608473ffffffffffffffffffffffffffffffffffffffff166207a1208673ffffffffffffffffffffffffffffffffffffffff1663e77286eb905060e01b89868151811061094957fe5b602002602001015189878151811061095d57fe5b602002602001015160405160240161097692919061419c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516109ff9190613e43565b6000604051808303818686fa925050503d8060008114610a3b576040519150601f19603f3d011682016040523d82523d6000602084013e610a40565b606091505b509150915081610a6b576000848481518110610a5857fe5b6020026020010181815250505050610aef565b610a73613340565b60008083806020019051610a8a9190810190613d27565b91945092509050600383516006811115610aa057fe5b141580610aab575080155b15610acf576000878781518110610abe57fe5b602002602001018181525050610ae9565b81878781518110610adc57fe5b6020026020010181815250505b50505050505b600101610875565b509392505050565b6060610b0b8385611f19565b8151604080518281526020808402820101909152818015610b36578160200160208202803883390190505b50915060005b81811015610cd25760006060610b50611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663ff1fd974905060e01b8a8a8a8881518110610b9a57fe5b6020026020010151604051602401610bb493929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610c3d9190613e43565b6000604051808303818686fa925050503d8060008114610c79576040519150601f19603f3d011682016040523d82523d6000602084013e610c7e565b606091505b50909250905060008215610ca75781806020019051610ca09190810190613ca2565b9050610caf565b505050610cd2565b80868581518110610cbc57fe5b6020908102919091010152505050600101610b3c565b50509392505050565b6060610ce78385611f19565b8151604080518281526020808402820101909152818015610d12578160200160208202803883390190505b5091506000610d1f611fa4565b90506000805b83811015610e03578273ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480610d9257508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15610dbc57610db58888888481518110610da857fe5b6020026020010151611fbc565b9150610de3565b610dcd8884888481518110610da857fe5b91508115610de357610de0838884611fbc565b91505b81858281518110610df057fe5b6020908102919091010152600101610d25565b505050509392505050565b60608273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610e7557508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15610e7f57610e9d565b6060610e8c86858561115a565b9050610e9984868361115a565b9150505b949350505050565b6060610eb18385611f19565b8151604080518281526020808402820101909152818015610edc578160200160208202803883390190505b5091506000610ee9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f2957610f24866127dc565b610f2c565b60005b90506000610f38611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f7857610f73866127dc565b610f7b565b60005b905060005b83811015610e03576001610f92611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156110295786516110089085907f2640f62c00000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b6020026020010151612874565b87848151811061101457fe5b60200260200101819350828152505050611146565b611031611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561109a5786516110089084907f59e9486200000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906110d39085907f59e9486200000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b92509050801561112957611108857f2640f62c0000000000000000000000000000000000000000000000000000000083612874565b88858151811061111457fe5b60200260200101819450828152505050611144565b600087848151811061113757fe5b6020026020010181815250505b505b806111515750610e03565b50600101610f80565b60606111668385611f19565b8151604080518281526020808402820101909152818015611191578160200160208202803883390190505b50915060005b81811015610cd257600060606111ab611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663144a2752905060e01b898b8a88815181106111f557fe5b602002602001015160405160240161120f93929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516112989190613e43565b6000604051808303818686fa925050503d80600081146112d4576040519150601f19603f3d011682016040523d82523d6000602084013e6112d9565b606091505b50909250905060008215610ca757818060200190516112fb9190810190613ca2565b90508086858151811061130a57fe5b6020908102919091010152505050600101611197565b60408051828152602080840282010190915260609082801561135657816020015b60608152602001906001900390816113415790505b50905060005b80831461145f57600060603086868581811061137457fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126113ae57600080fd5b9091016020810191503567ffffffffffffffff8111156113cd57600080fd5b368190038213156113dd57600080fd5b6040516113eb929190613e33565b600060405180830381855afa9150503d8060008114611426576040519150601f19603f3d011682016040523d82523d6000602084013e61142b565b606091505b50915091508161143d57805160208201fd5b8084848151811061144a57fe5b6020908102919091010152505060010161135c565b5092915050565b60606114728385611f19565b815160408051828152602080840282010190915281801561149d578160200160208202803883390190505b50915060006114aa611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146114ea576114e5866127dc565b6114ed565b60005b905060006114f9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461153957611534866127dc565b61153c565b60005b905060005b83811015610e03576001611553611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156115dd5786516115bc9085907f95b68fe700000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b8784815181106115c857fe5b602002602001018193508281525050506116fa565b6115e5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561164e5786516115bc9084907fcd7724c300000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906116879086907f95b68fe700000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b9250905080156116dd576116bc847fcd7724c30000000000000000000000000000000000000000000000000000000083612874565b8885815181106116c857fe5b602002602001018194508281525050506116f8565b60008784815181106116eb57fe5b6020026020010181815250505b505b806117055750610e03565b50600101611541565b606061173e858585857f9f76ad35000000000000000000000000000000000000000000000000000000008b6129bd565b9695505050505050565b60606000825190508060405190808252806020026020018201604052801561177a578160200160208202803883390190505b509150600061178a878787611b37565b905073ffffffffffffffffffffffffffffffffffffffff81166117af5750610e9d9050565b60005b8281101561194157600060608373ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff1663343fbcdd905060e01b8b8b8b888151811061180957fe5b602002602001015160405160240161182393929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516118ac9190613e43565b6000604051808303818686fa925050503d80600081146118e8576040519150601f19603f3d011682016040523d82523d6000602084013e6118ed565b606091505b50909250905060008215611916578180602001905161190f9190810190613ca2565b905061191e565b505050611941565b8087858151811061192b57fe5b60209081029190910101525050506001016117b2565b505050949350505050565b60606000825190508060405190808252806020026020018201604052801561197e578160200160208202803883390190505b50915060005b81811015611b2f5760006060611998612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f905060e01b8886815181106119e057fe5b60200260200101518a6040516024016119fa9291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611a839190613e43565b6000604051808303818686fa925050503d8060008114611abf576040519150601f19603f3d011682016040523d82523d6000602084013e611ac4565b606091505b50909250905060008215611b045781806020019051611ae69190810190613ae1565b600189510381518110611af557fe5b60200260200101519050611b0c565b505050611b2f565b80868581518110611b1957fe5b6020908102919091010152505050600101611984565b505092915050565b6040516000906060907f153f59970000000000000000000000000000000000000000000000000000000090611b729086908690602401613e80565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608673ffffffffffffffffffffffffffffffffffffffff1683604051611bfa9190613e43565b600060405180830381855afa9150503d8060008114611c35576040519150601f19603f3d011682016040523d82523d6000602084013e611c3a565b606091505b5091509150818015611c4d575080516020145b15611c6757611c5d81600c612b9b565b9350505050611c6b565b5050505b9392505050565b606061067f858585857f4cb8e2530000000000000000000000000000000000000000000000000000000060006129bd565b606060008251905080604051908082528060200260200182016040528015611cd5578160200160208202803883390190505b50915060005b81811015611b2f5760006060611cef612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff16631f00ca74905060e01b888681518110611d3757fe5b60200260200101518a604051602401611d519291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611dda9190613e43565b6000604051808303818686fa925050503d8060008114611e16576040519150601f19603f3d011682016040523d82523d6000602084013e611e1b565b606091505b50909250905060008215611b045781806020019051611e3d9190810190613ae1565b600081518110611e4957fe5b6020026020010151905080868581518110611e6057fe5b6020908102919091010152505050600101611cdb565b6060611e83848484610842565b905060005b8451811015610af757818181518110611e9d57fe5b6020026020010151600014611f1157611ef8828281518110611ebb57fe5b6020026020010151868381518110611ecf57fe5b602002602001015160a00151878481518110611ee757fe5b602002602001015160800151612be0565b828281518110611f0457fe5b6020026020010181815250505b600101611e88565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f9061413f565b60405180910390fd5b5050565b73794e6e91555438afc3ccf1c5076a74f42133d08d90565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b6000806000611fc9612c22565b9150915060608173ffffffffffffffffffffffffffffffffffffffff16633d3dc52c611ff3611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461202b578861202d565b875b6040518263ffffffff1660e01b81526004016120499190613e5f565b60006040518083038186803b15801561206157600080fd5b505afa158015612075573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526120bb9190810190613ae1565b604080516000808252602082019092529192505b8251811015612374576040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061213e907331e085afd48a1d6e51cc193153d625e8f0514c7f90600401613e5f565b60206040518083038186803b15801561215657600080fd5b505afa15801561216a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061218e9190810190613ca2565b83828151811061219a57fe5b6020026020010151148061227557506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061220f907310908c875d865c66f271f5d3949848971c9595c990600401613e5f565b60206040518083038186803b15801561222757600080fd5b505afa15801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061225f9190810190613ca2565b83828151811061226b57fe5b6020026020010151145b8061234757506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b906122e190731e158c0e93c30d24e918ef83d1e0be23595c3c0f90600401613e5f565b60206040518083038186803b1580156122f957600080fd5b505afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123319190810190613ca2565b83828151811061233d57fe5b6020026020010151145b1561236c576123698284838151811061235c57fe5b6020026020010151612d56565b91505b6001016120cf565b50606061237f611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415612496578473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8960028560006040519080825280602002602001820160405280156123fd578160200160208202803883390190505b506040518563ffffffff1660e01b815260040161241d9493929190613fdc565b60006040518083038186803b15801561243557600080fd5b505afa158015612449573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261248f9190810190613cba565b9050612576565b8473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8a60028560006040519080825280602002602001820160405280156124e1578160200160208202803883390190505b506040518563ffffffff1660e01b81526004016125019493929190613fdc565b60006040518083038186803b15801561251957600080fd5b505afa15801561252d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526125739190810190613cba565b90505b60006060612582612dec565b73ffffffffffffffffffffffffffffffffffffffff166216e3607f418436bc000000000000000000000000000000000000000000000000000000006125c5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff16146125fd578d612613565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b61261b611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612653578d612669565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b8d600089604051602401612681959493929190613f89565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161270a9190613e43565b6000604051808303818686fa925050503d8060008114612746576040519150601f19603f3d011682016040523d82523d6000602084013e61274b565b606091505b50909250905060008215612774578180602001905161276d9190810190613ca2565b9050612785565b600098505050505050505050611c6b565b60006127908c612e04565b60ff16905060006127a08e612e04565b60ff169050670de0b6b3a764000081600a0a83600a0a8e860202816127c157fe5b04816127c957fe5b049e9d5050505050505050505050505050565b60006127e6612e0f565b73ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b815260040161281e9190613e5f565b60206040518083038186803b15801561283657600080fd5b505afa15801561284a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061286e919081019061362b565b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff8516612897576129b5565b60608573ffffffffffffffffffffffffffffffffffffffff16620249f086866040516024016128c691906142e5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161294f9190613e43565b6000604051808303818686fa925050503d806000811461298b576040519150601f19603f3d011682016040523d82523d6000602084013e612990565b606091505b50909250905081156129b357808060200190516129b09190810190613ca2565b92505b505b935093915050565b60606129c98688611f19565b84516129d45761173e565b60008060008751604051908082528060200260200182016040528015612a04578160200160208202803883390190505b509350612a28898b8a600081518110612a1957fe5b60200260200101518989612e27565b925082612a38575061173e915050565b612a458a8a858989612e27565b915081612a55575061173e915050565b60005b8851811015612b755760005b8860200151811015612b3757612a8e8a8381518110612a7f57fe5b60200260200101518587612be0565b9450612aa589600001516127100161271087612be0565b94506000612ab68d8d888c8c612e27565b905080612ac35750612b37565b8094508a8381518110612ad257fe5b60200260200101518510612b2e5760008b8481518110612aee57fe5b60200260200101518c8581518110612b0257fe5b602002602001015187036127100281612b1757fe5b0490508a600001518111612b2c575050612b37565b505b50600101612a64565b50612b56898281518110612b4757fe5b60200260200101518486612be0565b858281518110612b6257fe5b6020908102919091010152600101612a58565b505050509695505050505050565b73f164fc0ec4e93095b804a4795bbe1e041497b92a90565b60008160140183511015612bc157612bc1612bbc60048551856014016130dc565b613181565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6000610e9d83612c16612bfa82600163ffffffff61318916565b612c0a888763ffffffff6131a816565b9063ffffffff6131d916565b9063ffffffff6131f516565b600080612c2d612dec565b73ffffffffffffffffffffffffffffffffffffffff1663b78b842d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c7257600080fd5b505afa158015612c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612caa919081019061362b565b73ffffffffffffffffffffffffffffffffffffffff1663c3a2a93a6040518163ffffffff1660e01b815260040160006040518083038186803b158015612cef57600080fd5b505afa158015612d03573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612d4991908101906138e1565b5091955093505050509091565b60608251600101604051908082528060200260200182016040528015612d86578160200160208202803883390190505b50905060005b8351811015612dc857838181518110612da157fe5b6020026020010151828281518110612db557fe5b6020908102919091010152600101612d8c565b508181600183510381518110612dda57fe5b60200260200101818152505092915050565b739aab3f75489902f3a48495025729a0af77d4b11e90565b600061286e8261321f565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9590565b6040805160018082528183019092526000916060918291602080830190803883390190505090508581600081518110612e5c57fe5b60209081029190910101527fffffffff0000000000000000000000000000000000000000000000000000000085167f4cb8e253000000000000000000000000000000000000000000000000000000001415612f6c576040517f4cb8e2530000000000000000000000000000000000000000000000000000000090612ee8908a908a908590602401613f1f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529150613025565b6040517f9f76ad350000000000000000000000000000000000000000000000000000000090612fa59086908b908b908690602401613ea7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915291505b600060603073ffffffffffffffffffffffffffffffffffffffff168460405161304e9190613e43565b600060405180830381855afa9150503d8060008114613089576040519150601f19603f3d011682016040523d82523d6000602084013e61308e565b606091505b5091509150816130a557600094505050505061067f565b808060200190516130b99190810190613ae1565b6000815181106130c557fe5b602002602001015194505050505095945050505050565b6060632800659560e01b8484846040516024016130fb93929190614113565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b6000828211156131a2576131a2612bbc600285856132f0565b50900390565b6000826131b75750600061286e565b828202828482816131c457fe5b0414611c6b57611c6b612bbc600186866132f0565b600082820183811015611c6b57611c6b612bbc600086866132f0565b60008161320b5761320b612bbc600385856132f0565b600082848161321657fe5b04949350505050565b600060129050600060608373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600481526020017f313ce567000000000000000000000000000000000000000000000000000000008152506040516132839190613e43565b600060405180830381855afa9150503d80600081146132be576040519150601f19603f3d011682016040523d82523d6000602084013e6132c3565b606091505b50915091508180156132d6575080516020145b156132e9576132e681600061330f565b92505b5050919050565b606063e946c1bb60e01b8484846040516024016130fb939291906140f2565b6000611c6b83836000816020018351101561333757613337612bbc60058551856020016130dc565b50016020015190565b6040805160608101909152806000815260006020820181905260409091015290565b803561286e81614418565b805161286e81614418565b600082601f830112613388578081fd5b813561339b61339682614379565b614352565b8181529150602080830190840160005b838110156133d8576133c3876020843589010161344b565b835260209283019291909101906001016133ab565b5050505092915050565b600082601f8301126133f2578081fd5b813561340061339682614379565b81815291506020808301908481018184028601820187101561342157600080fd5b60005b8481101561344057813584529282019290820190600101613424565b505050505092915050565b600082601f83011261345b578081fd5b813561346961339682614399565b915080825283602082850101111561348057600080fd5b8060208401602084013760009082016020015292915050565b8035600f81900b811461286e57600080fd5b6000604082840312156134bc578081fd5b6134c66040614352565b9050813581526020820135602082015292915050565b60006101c08083850312156134ef578182fd5b6134f881614352565b9150506135058383613362565b81526135148360208401613362565b60208201526135268360408401613362565b60408201526135388360608401613362565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff8082111561359a57600080fd5b6135a68683870161344b565b838501526101609250828501359150808211156135c257600080fd5b6135ce8683870161344b565b838501526101809250828501359150808211156135ea57600080fd5b6135f68683870161344b565b838501526101a092508285013591508082111561361257600080fd5b5061361f8582860161344b565b82840152505092915050565b60006020828403121561363c578081fd5b8151611c6b81614418565b60008060006060848603121561365b578182fd5b833561366681614418565b9250602084013561367681614418565b9150604084013561368681614418565b809150509250925092565b600080600080600060a086880312156136a8578283fd5b85356136b381614418565b945060208601356136c381614418565b935060408601356136d381614418565b925060608601356136e381614418565b9150608086013567ffffffffffffffff8111156136fe578182fd5b61370a888289016133e2565b9150509295509295909350565b6000806000806080858703121561372c578182fd5b843561373781614418565b9350602085013561374781614418565b9250604085013561375781614418565b9150606085013567ffffffffffffffff811115613772578182fd5b61377e878288016133e2565b91505092959194509250565b600080600080600060c086880312156137a1578283fd5b85356137ac81614418565b945060208601356137bc81614418565b935060408601356137cc81614418565b9250606086013567ffffffffffffffff8111156137e7578182fd5b6137f3888289016133e2565b92505061380387608088016134ab565b90509295509295909350565b600080600060608486031215613823578081fd5b833561382e81614418565b9250602084013561383e81614418565b9150604084013567ffffffffffffffff811115613859578182fd5b613865868287016133e2565b9150509250925092565b60008060008060a08587031215613884578182fd5b843561388f81614418565b9350602085013561389f81614418565b9250604085013567ffffffffffffffff8111156138ba578283fd5b6138c6878288016133e2565b9250506138d686606087016134ab565b905092959194509250565b60008060008060008060c087890312156138f9578384fd5b865161390481614418565b8096505060208088015161391781614418565b604089015190965061392881614418565b606089015190955061393981614418565b608089015190945061394a81614418565b60a089015190935067ffffffffffffffff811115613966578283fd5b8089018a601f820112613977578384fd5b8051915061398761339683614379565b82815283810190828501858502840186018e10156139a3578687fd5b8693505b848410156139cd576139b98e8261336d565b8352600193909301929185019185016139a7565b5080955050505050509295509295509295565b600080600080608085870312156139f5578182fd5b8435613a0081614418565b9350613a0f8660208701613499565b92506137578660408701613499565b60008060408385031215613a30578182fd5b823567ffffffffffffffff80821115613a47578384fd5b81850186601f820112613a58578485fd5b80359250613a6861339684614379565b80848252602080830192508084018a828389028701011115613a88578889fd5b8894505b86851015613ab3578035613a9f81614418565b845260019490940193928101928101613a8c565b509096508701359350505080821115613aca578283fd5b50613ad7858286016133e2565b9150509250929050565b60006020808385031215613af3578182fd5b825167ffffffffffffffff811115613b09578283fd5b80840185601f820112613b1a578384fd5b80519150613b2a61339683614379565b8281528381019082850185850284018601891015613b46578687fd5b8693505b84841015613b68578051835260019390930192918501918501613b4a565b50979650505050505050565b60008060208385031215613b86578182fd5b823567ffffffffffffffff80821115613b9d578384fd5b81850186601f820112613bae578485fd5b8035925081831115613bbe578485fd5b8660208085028301011115613bd1578485fd5b60200196919550909350505050565b600080600060608486031215613bf4578081fd5b833567ffffffffffffffff80821115613c0b578283fd5b81860187601f820112613c1c578384fd5b80359250613c2c61339684614379565b83815260208082019190838101875b87811015613c6457613c528d8484358901016134dc565b85529382019390820190600101613c3b565b50919850890135945050505080821115613c7c578283fd5b50613c8986828701613378565b925050613c998560408601613362565b90509250925092565b600060208284031215613cb3578081fd5b5051919050565b600060208284031215613ccb578081fd5b815167ffffffffffffffff811115613ce1578182fd5b80830184601f820112613cf2578283fd5b80519150613d0261339683614399565b828152856020848401011115613d16578384fd5b61067f8360208301602085016143db565b600080600083850360a0811215613d3c578182fd5b6060811215613d49578182fd5b50613d546060614352565b845160078110613d62578283fd5b815260208581015190820152604080860151908201526060850151608086015191945092508015158114613686578182fd5b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613ddf578151865260209586019590910190600101613dc1565b5093949350505050565b60008151808452613e018160208601602086016143db565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b60008251613e558184602087016143db565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401528085166040840152506080606083015261173e6080830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015292166040820152606081019190915260800190565b600073ffffffffffffffffffffffffffffffffffffffff80861683528085166020840152506060604083015261067f6060830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260ff8416606083015260a06080830152613fd160a0830184613de9565b979650505050505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526140048661440b565b60208381018790526080604085015285519182905285019060a0840190835b81811015614041578351835260209384019390920191600101614023565b505083810360608501526140558186613dae565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156140d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526140c0858351613de9565b94509285019290850190600101614086565b5092979650505050505050565b600060208252611c6b6020830184613dae565b606081016140ff8561440b565b938152602081019290925260409091015290565b60608101600885106140ff57fe5b600f93840b81529190920b6020820152604081019190915260600190565b60208082526025908201527f455243323042726964676553616d706c65722f494e56414c49445f544f4b454e60408201527f5f50414952000000000000000000000000000000000000000000000000000000606082015260800190565b6000604082526141b0604083018551613d94565b60208401516141c26060840182613d94565b5060408401516141d56080840182613d94565b5060608401516141e860a0840182613d94565b50608084015160c083015260a084015160e083015260c0840151610100818185015260e086015191506101208281860152818701519250610140915082828601528087015192505061016082818601528187015192506101c091506101808281870152614259610200870185613de9565b8289015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc092506101a08388830301818901526142988287613de9565b838b015196508489820301868a01526142b18188613de9565b955050808a0151955050505080858303016101e0860152506142d38183613de9565b8481036020860152613fd18187613de9565b90815260200190565b60006040820184835260406020840152808451808352606085019150602086019250835b8181101561434657835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614312565b50909695505050505050565b60405181810167ffffffffffffffff8111828210171561437157600080fd5b604052919050565b600067ffffffffffffffff82111561438f578081fd5b5060209081020190565b600067ffffffffffffffff8211156143af578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156143f65781810151838201526020016143de565b83811115614405576000848401525b50505050565b6004811061441557fe5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461441557600080fdfea365627a7a7231582067c5cc763deb33dec3babe92591793d68b6f9441aa149a37c465890b70b5bd1e6c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c806368be3cf2116100b2578063abffc76111610081578063d0eea06d11610066578063d0eea06d14610288578063e68248f71461029b578063e9a8e442146102ae57610136565b8063abffc76114610255578063c7f7142e1461026857610136565b806368be3cf2146101fc5780636dd6b78d1461021c57806398cdafba1461022f5780639f76ad351461024257610136565b80634703a7e61161010957806358306ba0116100ee57806358306ba0146101c357806360ee052a146101d657806364ee6ade146101e957610136565b80634703a7e61461019d5780634cb8e253146101b057610136565b80631796fb871461013b5780632d753aa414610164578063354152a31461017757806339b085ad1461018a575b600080fd5b61014e6101493660046139e0565b6102c1565b60405161015b91906140df565b60405180910390f35b61014e610172366004613691565b610492565b61014e6101853660046139e0565b610688565b61014e610198366004613be0565b610842565b61014e6101ab36600461380f565b610aff565b61014e6101be36600461380f565b610cdb565b61014e6101d1366004613717565b610e0e565b61014e6101e436600461380f565b610ea5565b61014e6101f736600461380f565b61115a565b61020f61020a366004613b74565b611320565b60405161015b9190614061565b61014e61022a36600461380f565b611466565b61014e61023d36600461378a565b61170e565b61014e610250366004613717565b611748565b61014e610263366004613a1e565b61194c565b61027b610276366004613647565b611b37565b60405161015b9190613e5f565b61014e61029636600461386f565b611c72565b61014e6102a9366004613a1e565b611ca3565b61014e6102bc366004613be0565b611e76565b6060600082519050806040519080825280602002602001820160405280156102f3578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff16630e71d1b9905060e01b8a8a8a888151811061035057fe5b602002602001015160405160240161036a93929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516103f39190613e43565b6000604051808303818686fa925050503d806000811461042f576040519150601f19603f3d011682016040523d82523d6000602084013e610434565b606091505b5090925090506000821561045d57818060200190516104569190810190613ca2565b9050610465565b505050610488565b8086858151811061047257fe5b60209081029190910101525050506001016102f9565b5050949350505050565b6060600082519050806040519080825280602002602001820160405280156104c4578160200160208202803883390190505b50915073ffffffffffffffffffffffffffffffffffffffff87166104e8575061067f565b60005b8181101561067c57600060608973ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff16636e79e133905060e01b8b8b8b8b898151811061054357fe5b602002602001015160405160240161055e9493929190613ee8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516105e79190613e43565b6000604051808303818686fa925050503d8060008114610623576040519150601f19603f3d011682016040523d82523d6000602084013e610628565b606091505b50909250905060008215610651578180602001905161064a9190810190613ca2565b9050610659565b50505061067c565b8086858151811061066657fe5b60209081029190910101525050506001016104eb565b50505b95945050505050565b6060600082519050806040519080825280602002602001820160405280156106ba578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff166307211ef7905060e01b8a8a8a888151811061071757fe5b602002602001015160405160240161073193929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107ba9190613e43565b6000604051808303818686fa925050503d80600081146107f6576040519150601f19603f3d011682016040523d82523d6000602084013e6107fb565b606091505b5090925090506000821561045d578180602001905161081d9190810190613ca2565b90508086858151811061082c57fe5b60209081029190910101525050506001016106c0565b6060835160405190808252806020026020018201604052801561086f578160200160208202803883390190505b50905060005b84518114610af75783818151811061088957fe5b602002602001015151600014806108b757508481815181106108a757fe5b6020026020010151608001516000145b806108d957508481815181106108c957fe5b602002602001015160a001516000145b156108fd5760008282815181106108ec57fe5b602002602001018181525050610aef565b600060608473ffffffffffffffffffffffffffffffffffffffff166207a1208673ffffffffffffffffffffffffffffffffffffffff1663e77286eb905060e01b89868151811061094957fe5b602002602001015189878151811061095d57fe5b602002602001015160405160240161097692919061419c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516109ff9190613e43565b6000604051808303818686fa925050503d8060008114610a3b576040519150601f19603f3d011682016040523d82523d6000602084013e610a40565b606091505b509150915081610a6b576000848481518110610a5857fe5b6020026020010181815250505050610aef565b610a73613340565b60008083806020019051610a8a9190810190613d27565b91945092509050600383516006811115610aa057fe5b141580610aab575080155b15610acf576000878781518110610abe57fe5b602002602001018181525050610ae9565b81878781518110610adc57fe5b6020026020010181815250505b50505050505b600101610875565b509392505050565b6060610b0b8385611f19565b8151604080518281526020808402820101909152818015610b36578160200160208202803883390190505b50915060005b81811015610cd25760006060610b50611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663ff1fd974905060e01b8a8a8a8881518110610b9a57fe5b6020026020010151604051602401610bb493929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610c3d9190613e43565b6000604051808303818686fa925050503d8060008114610c79576040519150601f19603f3d011682016040523d82523d6000602084013e610c7e565b606091505b50909250905060008215610ca75781806020019051610ca09190810190613ca2565b9050610caf565b505050610cd2565b80868581518110610cbc57fe5b6020908102919091010152505050600101610b3c565b50509392505050565b6060610ce78385611f19565b8151604080518281526020808402820101909152818015610d12578160200160208202803883390190505b5091506000610d1f611fa4565b90506000805b83811015610e03578273ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480610d9257508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15610dbc57610db58888888481518110610da857fe5b6020026020010151611fbc565b9150610de3565b610dcd8884888481518110610da857fe5b91508115610de357610de0838884611fbc565b91505b81858281518110610df057fe5b6020908102919091010152600101610d25565b505050509392505050565b60608273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610e7557508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15610e7f57610e9d565b6060610e8c86858561115a565b9050610e9984868361115a565b9150505b949350505050565b6060610eb18385611f19565b8151604080518281526020808402820101909152818015610edc578160200160208202803883390190505b5091506000610ee9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f2957610f24866127dc565b610f2c565b60005b90506000610f38611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f7857610f73866127dc565b610f7b565b60005b905060005b83811015610e03576001610f92611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156110295786516110089085907f2640f62c00000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b6020026020010151612874565b87848151811061101457fe5b60200260200101819350828152505050611146565b611031611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561109a5786516110089084907f59e9486200000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906110d39085907f59e9486200000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b92509050801561112957611108857f2640f62c0000000000000000000000000000000000000000000000000000000083612874565b88858151811061111457fe5b60200260200101819450828152505050611144565b600087848151811061113757fe5b6020026020010181815250505b505b806111515750610e03565b50600101610f80565b60606111668385611f19565b8151604080518281526020808402820101909152818015611191578160200160208202803883390190505b50915060005b81811015610cd257600060606111ab611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663144a2752905060e01b898b8a88815181106111f557fe5b602002602001015160405160240161120f93929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516112989190613e43565b6000604051808303818686fa925050503d80600081146112d4576040519150601f19603f3d011682016040523d82523d6000602084013e6112d9565b606091505b50909250905060008215610ca757818060200190516112fb9190810190613ca2565b90508086858151811061130a57fe5b6020908102919091010152505050600101611197565b60408051828152602080840282010190915260609082801561135657816020015b60608152602001906001900390816113415790505b50905060005b80831461145f57600060603086868581811061137457fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126113ae57600080fd5b9091016020810191503567ffffffffffffffff8111156113cd57600080fd5b368190038213156113dd57600080fd5b6040516113eb929190613e33565b600060405180830381855afa9150503d8060008114611426576040519150601f19603f3d011682016040523d82523d6000602084013e61142b565b606091505b50915091508161143d57805160208201fd5b8084848151811061144a57fe5b6020908102919091010152505060010161135c565b5092915050565b60606114728385611f19565b815160408051828152602080840282010190915281801561149d578160200160208202803883390190505b50915060006114aa611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146114ea576114e5866127dc565b6114ed565b60005b905060006114f9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461153957611534866127dc565b61153c565b60005b905060005b83811015610e03576001611553611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156115dd5786516115bc9085907f95b68fe700000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b8784815181106115c857fe5b602002602001018193508281525050506116fa565b6115e5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561164e5786516115bc9084907fcd7724c300000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906116879086907f95b68fe700000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b9250905080156116dd576116bc847fcd7724c30000000000000000000000000000000000000000000000000000000083612874565b8885815181106116c857fe5b602002602001018194508281525050506116f8565b60008784815181106116eb57fe5b6020026020010181815250505b505b806117055750610e03565b50600101611541565b606061173e858585857f9f76ad35000000000000000000000000000000000000000000000000000000008b6129bd565b9695505050505050565b60606000825190508060405190808252806020026020018201604052801561177a578160200160208202803883390190505b509150600061178a878787611b37565b905073ffffffffffffffffffffffffffffffffffffffff81166117af5750610e9d9050565b60005b8281101561194157600060608373ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff1663343fbcdd905060e01b8b8b8b888151811061180957fe5b602002602001015160405160240161182393929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516118ac9190613e43565b6000604051808303818686fa925050503d80600081146118e8576040519150601f19603f3d011682016040523d82523d6000602084013e6118ed565b606091505b50909250905060008215611916578180602001905161190f9190810190613ca2565b905061191e565b505050611941565b8087858151811061192b57fe5b60209081029190910101525050506001016117b2565b505050949350505050565b60606000825190508060405190808252806020026020018201604052801561197e578160200160208202803883390190505b50915060005b81811015611b2f5760006060611998612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f905060e01b8886815181106119e057fe5b60200260200101518a6040516024016119fa9291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611a839190613e43565b6000604051808303818686fa925050503d8060008114611abf576040519150601f19603f3d011682016040523d82523d6000602084013e611ac4565b606091505b50909250905060008215611b045781806020019051611ae69190810190613ae1565b600189510381518110611af557fe5b60200260200101519050611b0c565b505050611b2f565b80868581518110611b1957fe5b6020908102919091010152505050600101611984565b505092915050565b6040516000906060907f153f59970000000000000000000000000000000000000000000000000000000090611b729086908690602401613e80565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608673ffffffffffffffffffffffffffffffffffffffff1683604051611bfa9190613e43565b600060405180830381855afa9150503d8060008114611c35576040519150601f19603f3d011682016040523d82523d6000602084013e611c3a565b606091505b5091509150818015611c4d575080516020145b15611c6757611c5d81600c612b9b565b9350505050611c6b565b5050505b9392505050565b606061067f858585857f4cb8e2530000000000000000000000000000000000000000000000000000000060006129bd565b606060008251905080604051908082528060200260200182016040528015611cd5578160200160208202803883390190505b50915060005b81811015611b2f5760006060611cef612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff16631f00ca74905060e01b888681518110611d3757fe5b60200260200101518a604051602401611d519291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611dda9190613e43565b6000604051808303818686fa925050503d8060008114611e16576040519150601f19603f3d011682016040523d82523d6000602084013e611e1b565b606091505b50909250905060008215611b045781806020019051611e3d9190810190613ae1565b600081518110611e4957fe5b6020026020010151905080868581518110611e6057fe5b6020908102919091010152505050600101611cdb565b6060611e83848484610842565b905060005b8451811015610af757818181518110611e9d57fe5b6020026020010151600014611f1157611ef8828281518110611ebb57fe5b6020026020010151868381518110611ecf57fe5b602002602001015160a00151878481518110611ee757fe5b602002602001015160800151612be0565b828281518110611f0457fe5b6020026020010181815250505b600101611e88565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f9061413f565b60405180910390fd5b5050565b73794e6e91555438afc3ccf1c5076a74f42133d08d90565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b6000806000611fc9612c22565b9150915060608173ffffffffffffffffffffffffffffffffffffffff16633d3dc52c611ff3611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461202b578861202d565b875b6040518263ffffffff1660e01b81526004016120499190613e5f565b60006040518083038186803b15801561206157600080fd5b505afa158015612075573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526120bb9190810190613ae1565b604080516000808252602082019092529192505b8251811015612374576040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061213e907331e085afd48a1d6e51cc193153d625e8f0514c7f90600401613e5f565b60206040518083038186803b15801561215657600080fd5b505afa15801561216a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061218e9190810190613ca2565b83828151811061219a57fe5b6020026020010151148061227557506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061220f907310908c875d865c66f271f5d3949848971c9595c990600401613e5f565b60206040518083038186803b15801561222757600080fd5b505afa15801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061225f9190810190613ca2565b83828151811061226b57fe5b6020026020010151145b8061234757506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b906122e190731e158c0e93c30d24e918ef83d1e0be23595c3c0f90600401613e5f565b60206040518083038186803b1580156122f957600080fd5b505afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123319190810190613ca2565b83828151811061233d57fe5b6020026020010151145b1561236c576123698284838151811061235c57fe5b6020026020010151612d56565b91505b6001016120cf565b50606061237f611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415612496578473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8960028560006040519080825280602002602001820160405280156123fd578160200160208202803883390190505b506040518563ffffffff1660e01b815260040161241d9493929190613fdc565b60006040518083038186803b15801561243557600080fd5b505afa158015612449573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261248f9190810190613cba565b9050612576565b8473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8a60028560006040519080825280602002602001820160405280156124e1578160200160208202803883390190505b506040518563ffffffff1660e01b81526004016125019493929190613fdc565b60006040518083038186803b15801561251957600080fd5b505afa15801561252d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526125739190810190613cba565b90505b60006060612582612dec565b73ffffffffffffffffffffffffffffffffffffffff166216e3607f418436bc000000000000000000000000000000000000000000000000000000006125c5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff16146125fd578d612613565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b61261b611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612653578d612669565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b8d600089604051602401612681959493929190613f89565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161270a9190613e43565b6000604051808303818686fa925050503d8060008114612746576040519150601f19603f3d011682016040523d82523d6000602084013e61274b565b606091505b50909250905060008215612774578180602001905161276d9190810190613ca2565b9050612785565b600098505050505050505050611c6b565b60006127908c612e04565b60ff16905060006127a08e612e04565b60ff169050670de0b6b3a764000081600a0a83600a0a8e860202816127c157fe5b04816127c957fe5b049e9d5050505050505050505050505050565b60006127e6612e0f565b73ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b815260040161281e9190613e5f565b60206040518083038186803b15801561283657600080fd5b505afa15801561284a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061286e919081019061362b565b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff8516612897576129b5565b60608573ffffffffffffffffffffffffffffffffffffffff16620249f086866040516024016128c691906142e5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161294f9190613e43565b6000604051808303818686fa925050503d806000811461298b576040519150601f19603f3d011682016040523d82523d6000602084013e612990565b606091505b50909250905081156129b357808060200190516129b09190810190613ca2565b92505b505b935093915050565b60606129c98688611f19565b84516129d45761173e565b60008060008751604051908082528060200260200182016040528015612a04578160200160208202803883390190505b509350612a28898b8a600081518110612a1957fe5b60200260200101518989612e27565b925082612a38575061173e915050565b612a458a8a858989612e27565b915081612a55575061173e915050565b60005b8851811015612b755760005b8860200151811015612b3757612a8e8a8381518110612a7f57fe5b60200260200101518587612be0565b9450612aa589600001516127100161271087612be0565b94506000612ab68d8d888c8c612e27565b905080612ac35750612b37565b8094508a8381518110612ad257fe5b60200260200101518510612b2e5760008b8481518110612aee57fe5b60200260200101518c8581518110612b0257fe5b602002602001015187036127100281612b1757fe5b0490508a600001518111612b2c575050612b37565b505b50600101612a64565b50612b56898281518110612b4757fe5b60200260200101518486612be0565b858281518110612b6257fe5b6020908102919091010152600101612a58565b505050509695505050505050565b73f164fc0ec4e93095b804a4795bbe1e041497b92a90565b60008160140183511015612bc157612bc1612bbc60048551856014016130dc565b613181565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6000610e9d83612c16612bfa82600163ffffffff61318916565b612c0a888763ffffffff6131a816565b9063ffffffff6131d916565b9063ffffffff6131f516565b600080612c2d612dec565b73ffffffffffffffffffffffffffffffffffffffff1663b78b842d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c7257600080fd5b505afa158015612c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612caa919081019061362b565b73ffffffffffffffffffffffffffffffffffffffff1663c3a2a93a6040518163ffffffff1660e01b815260040160006040518083038186803b158015612cef57600080fd5b505afa158015612d03573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612d4991908101906138e1565b5091955093505050509091565b60608251600101604051908082528060200260200182016040528015612d86578160200160208202803883390190505b50905060005b8351811015612dc857838181518110612da157fe5b6020026020010151828281518110612db557fe5b6020908102919091010152600101612d8c565b508181600183510381518110612dda57fe5b60200260200101818152505092915050565b739aab3f75489902f3a48495025729a0af77d4b11e90565b600061286e8261321f565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9590565b6040805160018082528183019092526000916060918291602080830190803883390190505090508581600081518110612e5c57fe5b60209081029190910101527fffffffff0000000000000000000000000000000000000000000000000000000085167f4cb8e253000000000000000000000000000000000000000000000000000000001415612f6c576040517f4cb8e2530000000000000000000000000000000000000000000000000000000090612ee8908a908a908590602401613f1f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529150613025565b6040517f9f76ad350000000000000000000000000000000000000000000000000000000090612fa59086908b908b908690602401613ea7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915291505b600060603073ffffffffffffffffffffffffffffffffffffffff168460405161304e9190613e43565b600060405180830381855afa9150503d8060008114613089576040519150601f19603f3d011682016040523d82523d6000602084013e61308e565b606091505b5091509150816130a557600094505050505061067f565b808060200190516130b99190810190613ae1565b6000815181106130c557fe5b602002602001015194505050505095945050505050565b6060632800659560e01b8484846040516024016130fb93929190614113565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b6000828211156131a2576131a2612bbc600285856132f0565b50900390565b6000826131b75750600061286e565b828202828482816131c457fe5b0414611c6b57611c6b612bbc600186866132f0565b600082820183811015611c6b57611c6b612bbc600086866132f0565b60008161320b5761320b612bbc600385856132f0565b600082848161321657fe5b04949350505050565b600060129050600060608373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600481526020017f313ce567000000000000000000000000000000000000000000000000000000008152506040516132839190613e43565b600060405180830381855afa9150503d80600081146132be576040519150601f19603f3d011682016040523d82523d6000602084013e6132c3565b606091505b50915091508180156132d6575080516020145b156132e9576132e681600061330f565b92505b5050919050565b606063e946c1bb60e01b8484846040516024016130fb939291906140f2565b6000611c6b83836000816020018351101561333757613337612bbc60058551856020016130dc565b50016020015190565b6040805160608101909152806000815260006020820181905260409091015290565b803561286e81614418565b805161286e81614418565b600082601f830112613388578081fd5b813561339b61339682614379565b614352565b8181529150602080830190840160005b838110156133d8576133c3876020843589010161344b565b835260209283019291909101906001016133ab565b5050505092915050565b600082601f8301126133f2578081fd5b813561340061339682614379565b81815291506020808301908481018184028601820187101561342157600080fd5b60005b8481101561344057813584529282019290820190600101613424565b505050505092915050565b600082601f83011261345b578081fd5b813561346961339682614399565b915080825283602082850101111561348057600080fd5b8060208401602084013760009082016020015292915050565b8035600f81900b811461286e57600080fd5b6000604082840312156134bc578081fd5b6134c66040614352565b9050813581526020820135602082015292915050565b60006101c08083850312156134ef578182fd5b6134f881614352565b9150506135058383613362565b81526135148360208401613362565b60208201526135268360408401613362565b60408201526135388360608401613362565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff8082111561359a57600080fd5b6135a68683870161344b565b838501526101609250828501359150808211156135c257600080fd5b6135ce8683870161344b565b838501526101809250828501359150808211156135ea57600080fd5b6135f68683870161344b565b838501526101a092508285013591508082111561361257600080fd5b5061361f8582860161344b565b82840152505092915050565b60006020828403121561363c578081fd5b8151611c6b81614418565b60008060006060848603121561365b578182fd5b833561366681614418565b9250602084013561367681614418565b9150604084013561368681614418565b809150509250925092565b600080600080600060a086880312156136a8578283fd5b85356136b381614418565b945060208601356136c381614418565b935060408601356136d381614418565b925060608601356136e381614418565b9150608086013567ffffffffffffffff8111156136fe578182fd5b61370a888289016133e2565b9150509295509295909350565b6000806000806080858703121561372c578182fd5b843561373781614418565b9350602085013561374781614418565b9250604085013561375781614418565b9150606085013567ffffffffffffffff811115613772578182fd5b61377e878288016133e2565b91505092959194509250565b600080600080600060c086880312156137a1578283fd5b85356137ac81614418565b945060208601356137bc81614418565b935060408601356137cc81614418565b9250606086013567ffffffffffffffff8111156137e7578182fd5b6137f3888289016133e2565b92505061380387608088016134ab565b90509295509295909350565b600080600060608486031215613823578081fd5b833561382e81614418565b9250602084013561383e81614418565b9150604084013567ffffffffffffffff811115613859578182fd5b613865868287016133e2565b9150509250925092565b60008060008060a08587031215613884578182fd5b843561388f81614418565b9350602085013561389f81614418565b9250604085013567ffffffffffffffff8111156138ba578283fd5b6138c6878288016133e2565b9250506138d686606087016134ab565b905092959194509250565b60008060008060008060c087890312156138f9578384fd5b865161390481614418565b8096505060208088015161391781614418565b604089015190965061392881614418565b606089015190955061393981614418565b608089015190945061394a81614418565b60a089015190935067ffffffffffffffff811115613966578283fd5b8089018a601f820112613977578384fd5b8051915061398761339683614379565b82815283810190828501858502840186018e10156139a3578687fd5b8693505b848410156139cd576139b98e8261336d565b8352600193909301929185019185016139a7565b5080955050505050509295509295509295565b600080600080608085870312156139f5578182fd5b8435613a0081614418565b9350613a0f8660208701613499565b92506137578660408701613499565b60008060408385031215613a30578182fd5b823567ffffffffffffffff80821115613a47578384fd5b81850186601f820112613a58578485fd5b80359250613a6861339684614379565b80848252602080830192508084018a828389028701011115613a88578889fd5b8894505b86851015613ab3578035613a9f81614418565b845260019490940193928101928101613a8c565b509096508701359350505080821115613aca578283fd5b50613ad7858286016133e2565b9150509250929050565b60006020808385031215613af3578182fd5b825167ffffffffffffffff811115613b09578283fd5b80840185601f820112613b1a578384fd5b80519150613b2a61339683614379565b8281528381019082850185850284018601891015613b46578687fd5b8693505b84841015613b68578051835260019390930192918501918501613b4a565b50979650505050505050565b60008060208385031215613b86578182fd5b823567ffffffffffffffff80821115613b9d578384fd5b81850186601f820112613bae578485fd5b8035925081831115613bbe578485fd5b8660208085028301011115613bd1578485fd5b60200196919550909350505050565b600080600060608486031215613bf4578081fd5b833567ffffffffffffffff80821115613c0b578283fd5b81860187601f820112613c1c578384fd5b80359250613c2c61339684614379565b83815260208082019190838101875b87811015613c6457613c528d8484358901016134dc565b85529382019390820190600101613c3b565b50919850890135945050505080821115613c7c578283fd5b50613c8986828701613378565b925050613c998560408601613362565b90509250925092565b600060208284031215613cb3578081fd5b5051919050565b600060208284031215613ccb578081fd5b815167ffffffffffffffff811115613ce1578182fd5b80830184601f820112613cf2578283fd5b80519150613d0261339683614399565b828152856020848401011115613d16578384fd5b61067f8360208301602085016143db565b600080600083850360a0811215613d3c578182fd5b6060811215613d49578182fd5b50613d546060614352565b845160078110613d62578283fd5b815260208581015190820152604080860151908201526060850151608086015191945092508015158114613686578182fd5b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613ddf578151865260209586019590910190600101613dc1565b5093949350505050565b60008151808452613e018160208601602086016143db565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b60008251613e558184602087016143db565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401528085166040840152506080606083015261173e6080830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015292166040820152606081019190915260800190565b600073ffffffffffffffffffffffffffffffffffffffff80861683528085166020840152506060604083015261067f6060830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260ff8416606083015260a06080830152613fd160a0830184613de9565b979650505050505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526140048661440b565b60208381018790526080604085015285519182905285019060a0840190835b81811015614041578351835260209384019390920191600101614023565b505083810360608501526140558186613dae565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156140d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526140c0858351613de9565b94509285019290850190600101614086565b5092979650505050505050565b600060208252611c6b6020830184613dae565b606081016140ff8561440b565b938152602081019290925260409091015290565b60608101600885106140ff57fe5b600f93840b81529190920b6020820152604081019190915260600190565b60208082526025908201527f455243323042726964676553616d706c65722f494e56414c49445f544f4b454e60408201527f5f50414952000000000000000000000000000000000000000000000000000000606082015260800190565b6000604082526141b0604083018551613d94565b60208401516141c26060840182613d94565b5060408401516141d56080840182613d94565b5060608401516141e860a0840182613d94565b50608084015160c083015260a084015160e083015260c0840151610100818185015260e086015191506101208281860152818701519250610140915082828601528087015192505061016082818601528187015192506101c091506101808281870152614259610200870185613de9565b8289015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc092506101a08388830301818901526142988287613de9565b838b015196508489820301868a01526142b18188613de9565b955050808a0151955050505080858303016101e0860152506142d38183613de9565b8481036020860152613fd18187613de9565b90815260200190565b60006040820184835260406020840152808451808352606085019150602086019250835b8181101561434657835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614312565b50909695505050505050565b60405181810167ffffffffffffffff8111828210171561437157600080fd5b604052919050565b600067ffffffffffffffff82111561438f578081fd5b5060209081020190565b600067ffffffffffffffff8211156143af578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156143f65781810151838201526020016143de565b83811115614405576000848401525b50505050565b6004811061441557fe5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461441557600080fdfea365627a7a723158200ca872017075258b0971b4ddeb56cd71e136b20e6f3441f5aebf89a73cd1ca6a6c6578706572696d656e74616cf564736f6c63430005110040" + "object": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c806368be3cf2116100b2578063abffc76111610081578063d0eea06d11610066578063d0eea06d14610288578063e68248f71461029b578063e9a8e442146102ae57610136565b8063abffc76114610255578063c7f7142e1461026857610136565b806368be3cf2146101fc5780636dd6b78d1461021c57806398cdafba1461022f5780639f76ad351461024257610136565b80634703a7e61161010957806358306ba0116100ee57806358306ba0146101c357806360ee052a146101d657806364ee6ade146101e957610136565b80634703a7e61461019d5780634cb8e253146101b057610136565b80631796fb871461013b5780632d753aa414610164578063354152a31461017757806339b085ad1461018a575b600080fd5b61014e6101493660046139e0565b6102c1565b60405161015b91906140df565b60405180910390f35b61014e610172366004613691565b610492565b61014e6101853660046139e0565b610688565b61014e610198366004613be0565b610842565b61014e6101ab36600461380f565b610aff565b61014e6101be36600461380f565b610cdb565b61014e6101d1366004613717565b610e0e565b61014e6101e436600461380f565b610ea5565b61014e6101f736600461380f565b61115a565b61020f61020a366004613b74565b611320565b60405161015b9190614061565b61014e61022a36600461380f565b611466565b61014e61023d36600461378a565b61170e565b61014e610250366004613717565b611748565b61014e610263366004613a1e565b61194c565b61027b610276366004613647565b611b37565b60405161015b9190613e5f565b61014e61029636600461386f565b611c72565b61014e6102a9366004613a1e565b611ca3565b61014e6102bc366004613be0565b611e76565b6060600082519050806040519080825280602002602001820160405280156102f3578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff16630e71d1b9905060e01b8a8a8a888151811061035057fe5b602002602001015160405160240161036a93929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516103f39190613e43565b6000604051808303818686fa925050503d806000811461042f576040519150601f19603f3d011682016040523d82523d6000602084013e610434565b606091505b5090925090506000821561045d57818060200190516104569190810190613ca2565b9050610465565b505050610488565b8086858151811061047257fe5b60209081029190910101525050506001016102f9565b5050949350505050565b6060600082519050806040519080825280602002602001820160405280156104c4578160200160208202803883390190505b50915073ffffffffffffffffffffffffffffffffffffffff87166104e8575061067f565b60005b8181101561067c57600060608973ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff16636e79e133905060e01b8b8b8b8b898151811061054357fe5b602002602001015160405160240161055e9493929190613ee8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516105e79190613e43565b6000604051808303818686fa925050503d8060008114610623576040519150601f19603f3d011682016040523d82523d6000602084013e610628565b606091505b50909250905060008215610651578180602001905161064a9190810190613ca2565b9050610659565b50505061067c565b8086858151811061066657fe5b60209081029190910101525050506001016104eb565b50505b95945050505050565b6060600082519050806040519080825280602002602001820160405280156106ba578160200160208202803883390190505b50915060005b8181101561048857600060608873ffffffffffffffffffffffffffffffffffffffff16620927c0600073ffffffffffffffffffffffffffffffffffffffff166307211ef7905060e01b8a8a8a888151811061071757fe5b602002602001015160405160240161073193929190614121565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107ba9190613e43565b6000604051808303818686fa925050503d80600081146107f6576040519150601f19603f3d011682016040523d82523d6000602084013e6107fb565b606091505b5090925090506000821561045d578180602001905161081d9190810190613ca2565b90508086858151811061082c57fe5b60209081029190910101525050506001016106c0565b6060835160405190808252806020026020018201604052801561086f578160200160208202803883390190505b50905060005b84518114610af75783818151811061088957fe5b602002602001015151600014806108b757508481815181106108a757fe5b6020026020010151608001516000145b806108d957508481815181106108c957fe5b602002602001015160a001516000145b156108fd5760008282815181106108ec57fe5b602002602001018181525050610aef565b600060608473ffffffffffffffffffffffffffffffffffffffff166207a1208673ffffffffffffffffffffffffffffffffffffffff1663e77286eb905060e01b89868151811061094957fe5b602002602001015189878151811061095d57fe5b602002602001015160405160240161097692919061419c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516109ff9190613e43565b6000604051808303818686fa925050503d8060008114610a3b576040519150601f19603f3d011682016040523d82523d6000602084013e610a40565b606091505b509150915081610a6b576000848481518110610a5857fe5b6020026020010181815250505050610aef565b610a73613340565b60008083806020019051610a8a9190810190613d27565b91945092509050600383516006811115610aa057fe5b141580610aab575080155b15610acf576000878781518110610abe57fe5b602002602001018181525050610ae9565b81878781518110610adc57fe5b6020026020010181815250505b50505050505b600101610875565b509392505050565b6060610b0b8385611f19565b8151604080518281526020808402820101909152818015610b36578160200160208202803883390190505b50915060005b81811015610cd25760006060610b50611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663ff1fd974905060e01b8a8a8a8881518110610b9a57fe5b6020026020010151604051602401610bb493929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610c3d9190613e43565b6000604051808303818686fa925050503d8060008114610c79576040519150601f19603f3d011682016040523d82523d6000602084013e610c7e565b606091505b50909250905060008215610ca75781806020019051610ca09190810190613ca2565b9050610caf565b505050610cd2565b80868581518110610cbc57fe5b6020908102919091010152505050600101610b3c565b50509392505050565b6060610ce78385611f19565b8151604080518281526020808402820101909152818015610d12578160200160208202803883390190505b5091506000610d1f611fa4565b90506000805b83811015610e03578273ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480610d9257508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15610dbc57610db58888888481518110610da857fe5b6020026020010151611fbc565b9150610de3565b610dcd8884888481518110610da857fe5b91508115610de357610de0838884611fbc565b91505b81858281518110610df057fe5b6020908102919091010152600101610d25565b505050509392505050565b60608273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610e7557508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15610e7f57610e9d565b6060610e8c86858561115a565b9050610e9984868361115a565b9150505b949350505050565b6060610eb18385611f19565b8151604080518281526020808402820101909152818015610edc578160200160208202803883390190505b5091506000610ee9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f2957610f24866127dc565b610f2c565b60005b90506000610f38611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610f7857610f73866127dc565b610f7b565b60005b905060005b83811015610e03576001610f92611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156110295786516110089085907f2640f62c00000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b6020026020010151612874565b87848151811061101457fe5b60200260200101819350828152505050611146565b611031611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561109a5786516110089084907f59e9486200000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906110d39085907f59e9486200000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b92509050801561112957611108857f2640f62c0000000000000000000000000000000000000000000000000000000083612874565b88858151811061111457fe5b60200260200101819450828152505050611144565b600087848151811061113757fe5b6020026020010181815250505b505b806111515750610e03565b50600101610f80565b60606111668385611f19565b8151604080518281526020808402820101909152818015611191578160200160208202803883390190505b50915060005b81811015610cd257600060606111ab611f8c565b73ffffffffffffffffffffffffffffffffffffffff16620f4240600073ffffffffffffffffffffffffffffffffffffffff1663144a2752905060e01b898b8a88815181106111f557fe5b602002602001015160405160240161120f93929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516112989190613e43565b6000604051808303818686fa925050503d80600081146112d4576040519150601f19603f3d011682016040523d82523d6000602084013e6112d9565b606091505b50909250905060008215610ca757818060200190516112fb9190810190613ca2565b90508086858151811061130a57fe5b6020908102919091010152505050600101611197565b60408051828152602080840282010190915260609082801561135657816020015b60608152602001906001900390816113415790505b50905060005b80831461145f57600060603086868581811061137457fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126113ae57600080fd5b9091016020810191503567ffffffffffffffff8111156113cd57600080fd5b368190038213156113dd57600080fd5b6040516113eb929190613e33565b600060405180830381855afa9150503d8060008114611426576040519150601f19603f3d011682016040523d82523d6000602084013e61142b565b606091505b50915091508161143d57805160208201fd5b8084848151811061144a57fe5b6020908102919091010152505060010161135c565b5092915050565b60606114728385611f19565b815160408051828152602080840282010190915281801561149d578160200160208202803883390190505b50915060006114aa611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146114ea576114e5866127dc565b6114ed565b60005b905060006114f9611fa4565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461153957611534866127dc565b61153c565b60005b905060005b83811015610e03576001611553611fa4565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156115dd5786516115bc9085907f95b68fe700000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b8784815181106115c857fe5b602002602001018193508281525050506116fa565b6115e5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561164e5786516115bc9084907fcd7724c300000000000000000000000000000000000000000000000000000000908a9086908110610ffb57fe5b86516000906116879086907f95b68fe700000000000000000000000000000000000000000000000000000000908b9087908110610ffb57fe5b9250905080156116dd576116bc847fcd7724c30000000000000000000000000000000000000000000000000000000083612874565b8885815181106116c857fe5b602002602001018194508281525050506116f8565b60008784815181106116eb57fe5b6020026020010181815250505b505b806117055750610e03565b50600101611541565b606061173e858585857f9f76ad35000000000000000000000000000000000000000000000000000000008b6129bd565b9695505050505050565b60606000825190508060405190808252806020026020018201604052801561177a578160200160208202803883390190505b509150600061178a878787611b37565b905073ffffffffffffffffffffffffffffffffffffffff81166117af5750610e9d9050565b60005b8281101561194157600060608373ffffffffffffffffffffffffffffffffffffffff1662061a80600073ffffffffffffffffffffffffffffffffffffffff1663343fbcdd905060e01b8b8b8b888151811061180957fe5b602002602001015160405160240161182393929190613f58565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516118ac9190613e43565b6000604051808303818686fa925050503d80600081146118e8576040519150601f19603f3d011682016040523d82523d6000602084013e6118ed565b606091505b50909250905060008215611916578180602001905161190f9190810190613ca2565b905061191e565b505050611941565b8087858151811061192b57fe5b60209081029190910101525050506001016117b2565b505050949350505050565b60606000825190508060405190808252806020026020018201604052801561197e578160200160208202803883390190505b50915060005b81811015611b2f5760006060611998612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f905060e01b8886815181106119e057fe5b60200260200101518a6040516024016119fa9291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611a839190613e43565b6000604051808303818686fa925050503d8060008114611abf576040519150601f19603f3d011682016040523d82523d6000602084013e611ac4565b606091505b50909250905060008215611b045781806020019051611ae69190810190613ae1565b600189510381518110611af557fe5b60200260200101519050611b0c565b505050611b2f565b80868581518110611b1957fe5b6020908102919091010152505050600101611984565b505092915050565b6040516000906060907f153f59970000000000000000000000000000000000000000000000000000000090611b729086908690602401613e80565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608673ffffffffffffffffffffffffffffffffffffffff1683604051611bfa9190613e43565b600060405180830381855afa9150503d8060008114611c35576040519150601f19603f3d011682016040523d82523d6000602084013e611c3a565b606091505b5091509150818015611c4d575080516020145b15611c6757611c5d81600c612b9b565b9350505050611c6b565b5050505b9392505050565b606061067f858585857f4cb8e2530000000000000000000000000000000000000000000000000000000060006129bd565b606060008251905080604051908082528060200260200182016040528015611cd5578160200160208202803883390190505b50915060005b81811015611b2f5760006060611cef612b83565b73ffffffffffffffffffffffffffffffffffffffff16620249f0600073ffffffffffffffffffffffffffffffffffffffff16631f00ca74905060e01b888681518110611d3757fe5b60200260200101518a604051602401611d519291906142ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611dda9190613e43565b6000604051808303818686fa925050503d8060008114611e16576040519150601f19603f3d011682016040523d82523d6000602084013e611e1b565b606091505b50909250905060008215611b045781806020019051611e3d9190810190613ae1565b600081518110611e4957fe5b6020026020010151905080868581518110611e6057fe5b6020908102919091010152505050600101611cdb565b6060611e83848484610842565b905060005b8451811015610af757818181518110611e9d57fe5b6020026020010151600014611f1157611ef8828281518110611ebb57fe5b6020026020010151868381518110611ecf57fe5b602002602001015160a00151878481518110611ee757fe5b602002602001015160800151612be0565b828281518110611f0457fe5b6020026020010181815250505b600101611e88565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f9061413f565b60405180910390fd5b5050565b73794e6e91555438afc3ccf1c5076a74f42133d08d90565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b6000806000611fc9612c22565b9150915060608173ffffffffffffffffffffffffffffffffffffffff16633d3dc52c611ff3611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461202b578861202d565b875b6040518263ffffffff1660e01b81526004016120499190613e5f565b60006040518083038186803b15801561206157600080fd5b505afa158015612075573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526120bb9190810190613ae1565b604080516000808252602082019092529192505b8251811015612374576040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061213e907331e085afd48a1d6e51cc193153d625e8f0514c7f90600401613e5f565b60206040518083038186803b15801561215657600080fd5b505afa15801561216a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061218e9190810190613ca2565b83828151811061219a57fe5b6020026020010151148061227557506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b9061220f907310908c875d865c66f271f5d3949848971c9595c990600401613e5f565b60206040518083038186803b15801561222757600080fd5b505afa15801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061225f9190810190613ca2565b83828151811061226b57fe5b6020026020010151145b8061234757506040517f106e9a4b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063106e9a4b906122e190731e158c0e93c30d24e918ef83d1e0be23595c3c0f90600401613e5f565b60206040518083038186803b1580156122f957600080fd5b505afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123319190810190613ca2565b83828151811061233d57fe5b6020026020010151145b1561236c576123698284838151811061235c57fe5b6020026020010151612d56565b91505b6001016120cf565b50606061237f611fa4565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415612496578473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8960028560006040519080825280602002602001820160405280156123fd578160200160208202803883390190505b506040518563ffffffff1660e01b815260040161241d9493929190613fdc565b60006040518083038186803b15801561243557600080fd5b505afa158015612449573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261248f9190810190613cba565b9050612576565b8473ffffffffffffffffffffffffffffffffffffffff166381efcbdd8a60028560006040519080825280602002602001820160405280156124e1578160200160208202803883390190505b506040518563ffffffff1660e01b81526004016125019493929190613fdc565b60006040518083038186803b15801561251957600080fd5b505afa15801561252d573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526125739190810190613cba565b90505b60006060612582612dec565b73ffffffffffffffffffffffffffffffffffffffff166216e3607f418436bc000000000000000000000000000000000000000000000000000000006125c5611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff16146125fd578d612613565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b61261b611fa4565b73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612653578d612669565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b8d600089604051602401612681959493929190613f89565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161270a9190613e43565b6000604051808303818686fa925050503d8060008114612746576040519150601f19603f3d011682016040523d82523d6000602084013e61274b565b606091505b50909250905060008215612774578180602001905161276d9190810190613ca2565b9050612785565b600098505050505050505050611c6b565b60006127908c612e04565b60ff16905060006127a08e612e04565b60ff169050670de0b6b3a764000081600a0a83600a0a8e860202816127c157fe5b04816127c957fe5b049e9d5050505050505050505050505050565b60006127e6612e0f565b73ffffffffffffffffffffffffffffffffffffffff166306f2bf62836040518263ffffffff1660e01b815260040161281e9190613e5f565b60206040518083038186803b15801561283657600080fd5b505afa15801561284a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061286e919081019061362b565b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff8516612897576129b5565b60608573ffffffffffffffffffffffffffffffffffffffff16620249f086866040516024016128c691906142e5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161294f9190613e43565b6000604051808303818686fa925050503d806000811461298b576040519150601f19603f3d011682016040523d82523d6000602084013e612990565b606091505b50909250905081156129b357808060200190516129b09190810190613ca2565b92505b505b935093915050565b60606129c98688611f19565b84516129d45761173e565b60008060008751604051908082528060200260200182016040528015612a04578160200160208202803883390190505b509350612a28898b8a600081518110612a1957fe5b60200260200101518989612e27565b925082612a38575061173e915050565b612a458a8a858989612e27565b915081612a55575061173e915050565b60005b8851811015612b755760005b8860200151811015612b3757612a8e8a8381518110612a7f57fe5b60200260200101518587612be0565b9450612aa589600001516127100161271087612be0565b94506000612ab68d8d888c8c612e27565b905080612ac35750612b37565b8094508a8381518110612ad257fe5b60200260200101518510612b2e5760008b8481518110612aee57fe5b60200260200101518c8581518110612b0257fe5b602002602001015187036127100281612b1757fe5b0490508a600001518111612b2c575050612b37565b505b50600101612a64565b50612b56898281518110612b4757fe5b60200260200101518486612be0565b858281518110612b6257fe5b6020908102919091010152600101612a58565b505050509695505050505050565b73f164fc0ec4e93095b804a4795bbe1e041497b92a90565b60008160140183511015612bc157612bc1612bbc60048551856014016130dc565b613181565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6000610e9d83612c16612bfa82600163ffffffff61318916565b612c0a888763ffffffff6131a816565b9063ffffffff6131d916565b9063ffffffff6131f516565b600080612c2d612dec565b73ffffffffffffffffffffffffffffffffffffffff1663b78b842d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c7257600080fd5b505afa158015612c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612caa919081019061362b565b73ffffffffffffffffffffffffffffffffffffffff1663c3a2a93a6040518163ffffffff1660e01b815260040160006040518083038186803b158015612cef57600080fd5b505afa158015612d03573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612d4991908101906138e1565b5091955093505050509091565b60608251600101604051908082528060200260200182016040528015612d86578160200160208202803883390190505b50905060005b8351811015612dc857838181518110612da157fe5b6020026020010151828281518110612db557fe5b6020908102919091010152600101612d8c565b508181600183510381518110612dda57fe5b60200260200101818152505092915050565b739aab3f75489902f3a48495025729a0af77d4b11e90565b600061286e8261321f565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9590565b6040805160018082528183019092526000916060918291602080830190803883390190505090508581600081518110612e5c57fe5b60209081029190910101527fffffffff0000000000000000000000000000000000000000000000000000000085167f4cb8e253000000000000000000000000000000000000000000000000000000001415612f6c576040517f4cb8e2530000000000000000000000000000000000000000000000000000000090612ee8908a908a908590602401613f1f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529150613025565b6040517f9f76ad350000000000000000000000000000000000000000000000000000000090612fa59086908b908b908690602401613ea7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915291505b600060603073ffffffffffffffffffffffffffffffffffffffff168460405161304e9190613e43565b600060405180830381855afa9150503d8060008114613089576040519150601f19603f3d011682016040523d82523d6000602084013e61308e565b606091505b5091509150816130a557600094505050505061067f565b808060200190516130b99190810190613ae1565b6000815181106130c557fe5b602002602001015194505050505095945050505050565b6060632800659560e01b8484846040516024016130fb93929190614113565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b6000828211156131a2576131a2612bbc600285856132f0565b50900390565b6000826131b75750600061286e565b828202828482816131c457fe5b0414611c6b57611c6b612bbc600186866132f0565b600082820183811015611c6b57611c6b612bbc600086866132f0565b60008161320b5761320b612bbc600385856132f0565b600082848161321657fe5b04949350505050565b600060129050600060608373ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600481526020017f313ce567000000000000000000000000000000000000000000000000000000008152506040516132839190613e43565b600060405180830381855afa9150503d80600081146132be576040519150601f19603f3d011682016040523d82523d6000602084013e6132c3565b606091505b50915091508180156132d6575080516020145b156132e9576132e681600061330f565b92505b5050919050565b606063e946c1bb60e01b8484846040516024016130fb939291906140f2565b6000611c6b83836000816020018351101561333757613337612bbc60058551856020016130dc565b50016020015190565b6040805160608101909152806000815260006020820181905260409091015290565b803561286e81614418565b805161286e81614418565b600082601f830112613388578081fd5b813561339b61339682614379565b614352565b8181529150602080830190840160005b838110156133d8576133c3876020843589010161344b565b835260209283019291909101906001016133ab565b5050505092915050565b600082601f8301126133f2578081fd5b813561340061339682614379565b81815291506020808301908481018184028601820187101561342157600080fd5b60005b8481101561344057813584529282019290820190600101613424565b505050505092915050565b600082601f83011261345b578081fd5b813561346961339682614399565b915080825283602082850101111561348057600080fd5b8060208401602084013760009082016020015292915050565b8035600f81900b811461286e57600080fd5b6000604082840312156134bc578081fd5b6134c66040614352565b9050813581526020820135602082015292915050565b60006101c08083850312156134ef578182fd5b6134f881614352565b9150506135058383613362565b81526135148360208401613362565b60208201526135268360408401613362565b60408201526135388360608401613362565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff8082111561359a57600080fd5b6135a68683870161344b565b838501526101609250828501359150808211156135c257600080fd5b6135ce8683870161344b565b838501526101809250828501359150808211156135ea57600080fd5b6135f68683870161344b565b838501526101a092508285013591508082111561361257600080fd5b5061361f8582860161344b565b82840152505092915050565b60006020828403121561363c578081fd5b8151611c6b81614418565b60008060006060848603121561365b578182fd5b833561366681614418565b9250602084013561367681614418565b9150604084013561368681614418565b809150509250925092565b600080600080600060a086880312156136a8578283fd5b85356136b381614418565b945060208601356136c381614418565b935060408601356136d381614418565b925060608601356136e381614418565b9150608086013567ffffffffffffffff8111156136fe578182fd5b61370a888289016133e2565b9150509295509295909350565b6000806000806080858703121561372c578182fd5b843561373781614418565b9350602085013561374781614418565b9250604085013561375781614418565b9150606085013567ffffffffffffffff811115613772578182fd5b61377e878288016133e2565b91505092959194509250565b600080600080600060c086880312156137a1578283fd5b85356137ac81614418565b945060208601356137bc81614418565b935060408601356137cc81614418565b9250606086013567ffffffffffffffff8111156137e7578182fd5b6137f3888289016133e2565b92505061380387608088016134ab565b90509295509295909350565b600080600060608486031215613823578081fd5b833561382e81614418565b9250602084013561383e81614418565b9150604084013567ffffffffffffffff811115613859578182fd5b613865868287016133e2565b9150509250925092565b60008060008060a08587031215613884578182fd5b843561388f81614418565b9350602085013561389f81614418565b9250604085013567ffffffffffffffff8111156138ba578283fd5b6138c6878288016133e2565b9250506138d686606087016134ab565b905092959194509250565b60008060008060008060c087890312156138f9578384fd5b865161390481614418565b8096505060208088015161391781614418565b604089015190965061392881614418565b606089015190955061393981614418565b608089015190945061394a81614418565b60a089015190935067ffffffffffffffff811115613966578283fd5b8089018a601f820112613977578384fd5b8051915061398761339683614379565b82815283810190828501858502840186018e10156139a3578687fd5b8693505b848410156139cd576139b98e8261336d565b8352600193909301929185019185016139a7565b5080955050505050509295509295509295565b600080600080608085870312156139f5578182fd5b8435613a0081614418565b9350613a0f8660208701613499565b92506137578660408701613499565b60008060408385031215613a30578182fd5b823567ffffffffffffffff80821115613a47578384fd5b81850186601f820112613a58578485fd5b80359250613a6861339684614379565b80848252602080830192508084018a828389028701011115613a88578889fd5b8894505b86851015613ab3578035613a9f81614418565b845260019490940193928101928101613a8c565b509096508701359350505080821115613aca578283fd5b50613ad7858286016133e2565b9150509250929050565b60006020808385031215613af3578182fd5b825167ffffffffffffffff811115613b09578283fd5b80840185601f820112613b1a578384fd5b80519150613b2a61339683614379565b8281528381019082850185850284018601891015613b46578687fd5b8693505b84841015613b68578051835260019390930192918501918501613b4a565b50979650505050505050565b60008060208385031215613b86578182fd5b823567ffffffffffffffff80821115613b9d578384fd5b81850186601f820112613bae578485fd5b8035925081831115613bbe578485fd5b8660208085028301011115613bd1578485fd5b60200196919550909350505050565b600080600060608486031215613bf4578081fd5b833567ffffffffffffffff80821115613c0b578283fd5b81860187601f820112613c1c578384fd5b80359250613c2c61339684614379565b83815260208082019190838101875b87811015613c6457613c528d8484358901016134dc565b85529382019390820190600101613c3b565b50919850890135945050505080821115613c7c578283fd5b50613c8986828701613378565b925050613c998560408601613362565b90509250925092565b600060208284031215613cb3578081fd5b5051919050565b600060208284031215613ccb578081fd5b815167ffffffffffffffff811115613ce1578182fd5b80830184601f820112613cf2578283fd5b80519150613d0261339683614399565b828152856020848401011115613d16578384fd5b61067f8360208301602085016143db565b600080600083850360a0811215613d3c578182fd5b6060811215613d49578182fd5b50613d546060614352565b845160078110613d62578283fd5b815260208581015190820152604080860151908201526060850151608086015191945092508015158114613686578182fd5b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613ddf578151865260209586019590910190600101613dc1565b5093949350505050565b60008151808452613e018160208601602086016143db565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b60008251613e558184602087016143db565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401528085166040840152506080606083015261173e6080830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015292166040820152606081019190915260800190565b600073ffffffffffffffffffffffffffffffffffffffff80861683528085166020840152506060604083015261067f6060830184613dae565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260ff8416606083015260a06080830152613fd160a0830184613de9565b979650505050505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526140048661440b565b60208381018790526080604085015285519182905285019060a0840190835b81811015614041578351835260209384019390920191600101614023565b505083810360608501526140558186613dae565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156140d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526140c0858351613de9565b94509285019290850190600101614086565b5092979650505050505050565b600060208252611c6b6020830184613dae565b606081016140ff8561440b565b938152602081019290925260409091015290565b60608101600885106140ff57fe5b600f93840b81529190920b6020820152604081019190915260600190565b60208082526025908201527f455243323042726964676553616d706c65722f494e56414c49445f544f4b454e60408201527f5f50414952000000000000000000000000000000000000000000000000000000606082015260800190565b6000604082526141b0604083018551613d94565b60208401516141c26060840182613d94565b5060408401516141d56080840182613d94565b5060608401516141e860a0840182613d94565b50608084015160c083015260a084015160e083015260c0840151610100818185015260e086015191506101208281860152818701519250610140915082828601528087015192505061016082818601528187015192506101c091506101808281870152614259610200870185613de9565b8289015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc092506101a08388830301818901526142988287613de9565b838b015196508489820301868a01526142b18188613de9565b955050808a0151955050505080858303016101e0860152506142d38183613de9565b8481036020860152613fd18187613de9565b90815260200190565b60006040820184835260406020840152808451808352606085019150602086019250835b8181101561434657835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614312565b50909695505050505050565b60405181810167ffffffffffffffff8111828210171561437157600080fd5b604052919050565b600067ffffffffffffffff82111561438f578081fd5b5060209081020190565b600067ffffffffffffffff8211156143af578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156143f65781810151838201526020016143de565b83811115614405576000848401525b50505050565b6004811061441557fe5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461441557600080fdfea365627a7a7231582067c5cc763deb33dec3babe92591793d68b6f9441aa149a37c465890b70b5bd1e6c6578706572696d656e74616cf564736f6c63430005110040" } } }, diff --git a/packages/contract-artifacts/artifacts/ERC20Proxy.json b/packages/contract-artifacts/artifacts/ERC20Proxy.json index 7640022f15..e7b046b350 100644 --- a/packages/contract-artifacts/artifacts/ERC20Proxy.json +++ b/packages/contract-artifacts/artifacts/ERC20Proxy.json @@ -145,16 +145,16 @@ }, "evm": { "bytecode": { - "object": "0x6080604052600080546001600160a01b03191633179055610f42806100256000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b918161114610374578063d39de6e9146103bb578063f2fde38b14610413576100a3565b80639ad26744146102fe578063ae25532e14610337576100a3565b806342f1181e14610248578063494503d41461027d57806370712939146102c35780638da5cb5b146102f6575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e40000000000000000000000000000000000000000000000000000000081141561024257604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50602860043501357f23b872dd0000000000000000000000000000000000000000000000000000000060005260606024600437602060006064600080855af1600080511160203d14163d15178116905080156101cf57005b50507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b61027b6004803603602081101561025e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b005b61029a6004803603602081101561029357600080fd5b5035610632565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61027b600480360360208110156102d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610666565b61029a610959565b61027b6004803603604081101561031457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610975565b61033f610d26565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103a76004803603602081101561038a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d5c565b604080519115158252519081900360200190f35b6103c3610d71565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103ff5781810151838201526020016103e7565b505050509050019250505060405180910390f35b61027b6004803603602081101561042957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610de0565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561056157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061063f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610912578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107fa57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561090a57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061085257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061088557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906109049082610ec6565b50610912565b6001016107cc565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610a8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610aff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b2357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610bb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610c2c57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610c5f57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610cde9082610ec6565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4552433230546f6b656e28616464726573732900000000000000000000000000815290519081900360130190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610dd657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610dab575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610ec357600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610eea57600083815260209020610eea918101908301610eef565b505050565b610d5991905b80821115610f095760008155600101610ef5565b509056fea265627a7a723158204bb37ca9e295277efa1a86c8c8657d2e244a36136b4ec9d6b503ee59e784d07864736f6c63430005100032" + "object": "0x6080604052600080546001600160a01b03191633179055610f42806100256000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b918161114610374578063d39de6e9146103bb578063f2fde38b14610413576100a3565b80639ad26744146102fe578063ae25532e14610337576100a3565b806342f1181e14610248578063494503d41461027d57806370712939146102c35780638da5cb5b146102f6575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e40000000000000000000000000000000000000000000000000000000081141561024257604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50602860043501357f23b872dd0000000000000000000000000000000000000000000000000000000060005260606024600437602060006064600080855af1600080511160203d14163d15178116905080156101cf57005b50507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b61027b6004803603602081101561025e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b005b61029a6004803603602081101561029357600080fd5b5035610632565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61027b600480360360208110156102d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610666565b61029a610959565b61027b6004803603604081101561031457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610975565b61033f610d26565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103a76004803603602081101561038a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d5c565b604080519115158252519081900360200190f35b6103c3610d71565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103ff5781810151838201526020016103e7565b505050509050019250505060405180910390f35b61027b6004803603602081101561042957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610de0565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561056157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061063f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610912578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107fa57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561090a57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061085257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061088557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906109049082610ec6565b50610912565b6001016107cc565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610a8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610aff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b2357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610bb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610c2c57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610c5f57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610cde9082610ec6565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4552433230546f6b656e28616464726573732900000000000000000000000000815290519081900360130190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610dd657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610dab575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610ec357600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610eea57600083815260209020610eea918101908301610eef565b505050565b610d5991905b80821115610f095760008155600101610ef5565b509056fea265627a7a72315820678203a694f32d3201b9fd3b5f9810a05ec594f10e9d40116b1e4f5f5436460a64736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b918161114610374578063d39de6e9146103bb578063f2fde38b14610413576100a3565b80639ad26744146102fe578063ae25532e14610337576100a3565b806342f1181e14610248578063494503d41461027d57806370712939146102c35780638da5cb5b146102f6575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e40000000000000000000000000000000000000000000000000000000081141561024257604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50602860043501357f23b872dd0000000000000000000000000000000000000000000000000000000060005260606024600437602060006064600080855af1600080511160203d14163d15178116905080156101cf57005b50507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b61027b6004803603602081101561025e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b005b61029a6004803603602081101561029357600080fd5b5035610632565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61027b600480360360208110156102d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610666565b61029a610959565b61027b6004803603604081101561031457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610975565b61033f610d26565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103a76004803603602081101561038a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d5c565b604080519115158252519081900360200190f35b6103c3610d71565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103ff5781810151838201526020016103e7565b505050509050019250505060405180910390f35b61027b6004803603602081101561042957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610de0565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561056157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061063f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610912578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107fa57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561090a57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061085257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061088557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906109049082610ec6565b50610912565b6001016107cc565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610a8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610aff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b2357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610bb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610c2c57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610c5f57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610cde9082610ec6565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4552433230546f6b656e28616464726573732900000000000000000000000000815290519081900360130190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610dd657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610dab575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610ec357600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610eea57600083815260209020610eea918101908301610eef565b505050565b610d5991905b80821115610f095760008155600101610ef5565b509056fea265627a7a723158204bb37ca9e295277efa1a86c8c8657d2e244a36136b4ec9d6b503ee59e784d07864736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b918161114610374578063d39de6e9146103bb578063f2fde38b14610413576100a3565b80639ad26744146102fe578063ae25532e14610337576100a3565b806342f1181e14610248578063494503d41461027d57806370712939146102c35780638da5cb5b146102f6575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e40000000000000000000000000000000000000000000000000000000081141561024257604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50602860043501357f23b872dd0000000000000000000000000000000000000000000000000000000060005260606024600437602060006064600080855af1600080511160203d14163d15178116905080156101cf57005b50507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b61027b6004803603602081101561025e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610446565b005b61029a6004803603602081101561029357600080fd5b5035610632565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61027b600480360360208110156102d957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610666565b61029a610959565b61027b6004803603604081101561031457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610975565b61033f610d26565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103a76004803603602081101561038a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d5c565b604080519115158252519081900360200190f35b6103c3610d71565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103ff5781810151838201526020016103e7565b505050509050019250505060405180910390f35b61027b6004803603602081101561042957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610de0565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff161561056157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6002818154811061063f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1661078057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610912578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107fa57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561090a57600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061085257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061088557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906109049082610ec6565b50610912565b6001016107cc565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610a8f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610aff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b2357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610bb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610c2c57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610c5f57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610cde9082610ec6565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4552433230546f6b656e28616464726573732900000000000000000000000000815290519081900360130190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610dd657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610dab575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610ec357600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610eea57600083815260209020610eea918101908301610eef565b505050565b610d5991905b80821115610f095760008155600101610ef5565b509056fea265627a7a72315820678203a694f32d3201b9fd3b5f9810a05ec594f10e9d40116b1e4f5f5436460a64736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ERC20Token.json b/packages/contract-artifacts/artifacts/ERC20Token.json index 879e3fa59b..5d2b2deea3 100644 --- a/packages/contract-artifacts/artifacts/ERC20Token.json +++ b/packages/contract-artifacts/artifacts/ERC20Token.json @@ -135,16 +135,16 @@ }, "evm": { "bytecode": { - "object": "0x608060405234801561001057600080fd5b506106bf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806370a082311161005057806370a0823114610121578063a9059cbb14610154578063dd62ed3e1461018d57610072565b8063095ea7b31461007757806318160ddd146100c457806323b872dd146100de575b600080fd5b6100b06004803603604081101561008d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356101c8565b604080519115158252519081900360200190f35b6100cc61023b565b60408051918252519081900360200190f35b6100b0600480360360608110156100f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610241565b6100cc6004803603602081101561013757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661049d565b6100b06004803603604081101561016a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104c5565b6100cc600480360360408110156101a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610652565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025490565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156102d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033845290915290205482111561037457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054828101101561040a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80841660008181526020818152604080832080548801905593881680835284832080548890039055600182528483203384528252918490208054879003905583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b3360009081526020819052604081205482111561054357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110156105d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526001602090815260408083209390941682529190915220549056fea265627a7a723158202ec4258d9cc44c3c6b86d5f8b40d57549ae0a8d26d000de443ed7eb3f5fd6cf064736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b506106bf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806370a082311161005057806370a0823114610121578063a9059cbb14610154578063dd62ed3e1461018d57610072565b8063095ea7b31461007757806318160ddd146100c457806323b872dd146100de575b600080fd5b6100b06004803603604081101561008d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356101c8565b604080519115158252519081900360200190f35b6100cc61023b565b60408051918252519081900360200190f35b6100b0600480360360608110156100f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610241565b6100cc6004803603602081101561013757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661049d565b6100b06004803603604081101561016a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104c5565b6100cc600480360360408110156101a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610652565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025490565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156102d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033845290915290205482111561037457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054828101101561040a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80841660008181526020818152604080832080548801905593881680835284832080548890039055600182528483203384528252918490208054879003905583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b3360009081526020819052604081205482111561054357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110156105d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526001602090815260408083209390941682529190915220549056fea265627a7a7231582070f49f484b4453d39e46e7ea480d884eab704629143f1e11635201cbb0995b2164736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c806370a082311161005057806370a0823114610121578063a9059cbb14610154578063dd62ed3e1461018d57610072565b8063095ea7b31461007757806318160ddd146100c457806323b872dd146100de575b600080fd5b6100b06004803603604081101561008d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356101c8565b604080519115158252519081900360200190f35b6100cc61023b565b60408051918252519081900360200190f35b6100b0600480360360608110156100f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610241565b6100cc6004803603602081101561013757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661049d565b6100b06004803603604081101561016a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104c5565b6100cc600480360360408110156101a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610652565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025490565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156102d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033845290915290205482111561037457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054828101101561040a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80841660008181526020818152604080832080548801905593881680835284832080548890039055600182528483203384528252918490208054879003905583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b3360009081526020819052604081205482111561054357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110156105d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526001602090815260408083209390941682529190915220549056fea265627a7a723158202ec4258d9cc44c3c6b86d5f8b40d57549ae0a8d26d000de443ed7eb3f5fd6cf064736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c806370a082311161005057806370a0823114610121578063a9059cbb14610154578063dd62ed3e1461018d57610072565b8063095ea7b31461007757806318160ddd146100c457806323b872dd146100de575b600080fd5b6100b06004803603604081101561008d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356101c8565b604080519115158252519081900360200190f35b6100cc61023b565b60408051918252519081900360200190f35b6100b0600480360360608110156100f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610241565b6100cc6004803603602081101561013757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661049d565b6100b06004803603604081101561016a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104c5565b6100cc600480360360408110156101a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610652565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60025490565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120548211156102d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260016020908152604080832033845290915290205482111561037457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332305f494e53554646494349454e545f414c4c4f57414e434500000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054828101101561040a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80841660008181526020818152604080832080548801905593881680835284832080548890039055600182528483203384528252918490208054879003905583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b3360009081526020819052604081205482111561054357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45524332305f494e53554646494349454e545f42414c414e4345000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110156105d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f55494e543235365f4f564552464c4f5700000000000000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208054879003905573ffffffffffffffffffffffffffffffffffffffff871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526001602090815260408083209390941682529190915220549056fea265627a7a7231582070f49f484b4453d39e46e7ea480d884eab704629143f1e11635201cbb0995b2164736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ERC721Proxy.json b/packages/contract-artifacts/artifacts/ERC721Proxy.json index d5bd3a2a53..439ffca216 100644 --- a/packages/contract-artifacts/artifacts/ERC721Proxy.json +++ b/packages/contract-artifacts/artifacts/ERC721Proxy.json @@ -145,16 +145,16 @@ }, "evm": { "bytecode": { - "object": "0x6080604052600080546001600160a01b03191633179055610fb8806100256000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b9181611146103ea578063d39de6e914610431578063f2fde38b14610489576100a3565b80639ad2674414610374578063ae25532e146103ad576100a3565b806342f1181e146102be578063494503d4146102f357806370712939146103395780638da5cb5b1461036c575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e4000000000000000000000000000000000000000000000000000000008114156102b857604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50600160643503156101f4577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0e494e56414c49445f414d4f554e540000000000000000000000000000604052600060605260646000fd5b7f23b872dd000000000000000000000000000000000000000000000000000000006000526040602460043760043560206048820160443760288101356000806064600080855af1915050801561024657005b507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b6102f1600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104bc565b005b6103106004803603602081101561030957600080fd5b50356106a8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102f16004803603602081101561034f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106dc565b6103106109cf565b6102f16004803603604081101561038a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109eb565b6103b5610d9c565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b61041d6004803603602081101561040057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dd2565b604080519115158252519081900360200190f35b610439610de7565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047557818101518382015260200161045d565b505050509050019250505060405180910390f35b6102f16004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e56565b60005473ffffffffffffffffffffffffffffffffffffffff16331461054257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156105d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600281815481106106b557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff16331461076257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610988578173ffffffffffffffffffffffffffffffffffffffff166002828154811061087057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561098057600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108c857fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106108fb57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061097a9082610f3c565b50610988565b600101610842565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610b0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610b7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b9957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610c2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610ca257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cd557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d549082610f3c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f455243373231546f6b656e28616464726573732c75696e7432353629000000008152905190819003601c0190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610e4c57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e21575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610edc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610f3957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610f6057600083815260209020610f60918101908301610f65565b505050565b610dcf91905b80821115610f7f5760008155600101610f6b565b509056fea265627a7a723158207063225c1cfe96aa06390b4076204071575e7a6d33956ad3b4d0dd2cffdd4be864736f6c63430005100032" + "object": "0x6080604052600080546001600160a01b03191633179055610fb8806100256000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b9181611146103ea578063d39de6e914610431578063f2fde38b14610489576100a3565b80639ad2674414610374578063ae25532e146103ad576100a3565b806342f1181e146102be578063494503d4146102f357806370712939146103395780638da5cb5b1461036c575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e4000000000000000000000000000000000000000000000000000000008114156102b857604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50600160643503156101f4577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0e494e56414c49445f414d4f554e540000000000000000000000000000604052600060605260646000fd5b7f23b872dd000000000000000000000000000000000000000000000000000000006000526040602460043760043560206048820160443760288101356000806064600080855af1915050801561024657005b507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b6102f1600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104bc565b005b6103106004803603602081101561030957600080fd5b50356106a8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102f16004803603602081101561034f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106dc565b6103106109cf565b6102f16004803603604081101561038a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109eb565b6103b5610d9c565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b61041d6004803603602081101561040057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dd2565b604080519115158252519081900360200190f35b610439610de7565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047557818101518382015260200161045d565b505050509050019250505060405180910390f35b6102f16004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e56565b60005473ffffffffffffffffffffffffffffffffffffffff16331461054257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156105d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600281815481106106b557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff16331461076257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610988578173ffffffffffffffffffffffffffffffffffffffff166002828154811061087057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561098057600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108c857fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106108fb57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061097a9082610f3c565b50610988565b600101610842565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610b0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610b7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b9957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610c2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610ca257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cd557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d549082610f3c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f455243373231546f6b656e28616464726573732c75696e7432353629000000008152905190819003601c0190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610e4c57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e21575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610edc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610f3957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610f6057600083815260209020610f60918101908301610f65565b505050565b610dcf91905b80821115610f7f5760008155600101610f6b565b509056fea265627a7a72315820885e95f9e54ae277ee6492abfec2fd9d558f38a9024b66a84e2eb7e967b9173464736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b9181611146103ea578063d39de6e914610431578063f2fde38b14610489576100a3565b80639ad2674414610374578063ae25532e146103ad576100a3565b806342f1181e146102be578063494503d4146102f357806370712939146103395780638da5cb5b1461036c575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e4000000000000000000000000000000000000000000000000000000008114156102b857604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50600160643503156101f4577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0e494e56414c49445f414d4f554e540000000000000000000000000000604052600060605260646000fd5b7f23b872dd000000000000000000000000000000000000000000000000000000006000526040602460043760043560206048820160443760288101356000806064600080855af1915050801561024657005b507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b6102f1600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104bc565b005b6103106004803603602081101561030957600080fd5b50356106a8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102f16004803603602081101561034f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106dc565b6103106109cf565b6102f16004803603604081101561038a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109eb565b6103b5610d9c565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b61041d6004803603602081101561040057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dd2565b604080519115158252519081900360200190f35b610439610de7565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047557818101518382015260200161045d565b505050509050019250505060405180910390f35b6102f16004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e56565b60005473ffffffffffffffffffffffffffffffffffffffff16331461054257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156105d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600281815481106106b557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff16331461076257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610988578173ffffffffffffffffffffffffffffffffffffffff166002828154811061087057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561098057600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108c857fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106108fb57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061097a9082610f3c565b50610988565b600101610842565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610b0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610b7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b9957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610c2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610ca257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cd557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d549082610f3c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f455243373231546f6b656e28616464726573732c75696e7432353629000000008152905190819003601c0190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610e4c57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e21575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610edc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610f3957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610f6057600083815260209020610f60918101908301610f65565b505050565b610dcf91905b80821115610f7f5760008155600101610f6b565b509056fea265627a7a723158207063225c1cfe96aa06390b4076204071575e7a6d33956ad3b4d0dd2cffdd4be864736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80639ad2674411610076578063b91816111161005b578063b9181611146103ea578063d39de6e914610431578063f2fde38b14610489576100a3565b80639ad2674414610374578063ae25532e146103ad576100a3565b806342f1181e146102be578063494503d4146102f357806370712939146103395780638da5cb5b1461036c575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e4000000000000000000000000000000000000000000000000000000008114156102b857604080513381526001602082015290812054610177577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b50600160643503156101f4577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0e494e56414c49445f414d4f554e540000000000000000000000000000604052600060605260646000fd5b7f23b872dd000000000000000000000000000000000000000000000000000000006000526040602460043760043560206048820160443760288101356000806064600080855af1915050801561024657005b507f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f5452414e534645525f4641494c454400000000000000000000000000604052600060605260646000fd5b50600080fd5b6102f1600480360360208110156102d457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104bc565b005b6103106004803603602081101561030957600080fd5b50356106a8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6102f16004803603602081101561034f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106dc565b6103106109cf565b6102f16004803603604081101561038a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109eb565b6103b5610d9c565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b61041d6004803603602081101561040057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dd2565b604080519115158252519081900360200190f35b610439610de7565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561047557818101518382015260200161045d565b505050509050019250505060405180910390f35b6102f16004803603602081101561049f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e56565b60005473ffffffffffffffffffffffffffffffffffffffff16331461054257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156105d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600281815481106106b557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60005473ffffffffffffffffffffffffffffffffffffffff16331461076257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107f657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600254811015610988578173ffffffffffffffffffffffffffffffffffffffff166002828154811061087057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561098057600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108c857fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106108fb57fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061097a9082610f3c565b50610988565b600101610842565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610b0557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6002548110610b7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610b9957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610c2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610ca257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cd557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d549082610f3c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f455243373231546f6b656e28616464726573732c75696e7432353629000000008152905190819003601c0190205b90565b60016020526000908152604090205460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015610e4c57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e21575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610edc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811615610f3957600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b815481835581811115610f6057600083815260209020610f60918101908301610f65565b505050565b610dcf91905b80821115610f7f5760008155600101610f6b565b509056fea265627a7a72315820885e95f9e54ae277ee6492abfec2fd9d558f38a9024b66a84e2eb7e967b9173464736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ERC721Token.json b/packages/contract-artifacts/artifacts/ERC721Token.json index e17e12faca..776ed3a93e 100644 --- a/packages/contract-artifacts/artifacts/ERC721Token.json +++ b/packages/contract-artifacts/artifacts/ERC721Token.json @@ -201,16 +201,16 @@ }, "evm": { "bytecode": { - "object": "0x608060405234801561001057600080fd5b50610ec4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80636352211e11610076578063a22cb4651161005b578063a22cb46514610211578063b88d4fde1461024c578063e985e9c5146102e9576100a3565b80636352211e146101af57806370a08231146101cc576100a3565b8063081812fc146100a8578063095ea7b3146100ee57806323b872dd1461012957806342842e0e1461016c575b600080fd5b6100c5600480360360208110156100be57600080fd5b5035610338565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101276004803603604081101561010457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610360565b005b6101276004803603606081101561013f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610482565b6101276004803603606081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107f5565b6100c5600480360360208110156101c557600080fd5b503561098f565b6101ff600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a26565b60408051918252519081900360200190f35b6101276004803603604081101561022757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610ad3565b6101276004803603608081101561026257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156102aa57600080fd5b8201836020820111156102bc57600080fd5b803590602001918460018302840111640100000000831117156102de57600080fd5b509092509050610b6c565b610324600480360360408110156102ff57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610d37565b604080519115158252519081900360200190f35b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061036b8261098f565b90503373ffffffffffffffffffffffffffffffffffffffff8216148061039657506103968133610d37565b61040157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526001602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661050457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061050f8261098f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105ab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006105b784610338565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f88383610d37565b8061062e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61069957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156106ea57600084815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b60008481526020818152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a811691909117909155891683526002909152902054610753906001610d72565b73ffffffffffffffffffffffffffffffffffffffff808816600090815260026020526040808220939093559087168152205461079690600163ffffffff610d9616565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260026020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610800838383610482565b813b801561098957604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b505050506040513d60208110156108bf57600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461098757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610aaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610b77858585610482565b833b8015610d2f576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610c3b57600080fd5b505af1158015610c4f573d6000803e3d6000fd5b505050506040513d6020811015610c6557600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610d2d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260036020908152604080832093909416825291909152205460ff1690565b600082821115610d9057610d90610d8b60028585610db9565b610e58565b50900390565b600082820183811015610db257610db2610d8b60008686610db9565b9392505050565b606063e946c1bb60e01b84848460405160240180846003811115610dd957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a7231582089d21f5e9829efe55d287f8326465b302d41c66fe1527985ca8d29a21f1932b364736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50610ec4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80636352211e11610076578063a22cb4651161005b578063a22cb46514610211578063b88d4fde1461024c578063e985e9c5146102e9576100a3565b80636352211e146101af57806370a08231146101cc576100a3565b8063081812fc146100a8578063095ea7b3146100ee57806323b872dd1461012957806342842e0e1461016c575b600080fd5b6100c5600480360360208110156100be57600080fd5b5035610338565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101276004803603604081101561010457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610360565b005b6101276004803603606081101561013f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610482565b6101276004803603606081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107f5565b6100c5600480360360208110156101c557600080fd5b503561098f565b6101ff600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a26565b60408051918252519081900360200190f35b6101276004803603604081101561022757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610ad3565b6101276004803603608081101561026257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156102aa57600080fd5b8201836020820111156102bc57600080fd5b803590602001918460018302840111640100000000831117156102de57600080fd5b509092509050610b6c565b610324600480360360408110156102ff57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610d37565b604080519115158252519081900360200190f35b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061036b8261098f565b90503373ffffffffffffffffffffffffffffffffffffffff8216148061039657506103968133610d37565b61040157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526001602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661050457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061050f8261098f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105ab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006105b784610338565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f88383610d37565b8061062e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61069957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156106ea57600084815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b60008481526020818152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a811691909117909155891683526002909152902054610753906001610d72565b73ffffffffffffffffffffffffffffffffffffffff808816600090815260026020526040808220939093559087168152205461079690600163ffffffff610d9616565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260026020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610800838383610482565b813b801561098957604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b505050506040513d60208110156108bf57600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461098757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610aaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610b77858585610482565b833b8015610d2f576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610c3b57600080fd5b505af1158015610c4f573d6000803e3d6000fd5b505050506040513d6020811015610c6557600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610d2d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260036020908152604080832093909416825291909152205460ff1690565b600082821115610d9057610d90610d8b60028585610db9565b610e58565b50900390565b600082820183811015610db257610db2610d8b60008686610db9565b9392505050565b606063e946c1bb60e01b84848460405160240180846003811115610dd957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a72315820fde66f1d6d6a3390b055e4bc98c4fb3e4c99623222871b43459555accf23b50264736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80636352211e11610076578063a22cb4651161005b578063a22cb46514610211578063b88d4fde1461024c578063e985e9c5146102e9576100a3565b80636352211e146101af57806370a08231146101cc576100a3565b8063081812fc146100a8578063095ea7b3146100ee57806323b872dd1461012957806342842e0e1461016c575b600080fd5b6100c5600480360360208110156100be57600080fd5b5035610338565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101276004803603604081101561010457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610360565b005b6101276004803603606081101561013f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610482565b6101276004803603606081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107f5565b6100c5600480360360208110156101c557600080fd5b503561098f565b6101ff600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a26565b60408051918252519081900360200190f35b6101276004803603604081101561022757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610ad3565b6101276004803603608081101561026257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156102aa57600080fd5b8201836020820111156102bc57600080fd5b803590602001918460018302840111640100000000831117156102de57600080fd5b509092509050610b6c565b610324600480360360408110156102ff57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610d37565b604080519115158252519081900360200190f35b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061036b8261098f565b90503373ffffffffffffffffffffffffffffffffffffffff8216148061039657506103968133610d37565b61040157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526001602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661050457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061050f8261098f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105ab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006105b784610338565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f88383610d37565b8061062e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61069957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156106ea57600084815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b60008481526020818152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a811691909117909155891683526002909152902054610753906001610d72565b73ffffffffffffffffffffffffffffffffffffffff808816600090815260026020526040808220939093559087168152205461079690600163ffffffff610d9616565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260026020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610800838383610482565b813b801561098957604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b505050506040513d60208110156108bf57600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461098757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610aaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610b77858585610482565b833b8015610d2f576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610c3b57600080fd5b505af1158015610c4f573d6000803e3d6000fd5b505050506040513d6020811015610c6557600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610d2d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260036020908152604080832093909416825291909152205460ff1690565b600082821115610d9057610d90610d8b60028585610db9565b610e58565b50900390565b600082820183811015610db257610db2610d8b60008686610db9565b9392505050565b606063e946c1bb60e01b84848460405160240180846003811115610dd957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a7231582089d21f5e9829efe55d287f8326465b302d41c66fe1527985ca8d29a21f1932b364736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80636352211e11610076578063a22cb4651161005b578063a22cb46514610211578063b88d4fde1461024c578063e985e9c5146102e9576100a3565b80636352211e146101af57806370a08231146101cc576100a3565b8063081812fc146100a8578063095ea7b3146100ee57806323b872dd1461012957806342842e0e1461016c575b600080fd5b6100c5600480360360208110156100be57600080fd5b5035610338565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101276004803603604081101561010457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610360565b005b6101276004803603606081101561013f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610482565b6101276004803603606081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356107f5565b6100c5600480360360208110156101c557600080fd5b503561098f565b6101ff600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610a26565b60408051918252519081900360200190f35b6101276004803603604081101561022757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610ad3565b6101276004803603608081101561026257600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013590911691604082013591908101906080810160608201356401000000008111156102aa57600080fd5b8201836020820111156102bc57600080fd5b803590602001918460018302840111640100000000831117156102de57600080fd5b509092509050610b6c565b610324600480360360408110156102ff57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610d37565b604080519115158252519081900360200190f35b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061036b8261098f565b90503373ffffffffffffffffffffffffffffffffffffffff8216148061039657506103968133610d37565b61040157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f494e56414c49445f53454e4445520000000000000000000000604482015290519081900360640190fd5b60008281526001602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b73ffffffffffffffffffffffffffffffffffffffff821661050457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f5a45524f5f544f5f4144445245535300000000000000000000604482015290519081900360640190fd5b600061050f8261098f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146105ab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4552433732315f4f574e45525f4d49534d415443480000000000000000000000604482015290519081900360640190fd5b3360006105b784610338565b90508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f88383610d37565b8061062e57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61069957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552433732315f494e56414c49445f5350454e44455200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116156106ea57600084815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b60008481526020818152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a811691909117909155891683526002909152902054610753906001610d72565b73ffffffffffffffffffffffffffffffffffffffff808816600090815260026020526040808220939093559087168152205461079690600163ffffffff610d9616565b73ffffffffffffffffffffffffffffffffffffffff808716600081815260026020526040808220949094559251879391928a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050505050565b610800838383610482565b813b801561098957604080517f150b7a0200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018590526080606483015260006084830181905292519086169163150b7a029160c480830192602092919082900301818787803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b505050506040513d60208110156108bf57600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461098757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b50505050565b60008181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610aaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552433732315f5a45524f5f4f574e4552000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610b77858585610482565b833b8015610d2f576040517f150b7a02000000000000000000000000000000000000000000000000000000008152336004820181815273ffffffffffffffffffffffffffffffffffffffff89811660248501526044840188905260806064850190815260848501879052600094918a169363150b7a029390928c928b928b928b929060a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610c3b57600080fd5b505af1158015610c4f573d6000803e3d6000fd5b505050506040513d6020811015610c6557600080fd5b505160405190915080602f610e618239602f01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610d2d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4552433732315f494e56414c49445f53454c4543544f52000000000000000000604482015290519081900360640190fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260036020908152604080832093909416825291909152205460ff1690565b600082821115610d9057610d90610d8b60028585610db9565b610e58565b50900390565b600082820183811015610db257610db2610d8b60008686610db9565b9392505050565b606063e946c1bb60e01b84848460405160240180846003811115610dd957fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c627974657329a265627a7a72315820fde66f1d6d6a3390b055e4bc98c4fb3e4c99623222871b43459555accf23b50264736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/Exchange.json b/packages/contract-artifacts/artifacts/Exchange.json index 0c07063343..09751751c7 100644 --- a/packages/contract-artifacts/artifacts/Exchange.json +++ b/packages/contract-artifacts/artifacts/Exchange.json @@ -1571,16 +1571,16 @@ }, "evm": { "bytecode": { - "object": "0x60806040526000805460ff60a01b191690553480156200001e57600080fd5b5060405162005db338038062005db3833981016040819052620000419162000117565b600080546001600160a01b03191633178155819080309050620000b26040518060400160405280600b81526020016a0c1e08141c9bdd1bd8dbdb60aa1b815250604051806040016040528060058152602001640332e302e360dc1b8152508584620000c060201b62005bd91760201c565b600155506200013092505050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b60006020828403121562000129578081fd5b5051919050565b615c7380620001406000396000f3fe6080604052600436106102dc5760003560e01c80638d45cd2311610184578063beee2e14116100d6578063dd885e2d1161008a578063eea086ba11610064578063eea086ba14610735578063f2fde38b1461074a578063fc74896d1461076a576102dc565b8063dd885e2d146106ed578063dedfc1f11461070f578063e14b58c414610722576102dc565b8063c26cfecd116100bb578063c26cfecd14610698578063c585bb93146106ad578063d9bfa73e146106cd576102dc565b8063beee2e1414610665578063c0fa16cc14610678576102dc565b80639b44d55611610138578063a6c3bf3311610112578063a6c3bf331461061f578063b04fbddd14610632578063b718e29214610652576102dc565b80639b44d556146105bf5780639d3fa4b9146105d2578063a12dcc6f146105ff576102dc565b80638ea8dfe4116101695780638ea8dfe41461056c5780639331c7421461058c5780639694a402146105ac576102dc565b80638d45cd23146105375780638da5cb5b14610557576102dc565b8063607041081161023d5780637b8e3514116101f1578063850a1501116101cb578063850a1501146104ef57806388ec79fb146105045780638bc8efb314610524576102dc565b80637b8e35141461048f5780638171c407146104af57806382c174d0146104cf576102dc565b80636fcf3e9e116102225780636fcf3e9e1461045657806377fcce681461046957806378d29ac11461047c576102dc565b806360704108146104095780636a1a80fd14610436576102dc565b80632ac1262211610294578063369da09911610279578063369da099146103c357806346c02d7a146103e35780634f9559b1146103f6576102dc565b80632ac12622146103905780632da62987146103b0576102dc565b80631ce4c78b116102c55780631ce4c78b1461032e5780632280c91014610350578063288cdc9114610370576102dc565b80630228e168146102e15780630efca18514610317575b600080fd5b3480156102ed57600080fd5b506103016102fc366004614e6f565b61078a565b60405161030e91906154c3565b60405180910390f35b34801561032357600080fd5b5061032c61079f565b005b34801561033a57600080fd5b506103436107b3565b60405161030e91906154ce565b61036361035e366004615107565b6107b9565b60405161030e919061569f565b34801561037c57600080fd5b5061034361038b366004614e6f565b6107fb565b34801561039c57600080fd5b506103016103ab366004614e6f565b61080d565b61032c6103be366004614f81565b610822565b6103d66103d1366004614d6b565b610846565b60405161030e91906159c3565b61032c6103f1366004614e6f565b61096d565b61032c610404366004614e6f565b6109e0565b34801561041557600080fd5b50610429610424366004614ef8565b610aed565b60405161030e919061535a565b610449610444366004614c4b565b610b3b565b60405161030e919061594c565b610449610464366004614c4b565b610b73565b61032c610477366004614b35565b610b91565b6103d661048a366004614d6b565b610c54565b34801561049b57600080fd5b506103016104aa366004614b01565b610da4565b3480156104bb57600080fd5b506103016104ca366004614eab565b610dc4565b3480156104db57600080fd5b506103016104ea366004614e87565b610e23565b3480156104fb57600080fd5b50610429610e43565b61051761051236600461500b565b610e5f565b60405161030e91906159d1565b6103d6610532366004614d6b565b610e7d565b34801561054357600080fd5b50610301610552366004615107565b610eb1565b34801561056357600080fd5b50610429610ed6565b61057f61057a366004614ce7565b610ef2565b60405161030e91906154b0565b34801561059857600080fd5b5061032c6105a7366004614e6f565b61101d565b61057f6105ba366004614ce7565b611065565b6103d66105cd3660046150a7565b61112c565b3480156105de57600080fd5b506105f26105ed366004614f81565b611151565b60405161030e9190615a13565b34801561060b57600080fd5b5061030161061a366004614fb4565b611246565b6103d661062d366004614d6b565b61126b565b34801561063e57600080fd5b5061032c61064d366004614b70565b61129f565b61051761066036600461500b565b61134b565b61057f610673366004614ce7565b611369565b34801561068457600080fd5b5061032c610693366004614ae6565b61141e565b3480156106a457600080fd5b5061034361142f565b3480156106b957600080fd5b5061032c6106c8366004614ae6565b611435565b3480156106d957600080fd5b506103436106e8366004614b01565b6115c9565b3480156106f957600080fd5b506107026115e6565b60405161030e919061562a565b61032c61071d366004614c18565b61160a565b6103d66107303660046150a7565b61164c565b34801561074157600080fd5b50610429611667565b34801561075657600080fd5b5061032c610765366004614ae6565b611683565b61077d610778366004614dbe565b611726565b60405161030e9190615432565b60056020526000908152604090205460ff1681565b6107a761184f565b6107b16000611896565b565b60035481565b60606107c3611931565b156107d9576107d28383611953565b90506107f5565b6107e1611a6d565b6107eb8383611953565b90506107f5611aaf565b92915050565b60096020526000908152604090205481565b600a6020526000908152604090205460ff1681565b61082a611adf565b61083381611b4e565b61083b611b93565b610843611ba7565b50565b61084e61456a565b610856611931565b156108ec57835160005b8181146108e5576000610880846020015187611bd190919063ffffffff16565b905061088a61456a565b6108bb88848151811061089957fe5b6020026020010151838886815181106108ae57fe5b6020026020010151611bf0565b90506108c78582611d31565b9450868560200151106108db5750506108e5565b5050600101610860565b5050610966565b6108f4611a6d565b835160005b81811461095c576000610919846020015187611bd190919063ffffffff16565b905061092361456a565b61093288848151811061089957fe5b905061093e8582611d31565b94508685602001511061095257505061095c565b50506001016108f9565b5050610966611aaf565b9392505050565b610975611adf565b600061097f611dcc565b600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff90941683529290522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555061083b611b93565b6109e8611adf565b60006109f2611dcc565b9050600073ffffffffffffffffffffffffffffffffffffffff82163314610a195733610a1c565b60005b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600b60209081526040808320938516835292905220549091506001840190808211610a7157610a71610a6c858584611dfe565b611ea3565b73ffffffffffffffffffffffffffffffffffffffff8085166000818152600b602090815260408083209488168084529490915290819020859055517f82af639571738f4ebd4268fb0363d8957ebe1bbb9e78dba5ebd69eed39b154f090610ad99086906154ce565b60405180910390a35050505061083b611b93565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff165b919050565b610b43614599565b610b4b611adf565b610b59858585856001611eab565b9050610b63611b93565b610b6b611ba7565b949350505050565b610b7b614599565b610b83611adf565b610b59858585856000611eab565b610b99611adf565b6000610ba3611dcc565b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600860209081526040808320948916808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168715151790555192935090917fa8656e308026eeabce8f0bc18048433252318ab80ac79da0b3d3d8697dfba89190610c379086906154c3565b60405180910390a350610c48611b93565b610c50611ba7565b5050565b610c5c61456a565b610c64611931565b15610d2257835160005b8181146108e5578251600090610c8b90879063ffffffff611bd116565b90506000610cc8888481518110610c9e57fe5b602002602001015160a00151898581518110610cb657fe5b60200260200101516080015184612218565b9050610cd261456a565b610cf6898581518110610ce157fe5b6020026020010151838987815181106108ae57fe5b9050610d028682611d31565b955087866000015110610d17575050506108e5565b505050600101610c6e565b610d2a611a6d565b835160005b81811461095c578251600090610d4c90879063ffffffff611bd116565b90506000610d5f888481518110610c9e57fe5b9050610d6961456a565b610d78898581518110610ce157fe5b9050610d848682611d31565b955087866000015110610d995750505061095c565b505050600101610d2f565b600860209081526000928352604080842090915290825290205460ff1681565b600080610dd285858561225a565b90506005816008811115610de257fe5b1480610df957506007816008811115610df757fe5b145b15610e0e57610e0e610a6c60058787876122d9565b610e1a81868686612381565b95945050505050565b600760209081526000928352604080842090915290825290205460ff1681565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610e676145c1565b610e6f611adf565b610b598585858560006125f1565b610e8561456a565b610e90848484610c54565b9050828160000151101561096657610966610a6c60008584600001516126de565b600080610ec9600154856126fd90919063ffffffff16565b9050610b6b848285612711565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6060610efc611931565b15610f9f578351604080518281526020808402820101909152818015610f3c57816020015b610f2961456a565b815260200190600190039081610f215790505b50915060005b8181146108e557610f80868281518110610f5857fe5b6020026020010151868381518110610f6c57fe5b60200260200101518684815181106108ae57fe5b838281518110610f8c57fe5b6020908102919091010152600101610f42565b610fa7611a6d565b8351604080518281526020808402820101909152818015610fe257816020015b610fcf61456a565b815260200190600190039081610fc75790505b50915060005b81811461095c57610ffe868281518110610f5857fe5b83828151811061100a57fe5b6020908102919091010152600101610fe8565b61102561184f565b7f3a3e76d7a75e198aef1f53137e4f2a8a2ec74e2e9526db8404d08ccc9f1e621d60035482604051611058929190615542565b60405180910390a1600355565b606061106f611adf565b83516040805182815260208084028201019091528180156110aa57816020015b61109761456a565b81526020019060019003908161108f5790505b50915060005b81811461111a576110fb8682815181106110c657fe5b60200260200101518683815181106110da57fe5b60200260200101518684815181106110ee57fe5b6020026020010151612797565b83828151811061110757fe5b60209081029190910101526001016110b0565b5050611124611b93565b610966611ba7565b61113461456a565b61113c611adf565b611147848484612797565b9050611124611b93565b6111596145f5565b61116282612839565b60408301526020820152608082015161118e578060015b9081600681111561118657fe5b905250610b36565b60a082015161119f57806002611179565b8160a001518160400151106111b657806005611179565b81610100015142106111ca57806004611179565b6020808201516000908152600a909152604090205460ff16156111ef57806006611179565b610120820151825173ffffffffffffffffffffffffffffffffffffffff9081166000908152600b60209081526040808320606088015190941683529290522054111561123d57806006611179565b60038152919050565b60008061125e6001548561286a90919063ffffffff16565b9050610b6b848285612879565b61127361456a565b61127e848484610846565b9050828160200151101561096657610966610a6c60018584602001516126de565b835160005b81811461130f576113078160001b8783815181106112be57fe5b60200260200101518784815181106112d257fe5b60200260200101518785815181106112e657fe5b60200260200101518786815181106112fa57fe5b60200260200101516128ce565b6001016112a4565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290615915565b60405180910390fd5b6113536145c1565b61135b611adf565b610b598585858560016125f1565b6060611373611adf565b83516040805182815260208084028201019091528180156113ae57816020015b61139b61456a565b8152602001906001900390816113935790505b50915060005b81811461111a576113ff8682815181106113ca57fe5b60200260200101518683815181106113de57fe5b60200260200101518684815181106113f257fe5b6020026020010151612a92565b83828151811061140b57fe5b60209081029190910101526001016113b4565b61142661184f565b61084381611896565b60015481565b61143d61184f565b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148557600080fd5b505afa158015611499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114bd9190810190614f14565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561151b5761151b610a6c8383612ac5565b7fffffffff0000000000000000000000000000000000000000000000000000000082166000908152600260205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c03194906115bc9084908690615657565b60405180910390a1505050565b600b60209081526000928352604080842090915290825290205481565b7f20c13b0b0000000000000000000000000000000000000000000000000000000081565b611612611adf565b805160005b8181146116425761163a83828151811061162d57fe5b6020026020010151611b4e565b600101611617565b505061083b611b93565b61165461456a565b61165c611adf565b611147848484612a92565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b61168b61184f565b73ffffffffffffffffffffffffffffffffffffffff81166116b6576116b1610a6c612b67565b610843565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6060611730611931565b156117cd57825160408051828152602080840282010190915281801561176a57816020015b60608152602001906001900390816117555790505b50915060005b8181146117c6576117a785828151811061178657fe5b602002602001015185838151811061179a57fe5b6020026020010151611953565b8382815181106117b357fe5b6020908102919091010152600101611770565b50506107f5565b6117d5611a6d565b825160408051828152602080840282010190915281801561180a57816020015b60608152602001906001900390816117f55790505b50915060005b8181146118455761182685828151811061178657fe5b83828151811061183257fe5b6020908102919091010152600101611810565b50506107f5611aaf565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107b1576000546107b190610a6c90339073ffffffffffffffffffffffffffffffffffffffff16612b9e565b6004546040517fe1a5430ebec577336427f40f15822f1f36c5e3509ff209d6db9e6c9e6941cb0b916118e29173ffffffffffffffffffffffffffffffffffffffff90911690849061537b565b60405180910390a1600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff1690565b6060600061196c600154856126fd90919063ffffffff16565b9050611979848483612bbb565b60608401516119888180612c8f565b60008281526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556080870151905160609130916119d6919061530d565b600060405180830381855af49150503d8060008114611a11576040519150601f19603f3d011682016040523d82523d6000602084013e611a16565b606091505b509150915081611a2d57611a2d610a6c8583612cf2565b611a38836000612c8f565b60405184907fa4a7329f1dd821363067e07d359e347b4af9b1efe4b6cccf13240228af3c800d90600090a29695505050505050565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1690556107b1612d0f565b60005474010000000000000000000000000000000000000000900460ff1615611b0d57611b0d610a6c612d43565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b611b566145f5565b611b5f82611151565b9050611b6b8282612d7a565b600381516006811115611b7a57fe5b14611b855750610843565b610c50828260200151612e29565b611b9b611931565b6107b1576107b1612d0f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b600082821115611bea57611bea610a6c60028585612ed2565b50900390565b611bf861456a565b6040516060907f9b44d5560000000000000000000000000000000000000000000000000000000090611c3290879087908790602401615a63565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060603073ffffffffffffffffffffffffffffffffffffffff1683604051611cba919061530d565b600060405180830381855af49150503d8060008114611cf5576040519150601f19603f3d011682016040523d82523d6000602084013e611cfa565b606091505b50915091508115611d2757805160a014611d1057fe5b80806020019051611d249190810190614f30565b93505b5050509392505050565b611d3961456a565b81518351611d4c9163ffffffff612ef116565b815260208083015190840151611d679163ffffffff612ef116565b602082015260408083015190840151611d859163ffffffff612ef116565b604082015260608083015190840151611da39163ffffffff612ef116565b606082015260808083015190840151611dc19163ffffffff612ef116565b608082015292915050565b60065460009073ffffffffffffffffffffffffffffffffffffffff16818115611df55781611df7565b335b9250505090565b6060634ad3127560e01b848484604051602401611e1d939291906153a2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b611eb3614599565b8551611ec657611ec6610a6c6000612f0d565b8451611ed957611ed9610a6c6001612f0d565b8351865114611eef57611eef610a6c6002612f0d565b8251855114611f0557611f05610a6c6003612f0d565b8551604051908082528060200260200182016040528015611f4057816020015b611f2d61456a565b815260200190600190039081611f255790505b5081528451604080518281526020808402820101909152908015611f7e57816020015b611f6b61456a565b815260200190600190039081611f635790505b506020820152600080611f8f614617565b88600081518110611f9c57fe5b60200260200101519050611fae614617565b88600081518110611fbb57fe5b602002602001015190506000611fd083612839565b9150506000611fde83612839565b915050611fe961456a565b611ff161456a565b611ff96145c1565b61202c87878f8c8151811061200a57fe5b60200260200101518f8c8151811061201e57fe5b60200260200101518f6125f1565b80516020015190915061204690869063ffffffff612ef116565b945061206381602001516020015185612ef190919063ffffffff16565b9350612073838260000151611d31565b9250612083828260200151611d31565b91506120a081604001518b60400151612ef190919063ffffffff16565b60408b0152606080820151908b01516120be9163ffffffff612ef116565b60608b015260a08701518510612169578951805160018b019a85929181106120e257fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525092508e5189141561214657818a60200151898151811061213557fe5b602002602001018190525050612207565b8e898151811061215257fe5b6020026020010151965061216587612839565b9550505b8560a00151841061220157818a6020015189806001019a508151811061218b57fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525091508d518814156121de57828a600001518a8151811061213557fe5b8d88815181106121ea57fe5b602002602001015195506121fd86612839565b9450505b50611ff1565b505050505050505095945050505050565b6000610b6b8361224e61223282600163ffffffff611bd116565b612242888763ffffffff612fac16565b9063ffffffff612ef116565b9063ffffffff612fdd16565b6000612267848484613007565b905073ffffffffffffffffffffffffffffffffffffffff831661229457612294610a6c60068686866122d9565b600881818111156122a157fe5b60ff16106122b9576122b9610a6c60038686866122d9565b60008160088111156122c757fe5b141561096657610966610a6c60048686865b6060637e5a231860e01b858585856040516024016122fa94939291906158ba565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050949350505050565b6000600185600881111561239157fe5b14156123b85781516001146123b0576123b0610a6c60028686866122d9565b506000610b6b565b60028560088111156123c657fe5b14156124bf5781516042146123e5576123e5610a6c60028686866122d9565b6000826000815181106123f457fe5b016020015160f81c9050600061241184600163ffffffff61304616565b9050600061242685602163ffffffff61304616565b905060006001888585856040516000815260200160405260405161244d949392919061560c565b6020604051602081039080840390855afa15801561246f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8981169116149550610b6b945050505050565b60038560088111156124cd57fe5b141561257a5781516042146124ec576124ec610a6c60028686866122d9565b6000826000815181106124fb57fe5b016020015160f81c9050600061251884600163ffffffff61304616565b9050600061252d85602163ffffffff61304616565b905060006001886040516020016125449190615329565b604051602081830303815290604052805190602001208585856040516000815260200160405260405161244d949392919061560c565b600485600881111561258857fe5b14156125a057612599848484613070565b9050610b6b565b60068560088111156125ae57fe5b146125b557fe5b50600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915290205460ff16949350505050565b6125f96145c1565b6101608087015161014080880191909152870151908601526126196145f5565b61262287611151565b905061262c6145f5565b61263587611151565b90506000612641611dcc565b905061264f8984838a613266565b61265b88838389613266565b61266f89898560200151856020015161337e565b6126888989856040015185604001516003543a8b6133c3565b93506126a38982856020015186604001518860000151613518565b6126bc8882846020015185604001518860200151613518565b6126d2836020015183602001518b8b85896135f6565b50505095945050505050565b60606318e4b14160e01b848484604051602401611e1d9392919061589e565b60006109668261270c8561379d565b613825565b60608301516000908161272585838661225a565b9050600581600881111561273557fe5b141561275757612750612748878761385f565b868487613897565b925061278e565b600781600881111561276557fe5b141561277f57612750612778878761385f565b838661394b565b61278b81868487612381565b92505b50509392505050565b61279f61456a565b6127a76145f5565b6127b085611151565b905060006127bc611dcc565b90506127ca86838387613266565b60006127e783604001518860a00151611bd190919063ffffffff16565b905060006127f5878361395a565b905061280588826003543a613970565b945060008460200151905061282189858388604001518a613518565b61282d818a86896139e7565b50505050509392505050565b6000806128516001548461286a90919063ffffffff16565b6000818152600960205260409020549092509050915091565b60006109668261270c85613a7e565b82516000908161288a85838661225a565b9050600581600881111561289a57fe5b14156128ad576127506127488787613b55565b60078160088111156128bb57fe5b141561277f576127506127788787613b55565b8015612a8b5760208451816128df57fe5b066004146128f6576128f6610a6c60008787613b8d565b6000612908858263ffffffff613bac16565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168061296757612967610a6c60018989613b8d565b6040516060907fa85e59e400000000000000000000000000000000000000000000000000000000906129a39089908990899089906024016156b2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608373ffffffffffffffffffffffffffffffffffffffff1683604051612a2b919061530d565b6000604051808303816000865af19150503d8060008114612a68576040519150601f19603f3d011682016040523d82523d6000602084013e612a6d565b606091505b509150915081612a8557612a85610a6c8b8b84613bf8565b50505050505b5050505050565b612a9a61456a565b612aa5848484612797565b90508281602001511461096657610966610a6c60028584602001516126de565b60606311c7b72060e01b8383604051602401612ae2929190615657565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401612ae292919061537b565b82602001514210612bd457612bd4610a6c600183613c17565b60408301513a8114612bee57612bee610a6c833a84613c34565b60065473ffffffffffffffffffffffffffffffffffffffff168015612c1a57612c1a610a6c8483613c53565b60008381526005602052604090205460ff1615612c3f57612c3f610a6c600085613c17565b606085015173ffffffffffffffffffffffffffffffffffffffff81163314801590612c725750612c70868587612711565b155b15612c8757612c87610a6c60018684896122d9565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff82163314610c50576006805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555050565b60606320d11f6160e01b8383604051602401612ae2929190615550565b47801561084357604051339082156108fc029083906000818181858888f19350505050158015610c50573d6000803e3d6000fd5b60408051808201909152600481527f0c3b823f00000000000000000000000000000000000000000000000000000000602082015290565b606082015173ffffffffffffffffffffffffffffffffffffffff1615612dce57606082015173ffffffffffffffffffffffffffffffffffffffff163314612dce57612dce610a6c6002836020015133613c70565b6000612dd8611dcc565b90508073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff1614612e2457612e24610a6c6000846020015184613c70565b505050565b6000818152600a60205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558281015183516101408501516101608601519351859473ffffffffffffffffffffffffffffffffffffffff9485169493909316927f02c310a9a43963ff31a754a4099cc435ed498049687539d72d7818d9b093415c92612ec692909190339061571a565b60405180910390a45050565b606063e946c1bb60e01b848484604051602401611e1d93929190615845565b60008282018381101561096657610966610a6c60008686612ed2565b606063d4092f4f60e01b82604051602401612f289190615832565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b600082612fbb575060006107f5565b82820282848281612fc857fe5b041461096657610966610a6c60018686612ed2565b600081612ff357612ff3610a6c60038585612ed2565b6000828481612ffe57fe5b04949350505050565b600081516000141561302357613023610a6c60028686866122d9565b8160018351038151811061303357fe5b016020015160f81c6008811115610b6b57fe5b6000816020018351101561306757613067610a6c6005855185602001613c8f565b50016020015190565b80516000906130a7837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830163ffffffff613cae16565b6040516060907f1626ba7e00000000000000000000000000000000000000000000000000000000906130df9088908790602401615550565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061316e848363ffffffff613cae16565b600060608673ffffffffffffffffffffffffffffffffffffffff1683604051613197919061530d565b600060405180830381855afa9150503d80600081146131d2576040519150601f19603f3d011682016040523d82523d6000602084013e6131d7565b606091505b50915091508180156131ea575080516020145b1561324c577fb06713810000000000000000000000000000000000000000000000000000000061322182600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610966565b61325b610a6c89898985613cb2565b505050509392505050565b60038351600681111561327557fe5b1461328f5761328f610a6c84602001518560000151613cd3565b606084015173ffffffffffffffffffffffffffffffffffffffff16156132e357606084015173ffffffffffffffffffffffffffffffffffffffff1633146132e3576132e3610a6c6002856020015133613c70565b602084015173ffffffffffffffffffffffffffffffffffffffff161561334d578173ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff161461334d5761334d610a6c6001856020015185613c70565b61335c84846020015183612879565b61337857613378610a6c600085602001518760000151856122d9565b50505050565b60a080840151908501516133979163ffffffff612fac16565b608080850151908601516133b09163ffffffff612fac16565b101561337857613378610a6c8383613cf0565b6133cb6145c1565b60a08801516000906133e3908863ffffffff611bd116565b905060006133fa8a608001518b60a0015184613d0d565b90506000613415888b60a00151611bd190919063ffffffff16565b9050600061342c8b608001518c60a0015184613d0d565b90508515613449576134428c8c85878587613d41565b945061345a565b6134578c8c85878587613e13565b94505b84515160808d015160c08e0151613472929190613d0d565b85516040015284516020015160a08d015160e08e0151613493929190613d0d565b85516060015260208501515160808c015160c08d01516134b4929190613d0d565b856020015160400181815250506134dc8560200151602001518c60a001518d60e00151613d0d565b60208601516060015260006134f7888a63ffffffff612fac16565b86516080908101829052602088015101525050505050979650505050505050565b602081015161352e90839063ffffffff612ef116565b600960008581526020019081526020016000208190555082856040015173ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff167f6869791f0a34781b29882982cc39e882768cf2c96995c2a110c577c53bc932d58861014001518961016001518a61018001518b6101a001518b338a600001518b602001518c604001518d606001518e608001516040516135e79b9a99989796959493929190615766565b60405180910390a45050505050565b835183516040808701519086015161014087015185516020015161361f918b91869088906128ce565b6136398a89610140015186868960200151602001516128ce565b6136538988610180015185848960200151604001516128ce565b61366d8a89610180015186858960000151604001516128ce565b6136838a896101400151868989604001516128ce565b61369989886101400151858989606001516128ce565b60006136b18b8b88600001516080015188888c613eac565b9050806136ce578551600060809182018190526020880151909101525b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561371e57506101a080890151908a015161371e9163ffffffff613f0816565b1561375c576137578b8a6101a0015189866137528b60200151606001518c6000015160600151612ef190919063ffffffff16565b6128ce565b613790565b6137768a896101a0015189858a60200151606001516128ce565b6137908b8a6101a0015189868a60000151606001516128ce565b5050505050505050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6040516060907fde047db40000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a8e565b805160009060158110156138b5576138b5610a6c60028787876122d9565b60006138e9847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb840163ffffffff613f2d16565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526008602090815260408083209385168352929052205490915060ff1661393357613933610a6c8683613f6d565b6139408188866015613f8a565b979650505050505050565b6000610b6b8385846001613f8a565b60008183106139695781610966565b5090919050565b61397861456a565b6020810184905260a08501516080860151613994918691613d0d565b815260a085015160c08601516139ab918691613d0d565b604082015260a085015160e08601516139c5918691613d0d565b60608201526139da828463ffffffff612fac16565b6080820152949350505050565b613a018484610160015184866000015185602001516128ce565b613a1b8484610140015185600001518585600001516128ce565b613a3584846101a0015184866040015185606001516128ce565b613a53848461018001518560000151866040015185604001516128ce565b6000613a69858360800151866000015186614161565b905080612a8b57600060808301525050505050565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a753493909290916020871015613aca57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b6040516060907f3efe50c80000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a41565b606063488219a660e01b848484604051602401611e1d9392919061580a565b60008160040183511015613bcd57613bcd610a6c6003855185600401613c8f565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b6060634678472b60e01b848484604051602401611e1d93929190615569565b606063f598518460e01b8383604051602401612ae29291906158fe565b606063a26dac0960e01b848484604051602401611e1d939291906155f6565b606063dec4aedf60e01b8383604051602401612ae29291906154d7565b606063e53c76c860e01b848484604051602401611e1d93929190615866565b6060632800659560e01b848484604051602401611e1d939291906158ac565b9052565b6060631b8388f760e01b858585856040516024016122fa94939291906154fb565b606063fdb6ca8d60e01b8383604051602401612ae2929190615594565b606063b6555d6f60e01b8383604051602401612ae2929190615542565b6000613d1a8484846141a6565b15613d2d57613d2d610a6c85858561420c565b610b6b8361224e868563ffffffff612fac16565b613d496145c1565b81851184841184861115613d6957613d6289868661422b565b9250613db8565b86841115613da95782518790528251602001869052608088015160a0890151613d93919089613d0d565b6020808501805192909252905101879052613db8565b613db587878787614268565b92505b8115613dde576020808401510151835151613dd89163ffffffff611bd116565b60408401525b8015613e065782516020908101519084015151613e009163ffffffff611bd116565b60608401525b50505b9695505050505050565b613e1b6145c1565b82841115613e3557613e2e87848461422b565b9050613e83565b82841015613e745780518590528051602090810185905281015184905260a08601516080870151613e67919086614293565b6020808301510152613e83565b613e8085858585614268565b90505b6020808201510151815151613e9d9163ffffffff611bd116565b60408201529695505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff168015613efe57476000613edf8a84848b8b8a6142cb565b9050613ef189848385038b8a8a6142cb565b5060019350505050613e09565b6000915050613e09565b6000815183511480156109665750508051602091820120825192909101919091201490565b60008160140183511015613f4e57613f4e610a6c6004855185601401613c8f565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b606063a15c0d0660e01b8383604051602401612ae292919061537b565b8151600090613fa18484830363ffffffff613cae16565b6040516060907f20c13b0b0000000000000000000000000000000000000000000000000000000090613fd990889088906024016156f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050614068858363ffffffff613cae16565b600060608873ffffffffffffffffffffffffffffffffffffffff1683604051614091919061530d565b600060405180830381855afa9150503d80600081146140cc576040519150601f19603f3d011682016040523d82523d6000602084013e6140d1565b606091505b50915091508180156140e4575080516020145b15614146577f20c13b0b0000000000000000000000000000000000000000000000000000000061411b82600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610b6b565b614155610a6c8a8a8a85614403565b50505050949350505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff16801561419c576141918682478888886142cb565b506001915050610b6b565b6000915050610b6b565b6000826141b8576141b8610a6c614424565b8115806141c3575083155b156141d057506000610966565b600083806141da57fe5b85840990506141ef858463ffffffff612fac16565b614201826103e863ffffffff612fac16565b101595945050505050565b606063339f3de260e01b848484604051602401611e1d939291906155f6565b6142336145c1565b60208082018051859052518101839052815101839052608084015160a085015161425e919085613d0d565b8151529392505050565b6142706145c1565b805194909452835160209081019390935282840180519290925290519091015290565b60006142a084848461445b565b156142b3576142b3610a6c85858561420c565b610b6b8361224e61223282600163ffffffff611bd116565b60008385106142d75750825b6040516060907fa3b4a3270000000000000000000000000000000000000000000000000000000090614311908690869089906024016153a2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608873ffffffffffffffffffffffffffffffffffffffff16848460405161439a919061530d565b60006040518083038185875af1925050503d80600081146143d7576040519150601f19603f3d011682016040523d82523d6000602084013e6143dc565b606091505b5091509150816143f6576143f6610a6c8b898989866144bf565b5050509695505050505050565b6060635bd0428d60e01b858585856040516024016122fa94939291906153d3565b60408051808201909152600481527fa791837c00000000000000000000000000000000000000000000000000000000602082015290565b60008261446d5761446d610a6c614424565b811580614478575083155b1561448557506000610966565b6000838061448f57fe5b8584099050836144a5818363ffffffff611bd116565b816144ac57fe5b0690506141ef858463ffffffff612fac16565b60606387cb1e7560e01b86868686866040516024016144e29594939291906155b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905095945050505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280606081526020016060815260200160008152602001600081525090565b60405180608001604052806145d461456a565b81526020016145e161456a565b815260200160008152602001600081525090565b6040805160608101909152806000815260006020820181905260409091015290565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff811681146107f557600080fd5b600082601f830112614712578081fd5b813561472561472082615b1f565b615af8565b81815291506020808301908481018184028601820187101561474657600080fd5b60005b8481101561476d5761475b88836146de565b84529282019290820190600101614749565b505050505092915050565b600082601f830112614788578081fd5b813561479661472082615b1f565b8181529150602080830190840160005b838110156147d3576147be8760208435890101614896565b835260209283019291909101906001016147a6565b5050505092915050565b600082601f8301126147ed578081fd5b81356147fb61472082615b1f565b8181529150602080830190840160005b838110156147d357614823876020843589010161491d565b8352602092830192919091019060010161480b565b600082601f830112614848578081fd5b813561485661472082615b1f565b81815291506020808301908481018184028601820187101561487757600080fd5b60005b8481101561476d5781358452928201929082019060010161487a565b600082601f8301126148a6578081fd5b813567ffffffffffffffff8111156148bc578182fd5b6148ed60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601615af8565b915080825283602082850101111561490457600080fd5b8060208401602084013760009082016020015292915050565b60006101c0808385031215614930578182fd5b61493981615af8565b91505061494683836146de565b815261495583602084016146de565b602082015261496783604084016146de565b604082015261497983606084016146de565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff808211156149db57600080fd5b6149e786838701614896565b83850152610160925082850135915080821115614a0357600080fd5b614a0f86838701614896565b83850152610180925082850135915080821115614a2b57600080fd5b614a3786838701614896565b838501526101a0925082850135915080821115614a5357600080fd5b50614a6085828601614896565b82840152505092915050565b600060a08284031215614a7d578081fd5b614a8760a0615af8565b90508135815260208201356020820152604082013560408201526060820135614aaf81615b89565b6060820152608082013567ffffffffffffffff811115614ace57600080fd5b614ada84828501614896565b60808301525092915050565b600060208284031215614af7578081fd5b61096683836146de565b60008060408385031215614b13578081fd5b614b1d84846146de565b9150614b2c84602085016146de565b90509250929050565b60008060408385031215614b47578182fd5b614b5184846146de565b915060208301358015158114614b65578182fd5b809150509250929050565b60008060008060808587031215614b85578182fd5b843567ffffffffffffffff80821115614b9c578384fd5b614ba888838901614778565b95506020870135915080821115614bbd578384fd5b614bc988838901614702565b94506040870135915080821115614bde578384fd5b614bea88838901614702565b93506060870135915080821115614bff578283fd5b50614c0c87828801614838565b91505092959194509250565b600060208284031215614c29578081fd5b813567ffffffffffffffff811115614c3f578182fd5b610b6b848285016147dd565b60008060008060808587031215614c60578182fd5b843567ffffffffffffffff80821115614c77578384fd5b614c83888389016147dd565b95506020870135915080821115614c98578384fd5b614ca4888389016147dd565b94506040870135915080821115614cb9578384fd5b614cc588838901614778565b93506060870135915080821115614cda578283fd5b50614c0c87828801614778565b600080600060608486031215614cfb578081fd5b833567ffffffffffffffff80821115614d12578283fd5b614d1e878388016147dd565b94506020860135915080821115614d33578283fd5b614d3f87838801614838565b93506040860135915080821115614d54578283fd5b50614d6186828701614778565b9150509250925092565b600080600060608486031215614d7f578081fd5b833567ffffffffffffffff80821115614d96578283fd5b614da2878388016147dd565b9450602086013593506040860135915080821115614d54578283fd5b60008060408385031215614dd0578182fd5b823567ffffffffffffffff80821115614de7578384fd5b81850186601f820112614df8578485fd5b80359250614e0861472084615b1f565b83815260208082019190838101885b87811015614e4057614e2e8c848435890101614a6c565b85529382019390820190600101614e17565b50919750880135945050505080821115614e58578283fd5b50614e6585828601614778565b9150509250929050565b600060208284031215614e80578081fd5b5035919050565b60008060408385031215614e99578182fd5b823591506020830135614b6581615b89565b600080600060608486031215614ebf578081fd5b833592506020840135614ed181615b89565b9150604084013567ffffffffffffffff811115614eec578182fd5b614d6186828701614896565b600060208284031215614f09578081fd5b813561096681615bab565b600060208284031215614f25578081fd5b815161096681615bab565b600060a08284031215614f41578081fd5b614f4b60a0615af8565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b600060208284031215614f92578081fd5b813567ffffffffffffffff811115614fa8578182fd5b610b6b8482850161491d565b60008060408385031215614fc6578182fd5b823567ffffffffffffffff80821115614fdd578384fd5b614fe98683870161491d565b93506020850135915080821115614ffe578283fd5b50614e6585828601614896565b60008060008060808587031215615020578182fd5b843567ffffffffffffffff80821115615037578384fd5b6150438883890161491d565b95506020870135915080821115615058578384fd5b6150648883890161491d565b94506040870135915080821115615079578384fd5b61508588838901614896565b9350606087013591508082111561509a578283fd5b50614c0c87828801614896565b6000806000606084860312156150bb578081fd5b833567ffffffffffffffff808211156150d2578283fd5b6150de8783880161491d565b94506020860135935060408601359150808211156150fa578283fd5b50614d6186828701614896565b60008060408385031215615119578182fd5b823567ffffffffffffffff80821115615130578384fd5b614fe986838701614a6c565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156151925761517c8683516151e6565b60a0959095019460209190910190600101615169565b5093949350505050565b600081518084526151b4816020860160208601615b3f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061522684845161513c565b6020830151615238602086018261513c565b50604083015161524b604086018261513c565b50606083015161525e606086018261513c565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526152b78387018261519c565b915050610160915081840151858203838701526152d4828261519c565b9250505061018080840151858303828701526152f0838261519c565b9150506101a091508184015185820383870152613e09828261519c565b6000825161531f818460208701615b3f565b9190910192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260806020830152615402608083018661519c565b8281036040840152615414818661519c565b8381036060850152615426818661519c565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156154a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261549185835161519c565b94509285019290850190600101615457565b5092979650505050505050565b6000602082526109666020830184615156565b901515815260200190565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600085825273ffffffffffffffffffffffffffffffffffffffff8516602083015260806040830152615530608083018561519c565b8281036060840152613940818561519c565b918252602082015260400190565b600083825260406020830152610b6b604083018461519c565b600084825260606020830152615582606083018561519c565b8281036040840152613e09818561519c565b828152604081016155a483615b7f565b8260208301529392505050565b600086825285602083015273ffffffffffffffffffffffffffffffffffffffff808616604084015280851660608401525060a0608083015261394060a083018461519c565b9283526020830191909152604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600060208252610966602083018461519c565b6000608082526156c5608083018761519c565b73ffffffffffffffffffffffffffffffffffffffff95861660208401529390941660408201526060015292915050565b600060408252615708604083018561519c565b8281036020840152610e1a818561519c565b60006060825261572d606083018661519c565b828103602084015261573f818661519c565b91505073ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b600061016080835261577a8184018f61519c565b838103602085015261578c818f61519c565b91505082810360408401526157a1818d61519c565b83810360608501526157b3818d61519c565b73ffffffffffffffffffffffffffffffffffffffff9b8c16608086015299909a1660a0840152505060c081019590955260e08501939093526101008401919091526101208301526101409091015295945050505050565b600061581585615b6b565b84825283602083015260606040830152610e1a606083018461519c565b6020810161583f83615b75565b91905290565b6060810161585285615b75565b938152602081019290925260409091015290565b606081016003851061587457fe5b938152602081019290925273ffffffffffffffffffffffffffffffffffffffff1660409091015290565b606081016003851061585257fe5b606081016008851061585257fe5b60006158c586615b7f565b85825284602083015273ffffffffffffffffffffffffffffffffffffffff8416604083015260806060830152613e09608083018461519c565b6040810161590b84615b6b565b9281526020015290565b60208082526014908201527f5452414e53464552535f5355434345535346554c000000000000000000000000604082015260600190565b60006020825282516080602084015261596860a0840182615156565b602085015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08482030160408501526159a38183615156565b604086015160608601526060860151608086015280935050505092915050565b60a081016107f582846151e6565b6000610180820190506159e58284516151e6565b60208301516159f760a08401826151e6565b5060408301516101408301526060909201516101609091015290565b81516060820190615a2381615b7f565b80835250602083015160208301526040830151604083015292915050565b600060408252615a546040830185615216565b90508260208301529392505050565b600060608252615a766060830186615216565b8460208401528281036040840152613e09818561519c565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152615ae860e084018261519c565b9150508260208301529392505050565b60405181810167ffffffffffffffff81118282101715615b1757600080fd5b604052919050565b600067ffffffffffffffff821115615b35578081fd5b5060209081020190565b60005b83811015615b5a578181015183820152602001615b42565b838111156133785750506000910152565b6002811061084357fe5b6004811061084357fe5b6007811061084357fe5b73ffffffffffffffffffffffffffffffffffffffff8116811461084357600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461084357600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820897f450a05992000843ffc258f91408c60af4df0c5e254daaee4892d72aa3da26c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x60806040526000805460ff60a01b191690553480156200001e57600080fd5b5060405162005db338038062005db3833981016040819052620000419162000117565b600080546001600160a01b03191633178155819080309050620000b26040518060400160405280600b81526020016a0c1e08141c9bdd1bd8dbdb60aa1b815250604051806040016040528060058152602001640332e302e360dc1b8152508584620000c060201b62005bd91760201c565b600155506200013092505050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b60006020828403121562000129578081fd5b5051919050565b615c7380620001406000396000f3fe6080604052600436106102dc5760003560e01c80638d45cd2311610184578063beee2e14116100d6578063dd885e2d1161008a578063eea086ba11610064578063eea086ba14610735578063f2fde38b1461074a578063fc74896d1461076a576102dc565b8063dd885e2d146106ed578063dedfc1f11461070f578063e14b58c414610722576102dc565b8063c26cfecd116100bb578063c26cfecd14610698578063c585bb93146106ad578063d9bfa73e146106cd576102dc565b8063beee2e1414610665578063c0fa16cc14610678576102dc565b80639b44d55611610138578063a6c3bf3311610112578063a6c3bf331461061f578063b04fbddd14610632578063b718e29214610652576102dc565b80639b44d556146105bf5780639d3fa4b9146105d2578063a12dcc6f146105ff576102dc565b80638ea8dfe4116101695780638ea8dfe41461056c5780639331c7421461058c5780639694a402146105ac576102dc565b80638d45cd23146105375780638da5cb5b14610557576102dc565b8063607041081161023d5780637b8e3514116101f1578063850a1501116101cb578063850a1501146104ef57806388ec79fb146105045780638bc8efb314610524576102dc565b80637b8e35141461048f5780638171c407146104af57806382c174d0146104cf576102dc565b80636fcf3e9e116102225780636fcf3e9e1461045657806377fcce681461046957806378d29ac11461047c576102dc565b806360704108146104095780636a1a80fd14610436576102dc565b80632ac1262211610294578063369da09911610279578063369da099146103c357806346c02d7a146103e35780634f9559b1146103f6576102dc565b80632ac12622146103905780632da62987146103b0576102dc565b80631ce4c78b116102c55780631ce4c78b1461032e5780632280c91014610350578063288cdc9114610370576102dc565b80630228e168146102e15780630efca18514610317575b600080fd5b3480156102ed57600080fd5b506103016102fc366004614e6f565b61078a565b60405161030e91906154c3565b60405180910390f35b34801561032357600080fd5b5061032c61079f565b005b34801561033a57600080fd5b506103436107b3565b60405161030e91906154ce565b61036361035e366004615107565b6107b9565b60405161030e919061569f565b34801561037c57600080fd5b5061034361038b366004614e6f565b6107fb565b34801561039c57600080fd5b506103016103ab366004614e6f565b61080d565b61032c6103be366004614f81565b610822565b6103d66103d1366004614d6b565b610846565b60405161030e91906159c3565b61032c6103f1366004614e6f565b61096d565b61032c610404366004614e6f565b6109e0565b34801561041557600080fd5b50610429610424366004614ef8565b610aed565b60405161030e919061535a565b610449610444366004614c4b565b610b3b565b60405161030e919061594c565b610449610464366004614c4b565b610b73565b61032c610477366004614b35565b610b91565b6103d661048a366004614d6b565b610c54565b34801561049b57600080fd5b506103016104aa366004614b01565b610da4565b3480156104bb57600080fd5b506103016104ca366004614eab565b610dc4565b3480156104db57600080fd5b506103016104ea366004614e87565b610e23565b3480156104fb57600080fd5b50610429610e43565b61051761051236600461500b565b610e5f565b60405161030e91906159d1565b6103d6610532366004614d6b565b610e7d565b34801561054357600080fd5b50610301610552366004615107565b610eb1565b34801561056357600080fd5b50610429610ed6565b61057f61057a366004614ce7565b610ef2565b60405161030e91906154b0565b34801561059857600080fd5b5061032c6105a7366004614e6f565b61101d565b61057f6105ba366004614ce7565b611065565b6103d66105cd3660046150a7565b61112c565b3480156105de57600080fd5b506105f26105ed366004614f81565b611151565b60405161030e9190615a13565b34801561060b57600080fd5b5061030161061a366004614fb4565b611246565b6103d661062d366004614d6b565b61126b565b34801561063e57600080fd5b5061032c61064d366004614b70565b61129f565b61051761066036600461500b565b61134b565b61057f610673366004614ce7565b611369565b34801561068457600080fd5b5061032c610693366004614ae6565b61141e565b3480156106a457600080fd5b5061034361142f565b3480156106b957600080fd5b5061032c6106c8366004614ae6565b611435565b3480156106d957600080fd5b506103436106e8366004614b01565b6115c9565b3480156106f957600080fd5b506107026115e6565b60405161030e919061562a565b61032c61071d366004614c18565b61160a565b6103d66107303660046150a7565b61164c565b34801561074157600080fd5b50610429611667565b34801561075657600080fd5b5061032c610765366004614ae6565b611683565b61077d610778366004614dbe565b611726565b60405161030e9190615432565b60056020526000908152604090205460ff1681565b6107a761184f565b6107b16000611896565b565b60035481565b60606107c3611931565b156107d9576107d28383611953565b90506107f5565b6107e1611a6d565b6107eb8383611953565b90506107f5611aaf565b92915050565b60096020526000908152604090205481565b600a6020526000908152604090205460ff1681565b61082a611adf565b61083381611b4e565b61083b611b93565b610843611ba7565b50565b61084e61456a565b610856611931565b156108ec57835160005b8181146108e5576000610880846020015187611bd190919063ffffffff16565b905061088a61456a565b6108bb88848151811061089957fe5b6020026020010151838886815181106108ae57fe5b6020026020010151611bf0565b90506108c78582611d31565b9450868560200151106108db5750506108e5565b5050600101610860565b5050610966565b6108f4611a6d565b835160005b81811461095c576000610919846020015187611bd190919063ffffffff16565b905061092361456a565b61093288848151811061089957fe5b905061093e8582611d31565b94508685602001511061095257505061095c565b50506001016108f9565b5050610966611aaf565b9392505050565b610975611adf565b600061097f611dcc565b600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff90941683529290522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555061083b611b93565b6109e8611adf565b60006109f2611dcc565b9050600073ffffffffffffffffffffffffffffffffffffffff82163314610a195733610a1c565b60005b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600b60209081526040808320938516835292905220549091506001840190808211610a7157610a71610a6c858584611dfe565b611ea3565b73ffffffffffffffffffffffffffffffffffffffff8085166000818152600b602090815260408083209488168084529490915290819020859055517f82af639571738f4ebd4268fb0363d8957ebe1bbb9e78dba5ebd69eed39b154f090610ad99086906154ce565b60405180910390a35050505061083b611b93565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff165b919050565b610b43614599565b610b4b611adf565b610b59858585856001611eab565b9050610b63611b93565b610b6b611ba7565b949350505050565b610b7b614599565b610b83611adf565b610b59858585856000611eab565b610b99611adf565b6000610ba3611dcc565b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600860209081526040808320948916808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168715151790555192935090917fa8656e308026eeabce8f0bc18048433252318ab80ac79da0b3d3d8697dfba89190610c379086906154c3565b60405180910390a350610c48611b93565b610c50611ba7565b5050565b610c5c61456a565b610c64611931565b15610d2257835160005b8181146108e5578251600090610c8b90879063ffffffff611bd116565b90506000610cc8888481518110610c9e57fe5b602002602001015160a00151898581518110610cb657fe5b60200260200101516080015184612218565b9050610cd261456a565b610cf6898581518110610ce157fe5b6020026020010151838987815181106108ae57fe5b9050610d028682611d31565b955087866000015110610d17575050506108e5565b505050600101610c6e565b610d2a611a6d565b835160005b81811461095c578251600090610d4c90879063ffffffff611bd116565b90506000610d5f888481518110610c9e57fe5b9050610d6961456a565b610d78898581518110610ce157fe5b9050610d848682611d31565b955087866000015110610d995750505061095c565b505050600101610d2f565b600860209081526000928352604080842090915290825290205460ff1681565b600080610dd285858561225a565b90506005816008811115610de257fe5b1480610df957506007816008811115610df757fe5b145b15610e0e57610e0e610a6c60058787876122d9565b610e1a81868686612381565b95945050505050565b600760209081526000928352604080842090915290825290205460ff1681565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610e676145c1565b610e6f611adf565b610b598585858560006125f1565b610e8561456a565b610e90848484610c54565b9050828160000151101561096657610966610a6c60008584600001516126de565b600080610ec9600154856126fd90919063ffffffff16565b9050610b6b848285612711565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6060610efc611931565b15610f9f578351604080518281526020808402820101909152818015610f3c57816020015b610f2961456a565b815260200190600190039081610f215790505b50915060005b8181146108e557610f80868281518110610f5857fe5b6020026020010151868381518110610f6c57fe5b60200260200101518684815181106108ae57fe5b838281518110610f8c57fe5b6020908102919091010152600101610f42565b610fa7611a6d565b8351604080518281526020808402820101909152818015610fe257816020015b610fcf61456a565b815260200190600190039081610fc75790505b50915060005b81811461095c57610ffe868281518110610f5857fe5b83828151811061100a57fe5b6020908102919091010152600101610fe8565b61102561184f565b7f3a3e76d7a75e198aef1f53137e4f2a8a2ec74e2e9526db8404d08ccc9f1e621d60035482604051611058929190615542565b60405180910390a1600355565b606061106f611adf565b83516040805182815260208084028201019091528180156110aa57816020015b61109761456a565b81526020019060019003908161108f5790505b50915060005b81811461111a576110fb8682815181106110c657fe5b60200260200101518683815181106110da57fe5b60200260200101518684815181106110ee57fe5b6020026020010151612797565b83828151811061110757fe5b60209081029190910101526001016110b0565b5050611124611b93565b610966611ba7565b61113461456a565b61113c611adf565b611147848484612797565b9050611124611b93565b6111596145f5565b61116282612839565b60408301526020820152608082015161118e578060015b9081600681111561118657fe5b905250610b36565b60a082015161119f57806002611179565b8160a001518160400151106111b657806005611179565b81610100015142106111ca57806004611179565b6020808201516000908152600a909152604090205460ff16156111ef57806006611179565b610120820151825173ffffffffffffffffffffffffffffffffffffffff9081166000908152600b60209081526040808320606088015190941683529290522054111561123d57806006611179565b60038152919050565b60008061125e6001548561286a90919063ffffffff16565b9050610b6b848285612879565b61127361456a565b61127e848484610846565b9050828160200151101561096657610966610a6c60018584602001516126de565b835160005b81811461130f576113078160001b8783815181106112be57fe5b60200260200101518784815181106112d257fe5b60200260200101518785815181106112e657fe5b60200260200101518786815181106112fa57fe5b60200260200101516128ce565b6001016112a4565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290615915565b60405180910390fd5b6113536145c1565b61135b611adf565b610b598585858560016125f1565b6060611373611adf565b83516040805182815260208084028201019091528180156113ae57816020015b61139b61456a565b8152602001906001900390816113935790505b50915060005b81811461111a576113ff8682815181106113ca57fe5b60200260200101518683815181106113de57fe5b60200260200101518684815181106113f257fe5b6020026020010151612a92565b83828151811061140b57fe5b60209081029190910101526001016113b4565b61142661184f565b61084381611896565b60015481565b61143d61184f565b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148557600080fd5b505afa158015611499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114bd9190810190614f14565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561151b5761151b610a6c8383612ac5565b7fffffffff0000000000000000000000000000000000000000000000000000000082166000908152600260205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c03194906115bc9084908690615657565b60405180910390a1505050565b600b60209081526000928352604080842090915290825290205481565b7f20c13b0b0000000000000000000000000000000000000000000000000000000081565b611612611adf565b805160005b8181146116425761163a83828151811061162d57fe5b6020026020010151611b4e565b600101611617565b505061083b611b93565b61165461456a565b61165c611adf565b611147848484612a92565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b61168b61184f565b73ffffffffffffffffffffffffffffffffffffffff81166116b6576116b1610a6c612b67565b610843565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6060611730611931565b156117cd57825160408051828152602080840282010190915281801561176a57816020015b60608152602001906001900390816117555790505b50915060005b8181146117c6576117a785828151811061178657fe5b602002602001015185838151811061179a57fe5b6020026020010151611953565b8382815181106117b357fe5b6020908102919091010152600101611770565b50506107f5565b6117d5611a6d565b825160408051828152602080840282010190915281801561180a57816020015b60608152602001906001900390816117f55790505b50915060005b8181146118455761182685828151811061178657fe5b83828151811061183257fe5b6020908102919091010152600101611810565b50506107f5611aaf565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107b1576000546107b190610a6c90339073ffffffffffffffffffffffffffffffffffffffff16612b9e565b6004546040517fe1a5430ebec577336427f40f15822f1f36c5e3509ff209d6db9e6c9e6941cb0b916118e29173ffffffffffffffffffffffffffffffffffffffff90911690849061537b565b60405180910390a1600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff1690565b6060600061196c600154856126fd90919063ffffffff16565b9050611979848483612bbb565b60608401516119888180612c8f565b60008281526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556080870151905160609130916119d6919061530d565b600060405180830381855af49150503d8060008114611a11576040519150601f19603f3d011682016040523d82523d6000602084013e611a16565b606091505b509150915081611a2d57611a2d610a6c8583612cf2565b611a38836000612c8f565b60405184907fa4a7329f1dd821363067e07d359e347b4af9b1efe4b6cccf13240228af3c800d90600090a29695505050505050565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1690556107b1612d0f565b60005474010000000000000000000000000000000000000000900460ff1615611b0d57611b0d610a6c612d43565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b611b566145f5565b611b5f82611151565b9050611b6b8282612d7a565b600381516006811115611b7a57fe5b14611b855750610843565b610c50828260200151612e29565b611b9b611931565b6107b1576107b1612d0f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b600082821115611bea57611bea610a6c60028585612ed2565b50900390565b611bf861456a565b6040516060907f9b44d5560000000000000000000000000000000000000000000000000000000090611c3290879087908790602401615a63565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060603073ffffffffffffffffffffffffffffffffffffffff1683604051611cba919061530d565b600060405180830381855af49150503d8060008114611cf5576040519150601f19603f3d011682016040523d82523d6000602084013e611cfa565b606091505b50915091508115611d2757805160a014611d1057fe5b80806020019051611d249190810190614f30565b93505b5050509392505050565b611d3961456a565b81518351611d4c9163ffffffff612ef116565b815260208083015190840151611d679163ffffffff612ef116565b602082015260408083015190840151611d859163ffffffff612ef116565b604082015260608083015190840151611da39163ffffffff612ef116565b606082015260808083015190840151611dc19163ffffffff612ef116565b608082015292915050565b60065460009073ffffffffffffffffffffffffffffffffffffffff16818115611df55781611df7565b335b9250505090565b6060634ad3127560e01b848484604051602401611e1d939291906153a2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b611eb3614599565b8551611ec657611ec6610a6c6000612f0d565b8451611ed957611ed9610a6c6001612f0d565b8351865114611eef57611eef610a6c6002612f0d565b8251855114611f0557611f05610a6c6003612f0d565b8551604051908082528060200260200182016040528015611f4057816020015b611f2d61456a565b815260200190600190039081611f255790505b5081528451604080518281526020808402820101909152908015611f7e57816020015b611f6b61456a565b815260200190600190039081611f635790505b506020820152600080611f8f614617565b88600081518110611f9c57fe5b60200260200101519050611fae614617565b88600081518110611fbb57fe5b602002602001015190506000611fd083612839565b9150506000611fde83612839565b915050611fe961456a565b611ff161456a565b611ff96145c1565b61202c87878f8c8151811061200a57fe5b60200260200101518f8c8151811061201e57fe5b60200260200101518f6125f1565b80516020015190915061204690869063ffffffff612ef116565b945061206381602001516020015185612ef190919063ffffffff16565b9350612073838260000151611d31565b9250612083828260200151611d31565b91506120a081604001518b60400151612ef190919063ffffffff16565b60408b0152606080820151908b01516120be9163ffffffff612ef116565b60608b015260a08701518510612169578951805160018b019a85929181106120e257fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525092508e5189141561214657818a60200151898151811061213557fe5b602002602001018190525050612207565b8e898151811061215257fe5b6020026020010151965061216587612839565b9550505b8560a00151841061220157818a6020015189806001019a508151811061218b57fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525091508d518814156121de57828a600001518a8151811061213557fe5b8d88815181106121ea57fe5b602002602001015195506121fd86612839565b9450505b50611ff1565b505050505050505095945050505050565b6000610b6b8361224e61223282600163ffffffff611bd116565b612242888763ffffffff612fac16565b9063ffffffff612ef116565b9063ffffffff612fdd16565b6000612267848484613007565b905073ffffffffffffffffffffffffffffffffffffffff831661229457612294610a6c60068686866122d9565b600881818111156122a157fe5b60ff16106122b9576122b9610a6c60038686866122d9565b60008160088111156122c757fe5b141561096657610966610a6c60048686865b6060637e5a231860e01b858585856040516024016122fa94939291906158ba565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050949350505050565b6000600185600881111561239157fe5b14156123b85781516001146123b0576123b0610a6c60028686866122d9565b506000610b6b565b60028560088111156123c657fe5b14156124bf5781516042146123e5576123e5610a6c60028686866122d9565b6000826000815181106123f457fe5b016020015160f81c9050600061241184600163ffffffff61304616565b9050600061242685602163ffffffff61304616565b905060006001888585856040516000815260200160405260405161244d949392919061560c565b6020604051602081039080840390855afa15801561246f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8981169116149550610b6b945050505050565b60038560088111156124cd57fe5b141561257a5781516042146124ec576124ec610a6c60028686866122d9565b6000826000815181106124fb57fe5b016020015160f81c9050600061251884600163ffffffff61304616565b9050600061252d85602163ffffffff61304616565b905060006001886040516020016125449190615329565b604051602081830303815290604052805190602001208585856040516000815260200160405260405161244d949392919061560c565b600485600881111561258857fe5b14156125a057612599848484613070565b9050610b6b565b60068560088111156125ae57fe5b146125b557fe5b50600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915290205460ff16949350505050565b6125f96145c1565b6101608087015161014080880191909152870151908601526126196145f5565b61262287611151565b905061262c6145f5565b61263587611151565b90506000612641611dcc565b905061264f8984838a613266565b61265b88838389613266565b61266f89898560200151856020015161337e565b6126888989856040015185604001516003543a8b6133c3565b93506126a38982856020015186604001518860000151613518565b6126bc8882846020015185604001518860200151613518565b6126d2836020015183602001518b8b85896135f6565b50505095945050505050565b60606318e4b14160e01b848484604051602401611e1d9392919061589e565b60006109668261270c8561379d565b613825565b60608301516000908161272585838661225a565b9050600581600881111561273557fe5b141561275757612750612748878761385f565b868487613897565b925061278e565b600781600881111561276557fe5b141561277f57612750612778878761385f565b838661394b565b61278b81868487612381565b92505b50509392505050565b61279f61456a565b6127a76145f5565b6127b085611151565b905060006127bc611dcc565b90506127ca86838387613266565b60006127e783604001518860a00151611bd190919063ffffffff16565b905060006127f5878361395a565b905061280588826003543a613970565b945060008460200151905061282189858388604001518a613518565b61282d818a86896139e7565b50505050509392505050565b6000806128516001548461286a90919063ffffffff16565b6000818152600960205260409020549092509050915091565b60006109668261270c85613a7e565b82516000908161288a85838661225a565b9050600581600881111561289a57fe5b14156128ad576127506127488787613b55565b60078160088111156128bb57fe5b141561277f576127506127788787613b55565b8015612a8b5760208451816128df57fe5b066004146128f6576128f6610a6c60008787613b8d565b6000612908858263ffffffff613bac16565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168061296757612967610a6c60018989613b8d565b6040516060907fa85e59e400000000000000000000000000000000000000000000000000000000906129a39089908990899089906024016156b2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608373ffffffffffffffffffffffffffffffffffffffff1683604051612a2b919061530d565b6000604051808303816000865af19150503d8060008114612a68576040519150601f19603f3d011682016040523d82523d6000602084013e612a6d565b606091505b509150915081612a8557612a85610a6c8b8b84613bf8565b50505050505b5050505050565b612a9a61456a565b612aa5848484612797565b90508281602001511461096657610966610a6c60028584602001516126de565b60606311c7b72060e01b8383604051602401612ae2929190615657565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401612ae292919061537b565b82602001514210612bd457612bd4610a6c600183613c17565b60408301513a8114612bee57612bee610a6c833a84613c34565b60065473ffffffffffffffffffffffffffffffffffffffff168015612c1a57612c1a610a6c8483613c53565b60008381526005602052604090205460ff1615612c3f57612c3f610a6c600085613c17565b606085015173ffffffffffffffffffffffffffffffffffffffff81163314801590612c725750612c70868587612711565b155b15612c8757612c87610a6c60018684896122d9565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff82163314610c50576006805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555050565b60606320d11f6160e01b8383604051602401612ae2929190615550565b47801561084357604051339082156108fc029083906000818181858888f19350505050158015610c50573d6000803e3d6000fd5b60408051808201909152600481527f0c3b823f00000000000000000000000000000000000000000000000000000000602082015290565b606082015173ffffffffffffffffffffffffffffffffffffffff1615612dce57606082015173ffffffffffffffffffffffffffffffffffffffff163314612dce57612dce610a6c6002836020015133613c70565b6000612dd8611dcc565b90508073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff1614612e2457612e24610a6c6000846020015184613c70565b505050565b6000818152600a60205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558281015183516101408501516101608601519351859473ffffffffffffffffffffffffffffffffffffffff9485169493909316927f02c310a9a43963ff31a754a4099cc435ed498049687539d72d7818d9b093415c92612ec692909190339061571a565b60405180910390a45050565b606063e946c1bb60e01b848484604051602401611e1d93929190615845565b60008282018381101561096657610966610a6c60008686612ed2565b606063d4092f4f60e01b82604051602401612f289190615832565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b600082612fbb575060006107f5565b82820282848281612fc857fe5b041461096657610966610a6c60018686612ed2565b600081612ff357612ff3610a6c60038585612ed2565b6000828481612ffe57fe5b04949350505050565b600081516000141561302357613023610a6c60028686866122d9565b8160018351038151811061303357fe5b016020015160f81c6008811115610b6b57fe5b6000816020018351101561306757613067610a6c6005855185602001613c8f565b50016020015190565b80516000906130a7837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830163ffffffff613cae16565b6040516060907f1626ba7e00000000000000000000000000000000000000000000000000000000906130df9088908790602401615550565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061316e848363ffffffff613cae16565b600060608673ffffffffffffffffffffffffffffffffffffffff1683604051613197919061530d565b600060405180830381855afa9150503d80600081146131d2576040519150601f19603f3d011682016040523d82523d6000602084013e6131d7565b606091505b50915091508180156131ea575080516020145b1561324c577fb06713810000000000000000000000000000000000000000000000000000000061322182600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610966565b61325b610a6c89898985613cb2565b505050509392505050565b60038351600681111561327557fe5b1461328f5761328f610a6c84602001518560000151613cd3565b606084015173ffffffffffffffffffffffffffffffffffffffff16156132e357606084015173ffffffffffffffffffffffffffffffffffffffff1633146132e3576132e3610a6c6002856020015133613c70565b602084015173ffffffffffffffffffffffffffffffffffffffff161561334d578173ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff161461334d5761334d610a6c6001856020015185613c70565b61335c84846020015183612879565b61337857613378610a6c600085602001518760000151856122d9565b50505050565b60a080840151908501516133979163ffffffff612fac16565b608080850151908601516133b09163ffffffff612fac16565b101561337857613378610a6c8383613cf0565b6133cb6145c1565b60a08801516000906133e3908863ffffffff611bd116565b905060006133fa8a608001518b60a0015184613d0d565b90506000613415888b60a00151611bd190919063ffffffff16565b9050600061342c8b608001518c60a0015184613d0d565b90508515613449576134428c8c85878587613d41565b945061345a565b6134578c8c85878587613e13565b94505b84515160808d015160c08e0151613472929190613d0d565b85516040015284516020015160a08d015160e08e0151613493929190613d0d565b85516060015260208501515160808c015160c08d01516134b4929190613d0d565b856020015160400181815250506134dc8560200151602001518c60a001518d60e00151613d0d565b60208601516060015260006134f7888a63ffffffff612fac16565b86516080908101829052602088015101525050505050979650505050505050565b602081015161352e90839063ffffffff612ef116565b600960008581526020019081526020016000208190555082856040015173ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff167f6869791f0a34781b29882982cc39e882768cf2c96995c2a110c577c53bc932d58861014001518961016001518a61018001518b6101a001518b338a600001518b602001518c604001518d606001518e608001516040516135e79b9a99989796959493929190615766565b60405180910390a45050505050565b835183516040808701519086015161014087015185516020015161361f918b91869088906128ce565b6136398a89610140015186868960200151602001516128ce565b6136538988610180015185848960200151604001516128ce565b61366d8a89610180015186858960000151604001516128ce565b6136838a896101400151868989604001516128ce565b61369989886101400151858989606001516128ce565b60006136b18b8b88600001516080015188888c613eac565b9050806136ce578551600060809182018190526020880151909101525b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561371e57506101a080890151908a015161371e9163ffffffff613f0816565b1561375c576137578b8a6101a0015189866137528b60200151606001518c6000015160600151612ef190919063ffffffff16565b6128ce565b613790565b6137768a896101a0015189858a60200151606001516128ce565b6137908b8a6101a0015189868a60000151606001516128ce565b5050505050505050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6040516060907fde047db40000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a8e565b805160009060158110156138b5576138b5610a6c60028787876122d9565b60006138e9847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb840163ffffffff613f2d16565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526008602090815260408083209385168352929052205490915060ff1661393357613933610a6c8683613f6d565b6139408188866015613f8a565b979650505050505050565b6000610b6b8385846001613f8a565b60008183106139695781610966565b5090919050565b61397861456a565b6020810184905260a08501516080860151613994918691613d0d565b815260a085015160c08601516139ab918691613d0d565b604082015260a085015160e08601516139c5918691613d0d565b60608201526139da828463ffffffff612fac16565b6080820152949350505050565b613a018484610160015184866000015185602001516128ce565b613a1b8484610140015185600001518585600001516128ce565b613a3584846101a0015184866040015185606001516128ce565b613a53848461018001518560000151866040015185604001516128ce565b6000613a69858360800151866000015186614161565b905080612a8b57600060808301525050505050565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a753493909290916020871015613aca57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b6040516060907f3efe50c80000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a41565b606063488219a660e01b848484604051602401611e1d9392919061580a565b60008160040183511015613bcd57613bcd610a6c6003855185600401613c8f565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b6060634678472b60e01b848484604051602401611e1d93929190615569565b606063f598518460e01b8383604051602401612ae29291906158fe565b606063a26dac0960e01b848484604051602401611e1d939291906155f6565b606063dec4aedf60e01b8383604051602401612ae29291906154d7565b606063e53c76c860e01b848484604051602401611e1d93929190615866565b6060632800659560e01b848484604051602401611e1d939291906158ac565b9052565b6060631b8388f760e01b858585856040516024016122fa94939291906154fb565b606063fdb6ca8d60e01b8383604051602401612ae2929190615594565b606063b6555d6f60e01b8383604051602401612ae2929190615542565b6000613d1a8484846141a6565b15613d2d57613d2d610a6c85858561420c565b610b6b8361224e868563ffffffff612fac16565b613d496145c1565b81851184841184861115613d6957613d6289868661422b565b9250613db8565b86841115613da95782518790528251602001869052608088015160a0890151613d93919089613d0d565b6020808501805192909252905101879052613db8565b613db587878787614268565b92505b8115613dde576020808401510151835151613dd89163ffffffff611bd116565b60408401525b8015613e065782516020908101519084015151613e009163ffffffff611bd116565b60608401525b50505b9695505050505050565b613e1b6145c1565b82841115613e3557613e2e87848461422b565b9050613e83565b82841015613e745780518590528051602090810185905281015184905260a08601516080870151613e67919086614293565b6020808301510152613e83565b613e8085858585614268565b90505b6020808201510151815151613e9d9163ffffffff611bd116565b60408201529695505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff168015613efe57476000613edf8a84848b8b8a6142cb565b9050613ef189848385038b8a8a6142cb565b5060019350505050613e09565b6000915050613e09565b6000815183511480156109665750508051602091820120825192909101919091201490565b60008160140183511015613f4e57613f4e610a6c6004855185601401613c8f565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b606063a15c0d0660e01b8383604051602401612ae292919061537b565b8151600090613fa18484830363ffffffff613cae16565b6040516060907f20c13b0b0000000000000000000000000000000000000000000000000000000090613fd990889088906024016156f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050614068858363ffffffff613cae16565b600060608873ffffffffffffffffffffffffffffffffffffffff1683604051614091919061530d565b600060405180830381855afa9150503d80600081146140cc576040519150601f19603f3d011682016040523d82523d6000602084013e6140d1565b606091505b50915091508180156140e4575080516020145b15614146577f20c13b0b0000000000000000000000000000000000000000000000000000000061411b82600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610b6b565b614155610a6c8a8a8a85614403565b50505050949350505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff16801561419c576141918682478888886142cb565b506001915050610b6b565b6000915050610b6b565b6000826141b8576141b8610a6c614424565b8115806141c3575083155b156141d057506000610966565b600083806141da57fe5b85840990506141ef858463ffffffff612fac16565b614201826103e863ffffffff612fac16565b101595945050505050565b606063339f3de260e01b848484604051602401611e1d939291906155f6565b6142336145c1565b60208082018051859052518101839052815101839052608084015160a085015161425e919085613d0d565b8151529392505050565b6142706145c1565b805194909452835160209081019390935282840180519290925290519091015290565b60006142a084848461445b565b156142b3576142b3610a6c85858561420c565b610b6b8361224e61223282600163ffffffff611bd116565b60008385106142d75750825b6040516060907fa3b4a3270000000000000000000000000000000000000000000000000000000090614311908690869089906024016153a2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608873ffffffffffffffffffffffffffffffffffffffff16848460405161439a919061530d565b60006040518083038185875af1925050503d80600081146143d7576040519150601f19603f3d011682016040523d82523d6000602084013e6143dc565b606091505b5091509150816143f6576143f6610a6c8b898989866144bf565b5050509695505050505050565b6060635bd0428d60e01b858585856040516024016122fa94939291906153d3565b60408051808201909152600481527fa791837c00000000000000000000000000000000000000000000000000000000602082015290565b60008261446d5761446d610a6c614424565b811580614478575083155b1561448557506000610966565b6000838061448f57fe5b8584099050836144a5818363ffffffff611bd116565b816144ac57fe5b0690506141ef858463ffffffff612fac16565b60606387cb1e7560e01b86868686866040516024016144e29594939291906155b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905095945050505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280606081526020016060815260200160008152602001600081525090565b60405180608001604052806145d461456a565b81526020016145e161456a565b815260200160008152602001600081525090565b6040805160608101909152806000815260006020820181905260409091015290565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff811681146107f557600080fd5b600082601f830112614712578081fd5b813561472561472082615b1f565b615af8565b81815291506020808301908481018184028601820187101561474657600080fd5b60005b8481101561476d5761475b88836146de565b84529282019290820190600101614749565b505050505092915050565b600082601f830112614788578081fd5b813561479661472082615b1f565b8181529150602080830190840160005b838110156147d3576147be8760208435890101614896565b835260209283019291909101906001016147a6565b5050505092915050565b600082601f8301126147ed578081fd5b81356147fb61472082615b1f565b8181529150602080830190840160005b838110156147d357614823876020843589010161491d565b8352602092830192919091019060010161480b565b600082601f830112614848578081fd5b813561485661472082615b1f565b81815291506020808301908481018184028601820187101561487757600080fd5b60005b8481101561476d5781358452928201929082019060010161487a565b600082601f8301126148a6578081fd5b813567ffffffffffffffff8111156148bc578182fd5b6148ed60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601615af8565b915080825283602082850101111561490457600080fd5b8060208401602084013760009082016020015292915050565b60006101c0808385031215614930578182fd5b61493981615af8565b91505061494683836146de565b815261495583602084016146de565b602082015261496783604084016146de565b604082015261497983606084016146de565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff808211156149db57600080fd5b6149e786838701614896565b83850152610160925082850135915080821115614a0357600080fd5b614a0f86838701614896565b83850152610180925082850135915080821115614a2b57600080fd5b614a3786838701614896565b838501526101a0925082850135915080821115614a5357600080fd5b50614a6085828601614896565b82840152505092915050565b600060a08284031215614a7d578081fd5b614a8760a0615af8565b90508135815260208201356020820152604082013560408201526060820135614aaf81615b89565b6060820152608082013567ffffffffffffffff811115614ace57600080fd5b614ada84828501614896565b60808301525092915050565b600060208284031215614af7578081fd5b61096683836146de565b60008060408385031215614b13578081fd5b614b1d84846146de565b9150614b2c84602085016146de565b90509250929050565b60008060408385031215614b47578182fd5b614b5184846146de565b915060208301358015158114614b65578182fd5b809150509250929050565b60008060008060808587031215614b85578182fd5b843567ffffffffffffffff80821115614b9c578384fd5b614ba888838901614778565b95506020870135915080821115614bbd578384fd5b614bc988838901614702565b94506040870135915080821115614bde578384fd5b614bea88838901614702565b93506060870135915080821115614bff578283fd5b50614c0c87828801614838565b91505092959194509250565b600060208284031215614c29578081fd5b813567ffffffffffffffff811115614c3f578182fd5b610b6b848285016147dd565b60008060008060808587031215614c60578182fd5b843567ffffffffffffffff80821115614c77578384fd5b614c83888389016147dd565b95506020870135915080821115614c98578384fd5b614ca4888389016147dd565b94506040870135915080821115614cb9578384fd5b614cc588838901614778565b93506060870135915080821115614cda578283fd5b50614c0c87828801614778565b600080600060608486031215614cfb578081fd5b833567ffffffffffffffff80821115614d12578283fd5b614d1e878388016147dd565b94506020860135915080821115614d33578283fd5b614d3f87838801614838565b93506040860135915080821115614d54578283fd5b50614d6186828701614778565b9150509250925092565b600080600060608486031215614d7f578081fd5b833567ffffffffffffffff80821115614d96578283fd5b614da2878388016147dd565b9450602086013593506040860135915080821115614d54578283fd5b60008060408385031215614dd0578182fd5b823567ffffffffffffffff80821115614de7578384fd5b81850186601f820112614df8578485fd5b80359250614e0861472084615b1f565b83815260208082019190838101885b87811015614e4057614e2e8c848435890101614a6c565b85529382019390820190600101614e17565b50919750880135945050505080821115614e58578283fd5b50614e6585828601614778565b9150509250929050565b600060208284031215614e80578081fd5b5035919050565b60008060408385031215614e99578182fd5b823591506020830135614b6581615b89565b600080600060608486031215614ebf578081fd5b833592506020840135614ed181615b89565b9150604084013567ffffffffffffffff811115614eec578182fd5b614d6186828701614896565b600060208284031215614f09578081fd5b813561096681615bab565b600060208284031215614f25578081fd5b815161096681615bab565b600060a08284031215614f41578081fd5b614f4b60a0615af8565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b600060208284031215614f92578081fd5b813567ffffffffffffffff811115614fa8578182fd5b610b6b8482850161491d565b60008060408385031215614fc6578182fd5b823567ffffffffffffffff80821115614fdd578384fd5b614fe98683870161491d565b93506020850135915080821115614ffe578283fd5b50614e6585828601614896565b60008060008060808587031215615020578182fd5b843567ffffffffffffffff80821115615037578384fd5b6150438883890161491d565b95506020870135915080821115615058578384fd5b6150648883890161491d565b94506040870135915080821115615079578384fd5b61508588838901614896565b9350606087013591508082111561509a578283fd5b50614c0c87828801614896565b6000806000606084860312156150bb578081fd5b833567ffffffffffffffff808211156150d2578283fd5b6150de8783880161491d565b94506020860135935060408601359150808211156150fa578283fd5b50614d6186828701614896565b60008060408385031215615119578182fd5b823567ffffffffffffffff80821115615130578384fd5b614fe986838701614a6c565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156151925761517c8683516151e6565b60a0959095019460209190910190600101615169565b5093949350505050565b600081518084526151b4816020860160208601615b3f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061522684845161513c565b6020830151615238602086018261513c565b50604083015161524b604086018261513c565b50606083015161525e606086018261513c565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526152b78387018261519c565b915050610160915081840151858203838701526152d4828261519c565b9250505061018080840151858303828701526152f0838261519c565b9150506101a091508184015185820383870152613e09828261519c565b6000825161531f818460208701615b3f565b9190910192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260806020830152615402608083018661519c565b8281036040840152615414818661519c565b8381036060850152615426818661519c565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156154a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261549185835161519c565b94509285019290850190600101615457565b5092979650505050505050565b6000602082526109666020830184615156565b901515815260200190565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600085825273ffffffffffffffffffffffffffffffffffffffff8516602083015260806040830152615530608083018561519c565b8281036060840152613940818561519c565b918252602082015260400190565b600083825260406020830152610b6b604083018461519c565b600084825260606020830152615582606083018561519c565b8281036040840152613e09818561519c565b828152604081016155a483615b7f565b8260208301529392505050565b600086825285602083015273ffffffffffffffffffffffffffffffffffffffff808616604084015280851660608401525060a0608083015261394060a083018461519c565b9283526020830191909152604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600060208252610966602083018461519c565b6000608082526156c5608083018761519c565b73ffffffffffffffffffffffffffffffffffffffff95861660208401529390941660408201526060015292915050565b600060408252615708604083018561519c565b8281036020840152610e1a818561519c565b60006060825261572d606083018661519c565b828103602084015261573f818661519c565b91505073ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b600061016080835261577a8184018f61519c565b838103602085015261578c818f61519c565b91505082810360408401526157a1818d61519c565b83810360608501526157b3818d61519c565b73ffffffffffffffffffffffffffffffffffffffff9b8c16608086015299909a1660a0840152505060c081019590955260e08501939093526101008401919091526101208301526101409091015295945050505050565b600061581585615b6b565b84825283602083015260606040830152610e1a606083018461519c565b6020810161583f83615b75565b91905290565b6060810161585285615b75565b938152602081019290925260409091015290565b606081016003851061587457fe5b938152602081019290925273ffffffffffffffffffffffffffffffffffffffff1660409091015290565b606081016003851061585257fe5b606081016008851061585257fe5b60006158c586615b7f565b85825284602083015273ffffffffffffffffffffffffffffffffffffffff8416604083015260806060830152613e09608083018461519c565b6040810161590b84615b6b565b9281526020015290565b60208082526014908201527f5452414e53464552535f5355434345535346554c000000000000000000000000604082015260600190565b60006020825282516080602084015261596860a0840182615156565b602085015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08482030160408501526159a38183615156565b604086015160608601526060860151608086015280935050505092915050565b60a081016107f582846151e6565b6000610180820190506159e58284516151e6565b60208301516159f760a08401826151e6565b5060408301516101408301526060909201516101609091015290565b81516060820190615a2381615b7f565b80835250602083015160208301526040830151604083015292915050565b600060408252615a546040830185615216565b90508260208301529392505050565b600060608252615a766060830186615216565b8460208401528281036040840152613e09818561519c565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152615ae860e084018261519c565b9150508260208301529392505050565b60405181810167ffffffffffffffff81118282101715615b1757600080fd5b604052919050565b600067ffffffffffffffff821115615b35578081fd5b5060209081020190565b60005b83811015615b5a578181015183820152602001615b42565b838111156133785750506000910152565b6002811061084357fe5b6004811061084357fe5b6007811061084357fe5b73ffffffffffffffffffffffffffffffffffffffff8116811461084357600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461084357600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a723158206628f553d4c70843d623568428c39acd1576188dbf22ecde8672c8c8de9525c06c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x6080604052600436106102dc5760003560e01c80638d45cd2311610184578063beee2e14116100d6578063dd885e2d1161008a578063eea086ba11610064578063eea086ba14610735578063f2fde38b1461074a578063fc74896d1461076a576102dc565b8063dd885e2d146106ed578063dedfc1f11461070f578063e14b58c414610722576102dc565b8063c26cfecd116100bb578063c26cfecd14610698578063c585bb93146106ad578063d9bfa73e146106cd576102dc565b8063beee2e1414610665578063c0fa16cc14610678576102dc565b80639b44d55611610138578063a6c3bf3311610112578063a6c3bf331461061f578063b04fbddd14610632578063b718e29214610652576102dc565b80639b44d556146105bf5780639d3fa4b9146105d2578063a12dcc6f146105ff576102dc565b80638ea8dfe4116101695780638ea8dfe41461056c5780639331c7421461058c5780639694a402146105ac576102dc565b80638d45cd23146105375780638da5cb5b14610557576102dc565b8063607041081161023d5780637b8e3514116101f1578063850a1501116101cb578063850a1501146104ef57806388ec79fb146105045780638bc8efb314610524576102dc565b80637b8e35141461048f5780638171c407146104af57806382c174d0146104cf576102dc565b80636fcf3e9e116102225780636fcf3e9e1461045657806377fcce681461046957806378d29ac11461047c576102dc565b806360704108146104095780636a1a80fd14610436576102dc565b80632ac1262211610294578063369da09911610279578063369da099146103c357806346c02d7a146103e35780634f9559b1146103f6576102dc565b80632ac12622146103905780632da62987146103b0576102dc565b80631ce4c78b116102c55780631ce4c78b1461032e5780632280c91014610350578063288cdc9114610370576102dc565b80630228e168146102e15780630efca18514610317575b600080fd5b3480156102ed57600080fd5b506103016102fc366004614e6f565b61078a565b60405161030e91906154c3565b60405180910390f35b34801561032357600080fd5b5061032c61079f565b005b34801561033a57600080fd5b506103436107b3565b60405161030e91906154ce565b61036361035e366004615107565b6107b9565b60405161030e919061569f565b34801561037c57600080fd5b5061034361038b366004614e6f565b6107fb565b34801561039c57600080fd5b506103016103ab366004614e6f565b61080d565b61032c6103be366004614f81565b610822565b6103d66103d1366004614d6b565b610846565b60405161030e91906159c3565b61032c6103f1366004614e6f565b61096d565b61032c610404366004614e6f565b6109e0565b34801561041557600080fd5b50610429610424366004614ef8565b610aed565b60405161030e919061535a565b610449610444366004614c4b565b610b3b565b60405161030e919061594c565b610449610464366004614c4b565b610b73565b61032c610477366004614b35565b610b91565b6103d661048a366004614d6b565b610c54565b34801561049b57600080fd5b506103016104aa366004614b01565b610da4565b3480156104bb57600080fd5b506103016104ca366004614eab565b610dc4565b3480156104db57600080fd5b506103016104ea366004614e87565b610e23565b3480156104fb57600080fd5b50610429610e43565b61051761051236600461500b565b610e5f565b60405161030e91906159d1565b6103d6610532366004614d6b565b610e7d565b34801561054357600080fd5b50610301610552366004615107565b610eb1565b34801561056357600080fd5b50610429610ed6565b61057f61057a366004614ce7565b610ef2565b60405161030e91906154b0565b34801561059857600080fd5b5061032c6105a7366004614e6f565b61101d565b61057f6105ba366004614ce7565b611065565b6103d66105cd3660046150a7565b61112c565b3480156105de57600080fd5b506105f26105ed366004614f81565b611151565b60405161030e9190615a13565b34801561060b57600080fd5b5061030161061a366004614fb4565b611246565b6103d661062d366004614d6b565b61126b565b34801561063e57600080fd5b5061032c61064d366004614b70565b61129f565b61051761066036600461500b565b61134b565b61057f610673366004614ce7565b611369565b34801561068457600080fd5b5061032c610693366004614ae6565b61141e565b3480156106a457600080fd5b5061034361142f565b3480156106b957600080fd5b5061032c6106c8366004614ae6565b611435565b3480156106d957600080fd5b506103436106e8366004614b01565b6115c9565b3480156106f957600080fd5b506107026115e6565b60405161030e919061562a565b61032c61071d366004614c18565b61160a565b6103d66107303660046150a7565b61164c565b34801561074157600080fd5b50610429611667565b34801561075657600080fd5b5061032c610765366004614ae6565b611683565b61077d610778366004614dbe565b611726565b60405161030e9190615432565b60056020526000908152604090205460ff1681565b6107a761184f565b6107b16000611896565b565b60035481565b60606107c3611931565b156107d9576107d28383611953565b90506107f5565b6107e1611a6d565b6107eb8383611953565b90506107f5611aaf565b92915050565b60096020526000908152604090205481565b600a6020526000908152604090205460ff1681565b61082a611adf565b61083381611b4e565b61083b611b93565b610843611ba7565b50565b61084e61456a565b610856611931565b156108ec57835160005b8181146108e5576000610880846020015187611bd190919063ffffffff16565b905061088a61456a565b6108bb88848151811061089957fe5b6020026020010151838886815181106108ae57fe5b6020026020010151611bf0565b90506108c78582611d31565b9450868560200151106108db5750506108e5565b5050600101610860565b5050610966565b6108f4611a6d565b835160005b81811461095c576000610919846020015187611bd190919063ffffffff16565b905061092361456a565b61093288848151811061089957fe5b905061093e8582611d31565b94508685602001511061095257505061095c565b50506001016108f9565b5050610966611aaf565b9392505050565b610975611adf565b600061097f611dcc565b600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff90941683529290522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555061083b611b93565b6109e8611adf565b60006109f2611dcc565b9050600073ffffffffffffffffffffffffffffffffffffffff82163314610a195733610a1c565b60005b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600b60209081526040808320938516835292905220549091506001840190808211610a7157610a71610a6c858584611dfe565b611ea3565b73ffffffffffffffffffffffffffffffffffffffff8085166000818152600b602090815260408083209488168084529490915290819020859055517f82af639571738f4ebd4268fb0363d8957ebe1bbb9e78dba5ebd69eed39b154f090610ad99086906154ce565b60405180910390a35050505061083b611b93565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff165b919050565b610b43614599565b610b4b611adf565b610b59858585856001611eab565b9050610b63611b93565b610b6b611ba7565b949350505050565b610b7b614599565b610b83611adf565b610b59858585856000611eab565b610b99611adf565b6000610ba3611dcc565b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600860209081526040808320948916808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168715151790555192935090917fa8656e308026eeabce8f0bc18048433252318ab80ac79da0b3d3d8697dfba89190610c379086906154c3565b60405180910390a350610c48611b93565b610c50611ba7565b5050565b610c5c61456a565b610c64611931565b15610d2257835160005b8181146108e5578251600090610c8b90879063ffffffff611bd116565b90506000610cc8888481518110610c9e57fe5b602002602001015160a00151898581518110610cb657fe5b60200260200101516080015184612218565b9050610cd261456a565b610cf6898581518110610ce157fe5b6020026020010151838987815181106108ae57fe5b9050610d028682611d31565b955087866000015110610d17575050506108e5565b505050600101610c6e565b610d2a611a6d565b835160005b81811461095c578251600090610d4c90879063ffffffff611bd116565b90506000610d5f888481518110610c9e57fe5b9050610d6961456a565b610d78898581518110610ce157fe5b9050610d848682611d31565b955087866000015110610d995750505061095c565b505050600101610d2f565b600860209081526000928352604080842090915290825290205460ff1681565b600080610dd285858561225a565b90506005816008811115610de257fe5b1480610df957506007816008811115610df757fe5b145b15610e0e57610e0e610a6c60058787876122d9565b610e1a81868686612381565b95945050505050565b600760209081526000928352604080842090915290825290205460ff1681565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610e676145c1565b610e6f611adf565b610b598585858560006125f1565b610e8561456a565b610e90848484610c54565b9050828160000151101561096657610966610a6c60008584600001516126de565b600080610ec9600154856126fd90919063ffffffff16565b9050610b6b848285612711565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6060610efc611931565b15610f9f578351604080518281526020808402820101909152818015610f3c57816020015b610f2961456a565b815260200190600190039081610f215790505b50915060005b8181146108e557610f80868281518110610f5857fe5b6020026020010151868381518110610f6c57fe5b60200260200101518684815181106108ae57fe5b838281518110610f8c57fe5b6020908102919091010152600101610f42565b610fa7611a6d565b8351604080518281526020808402820101909152818015610fe257816020015b610fcf61456a565b815260200190600190039081610fc75790505b50915060005b81811461095c57610ffe868281518110610f5857fe5b83828151811061100a57fe5b6020908102919091010152600101610fe8565b61102561184f565b7f3a3e76d7a75e198aef1f53137e4f2a8a2ec74e2e9526db8404d08ccc9f1e621d60035482604051611058929190615542565b60405180910390a1600355565b606061106f611adf565b83516040805182815260208084028201019091528180156110aa57816020015b61109761456a565b81526020019060019003908161108f5790505b50915060005b81811461111a576110fb8682815181106110c657fe5b60200260200101518683815181106110da57fe5b60200260200101518684815181106110ee57fe5b6020026020010151612797565b83828151811061110757fe5b60209081029190910101526001016110b0565b5050611124611b93565b610966611ba7565b61113461456a565b61113c611adf565b611147848484612797565b9050611124611b93565b6111596145f5565b61116282612839565b60408301526020820152608082015161118e578060015b9081600681111561118657fe5b905250610b36565b60a082015161119f57806002611179565b8160a001518160400151106111b657806005611179565b81610100015142106111ca57806004611179565b6020808201516000908152600a909152604090205460ff16156111ef57806006611179565b610120820151825173ffffffffffffffffffffffffffffffffffffffff9081166000908152600b60209081526040808320606088015190941683529290522054111561123d57806006611179565b60038152919050565b60008061125e6001548561286a90919063ffffffff16565b9050610b6b848285612879565b61127361456a565b61127e848484610846565b9050828160200151101561096657610966610a6c60018584602001516126de565b835160005b81811461130f576113078160001b8783815181106112be57fe5b60200260200101518784815181106112d257fe5b60200260200101518785815181106112e657fe5b60200260200101518786815181106112fa57fe5b60200260200101516128ce565b6001016112a4565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290615915565b60405180910390fd5b6113536145c1565b61135b611adf565b610b598585858560016125f1565b6060611373611adf565b83516040805182815260208084028201019091528180156113ae57816020015b61139b61456a565b8152602001906001900390816113935790505b50915060005b81811461111a576113ff8682815181106113ca57fe5b60200260200101518683815181106113de57fe5b60200260200101518684815181106113f257fe5b6020026020010151612a92565b83828151811061140b57fe5b60209081029190910101526001016113b4565b61142661184f565b61084381611896565b60015481565b61143d61184f565b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148557600080fd5b505afa158015611499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114bd9190810190614f14565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561151b5761151b610a6c8383612ac5565b7fffffffff0000000000000000000000000000000000000000000000000000000082166000908152600260205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c03194906115bc9084908690615657565b60405180910390a1505050565b600b60209081526000928352604080842090915290825290205481565b7f20c13b0b0000000000000000000000000000000000000000000000000000000081565b611612611adf565b805160005b8181146116425761163a83828151811061162d57fe5b6020026020010151611b4e565b600101611617565b505061083b611b93565b61165461456a565b61165c611adf565b611147848484612a92565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b61168b61184f565b73ffffffffffffffffffffffffffffffffffffffff81166116b6576116b1610a6c612b67565b610843565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6060611730611931565b156117cd57825160408051828152602080840282010190915281801561176a57816020015b60608152602001906001900390816117555790505b50915060005b8181146117c6576117a785828151811061178657fe5b602002602001015185838151811061179a57fe5b6020026020010151611953565b8382815181106117b357fe5b6020908102919091010152600101611770565b50506107f5565b6117d5611a6d565b825160408051828152602080840282010190915281801561180a57816020015b60608152602001906001900390816117f55790505b50915060005b8181146118455761182685828151811061178657fe5b83828151811061183257fe5b6020908102919091010152600101611810565b50506107f5611aaf565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107b1576000546107b190610a6c90339073ffffffffffffffffffffffffffffffffffffffff16612b9e565b6004546040517fe1a5430ebec577336427f40f15822f1f36c5e3509ff209d6db9e6c9e6941cb0b916118e29173ffffffffffffffffffffffffffffffffffffffff90911690849061537b565b60405180910390a1600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff1690565b6060600061196c600154856126fd90919063ffffffff16565b9050611979848483612bbb565b60608401516119888180612c8f565b60008281526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556080870151905160609130916119d6919061530d565b600060405180830381855af49150503d8060008114611a11576040519150601f19603f3d011682016040523d82523d6000602084013e611a16565b606091505b509150915081611a2d57611a2d610a6c8583612cf2565b611a38836000612c8f565b60405184907fa4a7329f1dd821363067e07d359e347b4af9b1efe4b6cccf13240228af3c800d90600090a29695505050505050565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1690556107b1612d0f565b60005474010000000000000000000000000000000000000000900460ff1615611b0d57611b0d610a6c612d43565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b611b566145f5565b611b5f82611151565b9050611b6b8282612d7a565b600381516006811115611b7a57fe5b14611b855750610843565b610c50828260200151612e29565b611b9b611931565b6107b1576107b1612d0f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b600082821115611bea57611bea610a6c60028585612ed2565b50900390565b611bf861456a565b6040516060907f9b44d5560000000000000000000000000000000000000000000000000000000090611c3290879087908790602401615a63565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060603073ffffffffffffffffffffffffffffffffffffffff1683604051611cba919061530d565b600060405180830381855af49150503d8060008114611cf5576040519150601f19603f3d011682016040523d82523d6000602084013e611cfa565b606091505b50915091508115611d2757805160a014611d1057fe5b80806020019051611d249190810190614f30565b93505b5050509392505050565b611d3961456a565b81518351611d4c9163ffffffff612ef116565b815260208083015190840151611d679163ffffffff612ef116565b602082015260408083015190840151611d859163ffffffff612ef116565b604082015260608083015190840151611da39163ffffffff612ef116565b606082015260808083015190840151611dc19163ffffffff612ef116565b608082015292915050565b60065460009073ffffffffffffffffffffffffffffffffffffffff16818115611df55781611df7565b335b9250505090565b6060634ad3127560e01b848484604051602401611e1d939291906153a2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b611eb3614599565b8551611ec657611ec6610a6c6000612f0d565b8451611ed957611ed9610a6c6001612f0d565b8351865114611eef57611eef610a6c6002612f0d565b8251855114611f0557611f05610a6c6003612f0d565b8551604051908082528060200260200182016040528015611f4057816020015b611f2d61456a565b815260200190600190039081611f255790505b5081528451604080518281526020808402820101909152908015611f7e57816020015b611f6b61456a565b815260200190600190039081611f635790505b506020820152600080611f8f614617565b88600081518110611f9c57fe5b60200260200101519050611fae614617565b88600081518110611fbb57fe5b602002602001015190506000611fd083612839565b9150506000611fde83612839565b915050611fe961456a565b611ff161456a565b611ff96145c1565b61202c87878f8c8151811061200a57fe5b60200260200101518f8c8151811061201e57fe5b60200260200101518f6125f1565b80516020015190915061204690869063ffffffff612ef116565b945061206381602001516020015185612ef190919063ffffffff16565b9350612073838260000151611d31565b9250612083828260200151611d31565b91506120a081604001518b60400151612ef190919063ffffffff16565b60408b0152606080820151908b01516120be9163ffffffff612ef116565b60608b015260a08701518510612169578951805160018b019a85929181106120e257fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525092508e5189141561214657818a60200151898151811061213557fe5b602002602001018190525050612207565b8e898151811061215257fe5b6020026020010151965061216587612839565b9550505b8560a00151841061220157818a6020015189806001019a508151811061218b57fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525091508d518814156121de57828a600001518a8151811061213557fe5b8d88815181106121ea57fe5b602002602001015195506121fd86612839565b9450505b50611ff1565b505050505050505095945050505050565b6000610b6b8361224e61223282600163ffffffff611bd116565b612242888763ffffffff612fac16565b9063ffffffff612ef116565b9063ffffffff612fdd16565b6000612267848484613007565b905073ffffffffffffffffffffffffffffffffffffffff831661229457612294610a6c60068686866122d9565b600881818111156122a157fe5b60ff16106122b9576122b9610a6c60038686866122d9565b60008160088111156122c757fe5b141561096657610966610a6c60048686865b6060637e5a231860e01b858585856040516024016122fa94939291906158ba565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050949350505050565b6000600185600881111561239157fe5b14156123b85781516001146123b0576123b0610a6c60028686866122d9565b506000610b6b565b60028560088111156123c657fe5b14156124bf5781516042146123e5576123e5610a6c60028686866122d9565b6000826000815181106123f457fe5b016020015160f81c9050600061241184600163ffffffff61304616565b9050600061242685602163ffffffff61304616565b905060006001888585856040516000815260200160405260405161244d949392919061560c565b6020604051602081039080840390855afa15801561246f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8981169116149550610b6b945050505050565b60038560088111156124cd57fe5b141561257a5781516042146124ec576124ec610a6c60028686866122d9565b6000826000815181106124fb57fe5b016020015160f81c9050600061251884600163ffffffff61304616565b9050600061252d85602163ffffffff61304616565b905060006001886040516020016125449190615329565b604051602081830303815290604052805190602001208585856040516000815260200160405260405161244d949392919061560c565b600485600881111561258857fe5b14156125a057612599848484613070565b9050610b6b565b60068560088111156125ae57fe5b146125b557fe5b50600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915290205460ff16949350505050565b6125f96145c1565b6101608087015161014080880191909152870151908601526126196145f5565b61262287611151565b905061262c6145f5565b61263587611151565b90506000612641611dcc565b905061264f8984838a613266565b61265b88838389613266565b61266f89898560200151856020015161337e565b6126888989856040015185604001516003543a8b6133c3565b93506126a38982856020015186604001518860000151613518565b6126bc8882846020015185604001518860200151613518565b6126d2836020015183602001518b8b85896135f6565b50505095945050505050565b60606318e4b14160e01b848484604051602401611e1d9392919061589e565b60006109668261270c8561379d565b613825565b60608301516000908161272585838661225a565b9050600581600881111561273557fe5b141561275757612750612748878761385f565b868487613897565b925061278e565b600781600881111561276557fe5b141561277f57612750612778878761385f565b838661394b565b61278b81868487612381565b92505b50509392505050565b61279f61456a565b6127a76145f5565b6127b085611151565b905060006127bc611dcc565b90506127ca86838387613266565b60006127e783604001518860a00151611bd190919063ffffffff16565b905060006127f5878361395a565b905061280588826003543a613970565b945060008460200151905061282189858388604001518a613518565b61282d818a86896139e7565b50505050509392505050565b6000806128516001548461286a90919063ffffffff16565b6000818152600960205260409020549092509050915091565b60006109668261270c85613a7e565b82516000908161288a85838661225a565b9050600581600881111561289a57fe5b14156128ad576127506127488787613b55565b60078160088111156128bb57fe5b141561277f576127506127788787613b55565b8015612a8b5760208451816128df57fe5b066004146128f6576128f6610a6c60008787613b8d565b6000612908858263ffffffff613bac16565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168061296757612967610a6c60018989613b8d565b6040516060907fa85e59e400000000000000000000000000000000000000000000000000000000906129a39089908990899089906024016156b2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608373ffffffffffffffffffffffffffffffffffffffff1683604051612a2b919061530d565b6000604051808303816000865af19150503d8060008114612a68576040519150601f19603f3d011682016040523d82523d6000602084013e612a6d565b606091505b509150915081612a8557612a85610a6c8b8b84613bf8565b50505050505b5050505050565b612a9a61456a565b612aa5848484612797565b90508281602001511461096657610966610a6c60028584602001516126de565b60606311c7b72060e01b8383604051602401612ae2929190615657565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401612ae292919061537b565b82602001514210612bd457612bd4610a6c600183613c17565b60408301513a8114612bee57612bee610a6c833a84613c34565b60065473ffffffffffffffffffffffffffffffffffffffff168015612c1a57612c1a610a6c8483613c53565b60008381526005602052604090205460ff1615612c3f57612c3f610a6c600085613c17565b606085015173ffffffffffffffffffffffffffffffffffffffff81163314801590612c725750612c70868587612711565b155b15612c8757612c87610a6c60018684896122d9565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff82163314610c50576006805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555050565b60606320d11f6160e01b8383604051602401612ae2929190615550565b47801561084357604051339082156108fc029083906000818181858888f19350505050158015610c50573d6000803e3d6000fd5b60408051808201909152600481527f0c3b823f00000000000000000000000000000000000000000000000000000000602082015290565b606082015173ffffffffffffffffffffffffffffffffffffffff1615612dce57606082015173ffffffffffffffffffffffffffffffffffffffff163314612dce57612dce610a6c6002836020015133613c70565b6000612dd8611dcc565b90508073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff1614612e2457612e24610a6c6000846020015184613c70565b505050565b6000818152600a60205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558281015183516101408501516101608601519351859473ffffffffffffffffffffffffffffffffffffffff9485169493909316927f02c310a9a43963ff31a754a4099cc435ed498049687539d72d7818d9b093415c92612ec692909190339061571a565b60405180910390a45050565b606063e946c1bb60e01b848484604051602401611e1d93929190615845565b60008282018381101561096657610966610a6c60008686612ed2565b606063d4092f4f60e01b82604051602401612f289190615832565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b600082612fbb575060006107f5565b82820282848281612fc857fe5b041461096657610966610a6c60018686612ed2565b600081612ff357612ff3610a6c60038585612ed2565b6000828481612ffe57fe5b04949350505050565b600081516000141561302357613023610a6c60028686866122d9565b8160018351038151811061303357fe5b016020015160f81c6008811115610b6b57fe5b6000816020018351101561306757613067610a6c6005855185602001613c8f565b50016020015190565b80516000906130a7837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830163ffffffff613cae16565b6040516060907f1626ba7e00000000000000000000000000000000000000000000000000000000906130df9088908790602401615550565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061316e848363ffffffff613cae16565b600060608673ffffffffffffffffffffffffffffffffffffffff1683604051613197919061530d565b600060405180830381855afa9150503d80600081146131d2576040519150601f19603f3d011682016040523d82523d6000602084013e6131d7565b606091505b50915091508180156131ea575080516020145b1561324c577fb06713810000000000000000000000000000000000000000000000000000000061322182600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610966565b61325b610a6c89898985613cb2565b505050509392505050565b60038351600681111561327557fe5b1461328f5761328f610a6c84602001518560000151613cd3565b606084015173ffffffffffffffffffffffffffffffffffffffff16156132e357606084015173ffffffffffffffffffffffffffffffffffffffff1633146132e3576132e3610a6c6002856020015133613c70565b602084015173ffffffffffffffffffffffffffffffffffffffff161561334d578173ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff161461334d5761334d610a6c6001856020015185613c70565b61335c84846020015183612879565b61337857613378610a6c600085602001518760000151856122d9565b50505050565b60a080840151908501516133979163ffffffff612fac16565b608080850151908601516133b09163ffffffff612fac16565b101561337857613378610a6c8383613cf0565b6133cb6145c1565b60a08801516000906133e3908863ffffffff611bd116565b905060006133fa8a608001518b60a0015184613d0d565b90506000613415888b60a00151611bd190919063ffffffff16565b9050600061342c8b608001518c60a0015184613d0d565b90508515613449576134428c8c85878587613d41565b945061345a565b6134578c8c85878587613e13565b94505b84515160808d015160c08e0151613472929190613d0d565b85516040015284516020015160a08d015160e08e0151613493929190613d0d565b85516060015260208501515160808c015160c08d01516134b4929190613d0d565b856020015160400181815250506134dc8560200151602001518c60a001518d60e00151613d0d565b60208601516060015260006134f7888a63ffffffff612fac16565b86516080908101829052602088015101525050505050979650505050505050565b602081015161352e90839063ffffffff612ef116565b600960008581526020019081526020016000208190555082856040015173ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff167f6869791f0a34781b29882982cc39e882768cf2c96995c2a110c577c53bc932d58861014001518961016001518a61018001518b6101a001518b338a600001518b602001518c604001518d606001518e608001516040516135e79b9a99989796959493929190615766565b60405180910390a45050505050565b835183516040808701519086015161014087015185516020015161361f918b91869088906128ce565b6136398a89610140015186868960200151602001516128ce565b6136538988610180015185848960200151604001516128ce565b61366d8a89610180015186858960000151604001516128ce565b6136838a896101400151868989604001516128ce565b61369989886101400151858989606001516128ce565b60006136b18b8b88600001516080015188888c613eac565b9050806136ce578551600060809182018190526020880151909101525b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561371e57506101a080890151908a015161371e9163ffffffff613f0816565b1561375c576137578b8a6101a0015189866137528b60200151606001518c6000015160600151612ef190919063ffffffff16565b6128ce565b613790565b6137768a896101a0015189858a60200151606001516128ce565b6137908b8a6101a0015189868a60000151606001516128ce565b5050505050505050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6040516060907fde047db40000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a8e565b805160009060158110156138b5576138b5610a6c60028787876122d9565b60006138e9847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb840163ffffffff613f2d16565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526008602090815260408083209385168352929052205490915060ff1661393357613933610a6c8683613f6d565b6139408188866015613f8a565b979650505050505050565b6000610b6b8385846001613f8a565b60008183106139695781610966565b5090919050565b61397861456a565b6020810184905260a08501516080860151613994918691613d0d565b815260a085015160c08601516139ab918691613d0d565b604082015260a085015160e08601516139c5918691613d0d565b60608201526139da828463ffffffff612fac16565b6080820152949350505050565b613a018484610160015184866000015185602001516128ce565b613a1b8484610140015185600001518585600001516128ce565b613a3584846101a0015184866040015185606001516128ce565b613a53848461018001518560000151866040015185604001516128ce565b6000613a69858360800151866000015186614161565b905080612a8b57600060808301525050505050565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a753493909290916020871015613aca57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b6040516060907f3efe50c80000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a41565b606063488219a660e01b848484604051602401611e1d9392919061580a565b60008160040183511015613bcd57613bcd610a6c6003855185600401613c8f565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b6060634678472b60e01b848484604051602401611e1d93929190615569565b606063f598518460e01b8383604051602401612ae29291906158fe565b606063a26dac0960e01b848484604051602401611e1d939291906155f6565b606063dec4aedf60e01b8383604051602401612ae29291906154d7565b606063e53c76c860e01b848484604051602401611e1d93929190615866565b6060632800659560e01b848484604051602401611e1d939291906158ac565b9052565b6060631b8388f760e01b858585856040516024016122fa94939291906154fb565b606063fdb6ca8d60e01b8383604051602401612ae2929190615594565b606063b6555d6f60e01b8383604051602401612ae2929190615542565b6000613d1a8484846141a6565b15613d2d57613d2d610a6c85858561420c565b610b6b8361224e868563ffffffff612fac16565b613d496145c1565b81851184841184861115613d6957613d6289868661422b565b9250613db8565b86841115613da95782518790528251602001869052608088015160a0890151613d93919089613d0d565b6020808501805192909252905101879052613db8565b613db587878787614268565b92505b8115613dde576020808401510151835151613dd89163ffffffff611bd116565b60408401525b8015613e065782516020908101519084015151613e009163ffffffff611bd116565b60608401525b50505b9695505050505050565b613e1b6145c1565b82841115613e3557613e2e87848461422b565b9050613e83565b82841015613e745780518590528051602090810185905281015184905260a08601516080870151613e67919086614293565b6020808301510152613e83565b613e8085858585614268565b90505b6020808201510151815151613e9d9163ffffffff611bd116565b60408201529695505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff168015613efe57476000613edf8a84848b8b8a6142cb565b9050613ef189848385038b8a8a6142cb565b5060019350505050613e09565b6000915050613e09565b6000815183511480156109665750508051602091820120825192909101919091201490565b60008160140183511015613f4e57613f4e610a6c6004855185601401613c8f565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b606063a15c0d0660e01b8383604051602401612ae292919061537b565b8151600090613fa18484830363ffffffff613cae16565b6040516060907f20c13b0b0000000000000000000000000000000000000000000000000000000090613fd990889088906024016156f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050614068858363ffffffff613cae16565b600060608873ffffffffffffffffffffffffffffffffffffffff1683604051614091919061530d565b600060405180830381855afa9150503d80600081146140cc576040519150601f19603f3d011682016040523d82523d6000602084013e6140d1565b606091505b50915091508180156140e4575080516020145b15614146577f20c13b0b0000000000000000000000000000000000000000000000000000000061411b82600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610b6b565b614155610a6c8a8a8a85614403565b50505050949350505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff16801561419c576141918682478888886142cb565b506001915050610b6b565b6000915050610b6b565b6000826141b8576141b8610a6c614424565b8115806141c3575083155b156141d057506000610966565b600083806141da57fe5b85840990506141ef858463ffffffff612fac16565b614201826103e863ffffffff612fac16565b101595945050505050565b606063339f3de260e01b848484604051602401611e1d939291906155f6565b6142336145c1565b60208082018051859052518101839052815101839052608084015160a085015161425e919085613d0d565b8151529392505050565b6142706145c1565b805194909452835160209081019390935282840180519290925290519091015290565b60006142a084848461445b565b156142b3576142b3610a6c85858561420c565b610b6b8361224e61223282600163ffffffff611bd116565b60008385106142d75750825b6040516060907fa3b4a3270000000000000000000000000000000000000000000000000000000090614311908690869089906024016153a2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608873ffffffffffffffffffffffffffffffffffffffff16848460405161439a919061530d565b60006040518083038185875af1925050503d80600081146143d7576040519150601f19603f3d011682016040523d82523d6000602084013e6143dc565b606091505b5091509150816143f6576143f6610a6c8b898989866144bf565b5050509695505050505050565b6060635bd0428d60e01b858585856040516024016122fa94939291906153d3565b60408051808201909152600481527fa791837c00000000000000000000000000000000000000000000000000000000602082015290565b60008261446d5761446d610a6c614424565b811580614478575083155b1561448557506000610966565b6000838061448f57fe5b8584099050836144a5818363ffffffff611bd116565b816144ac57fe5b0690506141ef858463ffffffff612fac16565b60606387cb1e7560e01b86868686866040516024016144e29594939291906155b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905095945050505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280606081526020016060815260200160008152602001600081525090565b60405180608001604052806145d461456a565b81526020016145e161456a565b815260200160008152602001600081525090565b6040805160608101909152806000815260006020820181905260409091015290565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff811681146107f557600080fd5b600082601f830112614712578081fd5b813561472561472082615b1f565b615af8565b81815291506020808301908481018184028601820187101561474657600080fd5b60005b8481101561476d5761475b88836146de565b84529282019290820190600101614749565b505050505092915050565b600082601f830112614788578081fd5b813561479661472082615b1f565b8181529150602080830190840160005b838110156147d3576147be8760208435890101614896565b835260209283019291909101906001016147a6565b5050505092915050565b600082601f8301126147ed578081fd5b81356147fb61472082615b1f565b8181529150602080830190840160005b838110156147d357614823876020843589010161491d565b8352602092830192919091019060010161480b565b600082601f830112614848578081fd5b813561485661472082615b1f565b81815291506020808301908481018184028601820187101561487757600080fd5b60005b8481101561476d5781358452928201929082019060010161487a565b600082601f8301126148a6578081fd5b813567ffffffffffffffff8111156148bc578182fd5b6148ed60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601615af8565b915080825283602082850101111561490457600080fd5b8060208401602084013760009082016020015292915050565b60006101c0808385031215614930578182fd5b61493981615af8565b91505061494683836146de565b815261495583602084016146de565b602082015261496783604084016146de565b604082015261497983606084016146de565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff808211156149db57600080fd5b6149e786838701614896565b83850152610160925082850135915080821115614a0357600080fd5b614a0f86838701614896565b83850152610180925082850135915080821115614a2b57600080fd5b614a3786838701614896565b838501526101a0925082850135915080821115614a5357600080fd5b50614a6085828601614896565b82840152505092915050565b600060a08284031215614a7d578081fd5b614a8760a0615af8565b90508135815260208201356020820152604082013560408201526060820135614aaf81615b89565b6060820152608082013567ffffffffffffffff811115614ace57600080fd5b614ada84828501614896565b60808301525092915050565b600060208284031215614af7578081fd5b61096683836146de565b60008060408385031215614b13578081fd5b614b1d84846146de565b9150614b2c84602085016146de565b90509250929050565b60008060408385031215614b47578182fd5b614b5184846146de565b915060208301358015158114614b65578182fd5b809150509250929050565b60008060008060808587031215614b85578182fd5b843567ffffffffffffffff80821115614b9c578384fd5b614ba888838901614778565b95506020870135915080821115614bbd578384fd5b614bc988838901614702565b94506040870135915080821115614bde578384fd5b614bea88838901614702565b93506060870135915080821115614bff578283fd5b50614c0c87828801614838565b91505092959194509250565b600060208284031215614c29578081fd5b813567ffffffffffffffff811115614c3f578182fd5b610b6b848285016147dd565b60008060008060808587031215614c60578182fd5b843567ffffffffffffffff80821115614c77578384fd5b614c83888389016147dd565b95506020870135915080821115614c98578384fd5b614ca4888389016147dd565b94506040870135915080821115614cb9578384fd5b614cc588838901614778565b93506060870135915080821115614cda578283fd5b50614c0c87828801614778565b600080600060608486031215614cfb578081fd5b833567ffffffffffffffff80821115614d12578283fd5b614d1e878388016147dd565b94506020860135915080821115614d33578283fd5b614d3f87838801614838565b93506040860135915080821115614d54578283fd5b50614d6186828701614778565b9150509250925092565b600080600060608486031215614d7f578081fd5b833567ffffffffffffffff80821115614d96578283fd5b614da2878388016147dd565b9450602086013593506040860135915080821115614d54578283fd5b60008060408385031215614dd0578182fd5b823567ffffffffffffffff80821115614de7578384fd5b81850186601f820112614df8578485fd5b80359250614e0861472084615b1f565b83815260208082019190838101885b87811015614e4057614e2e8c848435890101614a6c565b85529382019390820190600101614e17565b50919750880135945050505080821115614e58578283fd5b50614e6585828601614778565b9150509250929050565b600060208284031215614e80578081fd5b5035919050565b60008060408385031215614e99578182fd5b823591506020830135614b6581615b89565b600080600060608486031215614ebf578081fd5b833592506020840135614ed181615b89565b9150604084013567ffffffffffffffff811115614eec578182fd5b614d6186828701614896565b600060208284031215614f09578081fd5b813561096681615bab565b600060208284031215614f25578081fd5b815161096681615bab565b600060a08284031215614f41578081fd5b614f4b60a0615af8565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b600060208284031215614f92578081fd5b813567ffffffffffffffff811115614fa8578182fd5b610b6b8482850161491d565b60008060408385031215614fc6578182fd5b823567ffffffffffffffff80821115614fdd578384fd5b614fe98683870161491d565b93506020850135915080821115614ffe578283fd5b50614e6585828601614896565b60008060008060808587031215615020578182fd5b843567ffffffffffffffff80821115615037578384fd5b6150438883890161491d565b95506020870135915080821115615058578384fd5b6150648883890161491d565b94506040870135915080821115615079578384fd5b61508588838901614896565b9350606087013591508082111561509a578283fd5b50614c0c87828801614896565b6000806000606084860312156150bb578081fd5b833567ffffffffffffffff808211156150d2578283fd5b6150de8783880161491d565b94506020860135935060408601359150808211156150fa578283fd5b50614d6186828701614896565b60008060408385031215615119578182fd5b823567ffffffffffffffff80821115615130578384fd5b614fe986838701614a6c565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156151925761517c8683516151e6565b60a0959095019460209190910190600101615169565b5093949350505050565b600081518084526151b4816020860160208601615b3f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061522684845161513c565b6020830151615238602086018261513c565b50604083015161524b604086018261513c565b50606083015161525e606086018261513c565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526152b78387018261519c565b915050610160915081840151858203838701526152d4828261519c565b9250505061018080840151858303828701526152f0838261519c565b9150506101a091508184015185820383870152613e09828261519c565b6000825161531f818460208701615b3f565b9190910192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260806020830152615402608083018661519c565b8281036040840152615414818661519c565b8381036060850152615426818661519c565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156154a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261549185835161519c565b94509285019290850190600101615457565b5092979650505050505050565b6000602082526109666020830184615156565b901515815260200190565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600085825273ffffffffffffffffffffffffffffffffffffffff8516602083015260806040830152615530608083018561519c565b8281036060840152613940818561519c565b918252602082015260400190565b600083825260406020830152610b6b604083018461519c565b600084825260606020830152615582606083018561519c565b8281036040840152613e09818561519c565b828152604081016155a483615b7f565b8260208301529392505050565b600086825285602083015273ffffffffffffffffffffffffffffffffffffffff808616604084015280851660608401525060a0608083015261394060a083018461519c565b9283526020830191909152604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600060208252610966602083018461519c565b6000608082526156c5608083018761519c565b73ffffffffffffffffffffffffffffffffffffffff95861660208401529390941660408201526060015292915050565b600060408252615708604083018561519c565b8281036020840152610e1a818561519c565b60006060825261572d606083018661519c565b828103602084015261573f818661519c565b91505073ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b600061016080835261577a8184018f61519c565b838103602085015261578c818f61519c565b91505082810360408401526157a1818d61519c565b83810360608501526157b3818d61519c565b73ffffffffffffffffffffffffffffffffffffffff9b8c16608086015299909a1660a0840152505060c081019590955260e08501939093526101008401919091526101208301526101409091015295945050505050565b600061581585615b6b565b84825283602083015260606040830152610e1a606083018461519c565b6020810161583f83615b75565b91905290565b6060810161585285615b75565b938152602081019290925260409091015290565b606081016003851061587457fe5b938152602081019290925273ffffffffffffffffffffffffffffffffffffffff1660409091015290565b606081016003851061585257fe5b606081016008851061585257fe5b60006158c586615b7f565b85825284602083015273ffffffffffffffffffffffffffffffffffffffff8416604083015260806060830152613e09608083018461519c565b6040810161590b84615b6b565b9281526020015290565b60208082526014908201527f5452414e53464552535f5355434345535346554c000000000000000000000000604082015260600190565b60006020825282516080602084015261596860a0840182615156565b602085015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08482030160408501526159a38183615156565b604086015160608601526060860151608086015280935050505092915050565b60a081016107f582846151e6565b6000610180820190506159e58284516151e6565b60208301516159f760a08401826151e6565b5060408301516101408301526060909201516101609091015290565b81516060820190615a2381615b7f565b80835250602083015160208301526040830151604083015292915050565b600060408252615a546040830185615216565b90508260208301529392505050565b600060608252615a766060830186615216565b8460208401528281036040840152613e09818561519c565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152615ae860e084018261519c565b9150508260208301529392505050565b60405181810167ffffffffffffffff81118282101715615b1757600080fd5b604052919050565b600067ffffffffffffffff821115615b35578081fd5b5060209081020190565b60005b83811015615b5a578181015183820152602001615b42565b838111156133785750506000910152565b6002811061084357fe5b6004811061084357fe5b6007811061084357fe5b73ffffffffffffffffffffffffffffffffffffffff8116811461084357600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461084357600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820897f450a05992000843ffc258f91408c60af4df0c5e254daaee4892d72aa3da26c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x6080604052600436106102dc5760003560e01c80638d45cd2311610184578063beee2e14116100d6578063dd885e2d1161008a578063eea086ba11610064578063eea086ba14610735578063f2fde38b1461074a578063fc74896d1461076a576102dc565b8063dd885e2d146106ed578063dedfc1f11461070f578063e14b58c414610722576102dc565b8063c26cfecd116100bb578063c26cfecd14610698578063c585bb93146106ad578063d9bfa73e146106cd576102dc565b8063beee2e1414610665578063c0fa16cc14610678576102dc565b80639b44d55611610138578063a6c3bf3311610112578063a6c3bf331461061f578063b04fbddd14610632578063b718e29214610652576102dc565b80639b44d556146105bf5780639d3fa4b9146105d2578063a12dcc6f146105ff576102dc565b80638ea8dfe4116101695780638ea8dfe41461056c5780639331c7421461058c5780639694a402146105ac576102dc565b80638d45cd23146105375780638da5cb5b14610557576102dc565b8063607041081161023d5780637b8e3514116101f1578063850a1501116101cb578063850a1501146104ef57806388ec79fb146105045780638bc8efb314610524576102dc565b80637b8e35141461048f5780638171c407146104af57806382c174d0146104cf576102dc565b80636fcf3e9e116102225780636fcf3e9e1461045657806377fcce681461046957806378d29ac11461047c576102dc565b806360704108146104095780636a1a80fd14610436576102dc565b80632ac1262211610294578063369da09911610279578063369da099146103c357806346c02d7a146103e35780634f9559b1146103f6576102dc565b80632ac12622146103905780632da62987146103b0576102dc565b80631ce4c78b116102c55780631ce4c78b1461032e5780632280c91014610350578063288cdc9114610370576102dc565b80630228e168146102e15780630efca18514610317575b600080fd5b3480156102ed57600080fd5b506103016102fc366004614e6f565b61078a565b60405161030e91906154c3565b60405180910390f35b34801561032357600080fd5b5061032c61079f565b005b34801561033a57600080fd5b506103436107b3565b60405161030e91906154ce565b61036361035e366004615107565b6107b9565b60405161030e919061569f565b34801561037c57600080fd5b5061034361038b366004614e6f565b6107fb565b34801561039c57600080fd5b506103016103ab366004614e6f565b61080d565b61032c6103be366004614f81565b610822565b6103d66103d1366004614d6b565b610846565b60405161030e91906159c3565b61032c6103f1366004614e6f565b61096d565b61032c610404366004614e6f565b6109e0565b34801561041557600080fd5b50610429610424366004614ef8565b610aed565b60405161030e919061535a565b610449610444366004614c4b565b610b3b565b60405161030e919061594c565b610449610464366004614c4b565b610b73565b61032c610477366004614b35565b610b91565b6103d661048a366004614d6b565b610c54565b34801561049b57600080fd5b506103016104aa366004614b01565b610da4565b3480156104bb57600080fd5b506103016104ca366004614eab565b610dc4565b3480156104db57600080fd5b506103016104ea366004614e87565b610e23565b3480156104fb57600080fd5b50610429610e43565b61051761051236600461500b565b610e5f565b60405161030e91906159d1565b6103d6610532366004614d6b565b610e7d565b34801561054357600080fd5b50610301610552366004615107565b610eb1565b34801561056357600080fd5b50610429610ed6565b61057f61057a366004614ce7565b610ef2565b60405161030e91906154b0565b34801561059857600080fd5b5061032c6105a7366004614e6f565b61101d565b61057f6105ba366004614ce7565b611065565b6103d66105cd3660046150a7565b61112c565b3480156105de57600080fd5b506105f26105ed366004614f81565b611151565b60405161030e9190615a13565b34801561060b57600080fd5b5061030161061a366004614fb4565b611246565b6103d661062d366004614d6b565b61126b565b34801561063e57600080fd5b5061032c61064d366004614b70565b61129f565b61051761066036600461500b565b61134b565b61057f610673366004614ce7565b611369565b34801561068457600080fd5b5061032c610693366004614ae6565b61141e565b3480156106a457600080fd5b5061034361142f565b3480156106b957600080fd5b5061032c6106c8366004614ae6565b611435565b3480156106d957600080fd5b506103436106e8366004614b01565b6115c9565b3480156106f957600080fd5b506107026115e6565b60405161030e919061562a565b61032c61071d366004614c18565b61160a565b6103d66107303660046150a7565b61164c565b34801561074157600080fd5b50610429611667565b34801561075657600080fd5b5061032c610765366004614ae6565b611683565b61077d610778366004614dbe565b611726565b60405161030e9190615432565b60056020526000908152604090205460ff1681565b6107a761184f565b6107b16000611896565b565b60035481565b60606107c3611931565b156107d9576107d28383611953565b90506107f5565b6107e1611a6d565b6107eb8383611953565b90506107f5611aaf565b92915050565b60096020526000908152604090205481565b600a6020526000908152604090205460ff1681565b61082a611adf565b61083381611b4e565b61083b611b93565b610843611ba7565b50565b61084e61456a565b610856611931565b156108ec57835160005b8181146108e5576000610880846020015187611bd190919063ffffffff16565b905061088a61456a565b6108bb88848151811061089957fe5b6020026020010151838886815181106108ae57fe5b6020026020010151611bf0565b90506108c78582611d31565b9450868560200151106108db5750506108e5565b5050600101610860565b5050610966565b6108f4611a6d565b835160005b81811461095c576000610919846020015187611bd190919063ffffffff16565b905061092361456a565b61093288848151811061089957fe5b905061093e8582611d31565b94508685602001511061095257505061095c565b50506001016108f9565b5050610966611aaf565b9392505050565b610975611adf565b600061097f611dcc565b600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff90941683529290522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555061083b611b93565b6109e8611adf565b60006109f2611dcc565b9050600073ffffffffffffffffffffffffffffffffffffffff82163314610a195733610a1c565b60005b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600b60209081526040808320938516835292905220549091506001840190808211610a7157610a71610a6c858584611dfe565b611ea3565b73ffffffffffffffffffffffffffffffffffffffff8085166000818152600b602090815260408083209488168084529490915290819020859055517f82af639571738f4ebd4268fb0363d8957ebe1bbb9e78dba5ebd69eed39b154f090610ad99086906154ce565b60405180910390a35050505061083b611b93565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff165b919050565b610b43614599565b610b4b611adf565b610b59858585856001611eab565b9050610b63611b93565b610b6b611ba7565b949350505050565b610b7b614599565b610b83611adf565b610b59858585856000611eab565b610b99611adf565b6000610ba3611dcc565b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600860209081526040808320948916808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168715151790555192935090917fa8656e308026eeabce8f0bc18048433252318ab80ac79da0b3d3d8697dfba89190610c379086906154c3565b60405180910390a350610c48611b93565b610c50611ba7565b5050565b610c5c61456a565b610c64611931565b15610d2257835160005b8181146108e5578251600090610c8b90879063ffffffff611bd116565b90506000610cc8888481518110610c9e57fe5b602002602001015160a00151898581518110610cb657fe5b60200260200101516080015184612218565b9050610cd261456a565b610cf6898581518110610ce157fe5b6020026020010151838987815181106108ae57fe5b9050610d028682611d31565b955087866000015110610d17575050506108e5565b505050600101610c6e565b610d2a611a6d565b835160005b81811461095c578251600090610d4c90879063ffffffff611bd116565b90506000610d5f888481518110610c9e57fe5b9050610d6961456a565b610d78898581518110610ce157fe5b9050610d848682611d31565b955087866000015110610d995750505061095c565b505050600101610d2f565b600860209081526000928352604080842090915290825290205460ff1681565b600080610dd285858561225a565b90506005816008811115610de257fe5b1480610df957506007816008811115610df757fe5b145b15610e0e57610e0e610a6c60058787876122d9565b610e1a81868686612381565b95945050505050565b600760209081526000928352604080842090915290825290205460ff1681565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b610e676145c1565b610e6f611adf565b610b598585858560006125f1565b610e8561456a565b610e90848484610c54565b9050828160000151101561096657610966610a6c60008584600001516126de565b600080610ec9600154856126fd90919063ffffffff16565b9050610b6b848285612711565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6060610efc611931565b15610f9f578351604080518281526020808402820101909152818015610f3c57816020015b610f2961456a565b815260200190600190039081610f215790505b50915060005b8181146108e557610f80868281518110610f5857fe5b6020026020010151868381518110610f6c57fe5b60200260200101518684815181106108ae57fe5b838281518110610f8c57fe5b6020908102919091010152600101610f42565b610fa7611a6d565b8351604080518281526020808402820101909152818015610fe257816020015b610fcf61456a565b815260200190600190039081610fc75790505b50915060005b81811461095c57610ffe868281518110610f5857fe5b83828151811061100a57fe5b6020908102919091010152600101610fe8565b61102561184f565b7f3a3e76d7a75e198aef1f53137e4f2a8a2ec74e2e9526db8404d08ccc9f1e621d60035482604051611058929190615542565b60405180910390a1600355565b606061106f611adf565b83516040805182815260208084028201019091528180156110aa57816020015b61109761456a565b81526020019060019003908161108f5790505b50915060005b81811461111a576110fb8682815181106110c657fe5b60200260200101518683815181106110da57fe5b60200260200101518684815181106110ee57fe5b6020026020010151612797565b83828151811061110757fe5b60209081029190910101526001016110b0565b5050611124611b93565b610966611ba7565b61113461456a565b61113c611adf565b611147848484612797565b9050611124611b93565b6111596145f5565b61116282612839565b60408301526020820152608082015161118e578060015b9081600681111561118657fe5b905250610b36565b60a082015161119f57806002611179565b8160a001518160400151106111b657806005611179565b81610100015142106111ca57806004611179565b6020808201516000908152600a909152604090205460ff16156111ef57806006611179565b610120820151825173ffffffffffffffffffffffffffffffffffffffff9081166000908152600b60209081526040808320606088015190941683529290522054111561123d57806006611179565b60038152919050565b60008061125e6001548561286a90919063ffffffff16565b9050610b6b848285612879565b61127361456a565b61127e848484610846565b9050828160200151101561096657610966610a6c60018584602001516126de565b835160005b81811461130f576113078160001b8783815181106112be57fe5b60200260200101518784815181106112d257fe5b60200260200101518785815181106112e657fe5b60200260200101518786815181106112fa57fe5b60200260200101516128ce565b6001016112a4565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290615915565b60405180910390fd5b6113536145c1565b61135b611adf565b610b598585858560016125f1565b6060611373611adf565b83516040805182815260208084028201019091528180156113ae57816020015b61139b61456a565b8152602001906001900390816113935790505b50915060005b81811461111a576113ff8682815181106113ca57fe5b60200260200101518683815181106113de57fe5b60200260200101518684815181106113f257fe5b6020026020010151612a92565b83828151811061140b57fe5b60209081029190910101526001016113b4565b61142661184f565b61084381611896565b60015481565b61143d61184f565b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148557600080fd5b505afa158015611499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114bd9190810190614f14565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561151b5761151b610a6c8383612ac5565b7fffffffff0000000000000000000000000000000000000000000000000000000082166000908152600260205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c03194906115bc9084908690615657565b60405180910390a1505050565b600b60209081526000928352604080842090915290825290205481565b7f20c13b0b0000000000000000000000000000000000000000000000000000000081565b611612611adf565b805160005b8181146116425761163a83828151811061162d57fe5b6020026020010151611b4e565b600101611617565b505061083b611b93565b61165461456a565b61165c611adf565b611147848484612a92565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b61168b61184f565b73ffffffffffffffffffffffffffffffffffffffff81166116b6576116b1610a6c612b67565b610843565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6060611730611931565b156117cd57825160408051828152602080840282010190915281801561176a57816020015b60608152602001906001900390816117555790505b50915060005b8181146117c6576117a785828151811061178657fe5b602002602001015185838151811061179a57fe5b6020026020010151611953565b8382815181106117b357fe5b6020908102919091010152600101611770565b50506107f5565b6117d5611a6d565b825160408051828152602080840282010190915281801561180a57816020015b60608152602001906001900390816117f55790505b50915060005b8181146118455761182685828151811061178657fe5b83828151811061183257fe5b6020908102919091010152600101611810565b50506107f5611aaf565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107b1576000546107b190610a6c90339073ffffffffffffffffffffffffffffffffffffffff16612b9e565b6004546040517fe1a5430ebec577336427f40f15822f1f36c5e3509ff209d6db9e6c9e6941cb0b916118e29173ffffffffffffffffffffffffffffffffffffffff90911690849061537b565b60405180910390a1600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000547501000000000000000000000000000000000000000000900460ff1690565b6060600061196c600154856126fd90919063ffffffff16565b9050611979848483612bbb565b60608401516119888180612c8f565b60008281526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556080870151905160609130916119d6919061530d565b600060405180830381855af49150503d8060008114611a11576040519150601f19603f3d011682016040523d82523d6000602084013e611a16565b606091505b509150915081611a2d57611a2d610a6c8583612cf2565b611a38836000612c8f565b60405184907fa4a7329f1dd821363067e07d359e347b4af9b1efe4b6cccf13240228af3c800d90600090a29695505050505050565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1690556107b1612d0f565b60005474010000000000000000000000000000000000000000900460ff1615611b0d57611b0d610a6c612d43565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b611b566145f5565b611b5f82611151565b9050611b6b8282612d7a565b600381516006811115611b7a57fe5b14611b855750610843565b610c50828260200151612e29565b611b9b611931565b6107b1576107b1612d0f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b600082821115611bea57611bea610a6c60028585612ed2565b50900390565b611bf861456a565b6040516060907f9b44d5560000000000000000000000000000000000000000000000000000000090611c3290879087908790602401615a63565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060603073ffffffffffffffffffffffffffffffffffffffff1683604051611cba919061530d565b600060405180830381855af49150503d8060008114611cf5576040519150601f19603f3d011682016040523d82523d6000602084013e611cfa565b606091505b50915091508115611d2757805160a014611d1057fe5b80806020019051611d249190810190614f30565b93505b5050509392505050565b611d3961456a565b81518351611d4c9163ffffffff612ef116565b815260208083015190840151611d679163ffffffff612ef116565b602082015260408083015190840151611d859163ffffffff612ef116565b604082015260608083015190840151611da39163ffffffff612ef116565b606082015260808083015190840151611dc19163ffffffff612ef116565b608082015292915050565b60065460009073ffffffffffffffffffffffffffffffffffffffff16818115611df55781611df7565b335b9250505090565b6060634ad3127560e01b848484604051602401611e1d939291906153a2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b611eb3614599565b8551611ec657611ec6610a6c6000612f0d565b8451611ed957611ed9610a6c6001612f0d565b8351865114611eef57611eef610a6c6002612f0d565b8251855114611f0557611f05610a6c6003612f0d565b8551604051908082528060200260200182016040528015611f4057816020015b611f2d61456a565b815260200190600190039081611f255790505b5081528451604080518281526020808402820101909152908015611f7e57816020015b611f6b61456a565b815260200190600190039081611f635790505b506020820152600080611f8f614617565b88600081518110611f9c57fe5b60200260200101519050611fae614617565b88600081518110611fbb57fe5b602002602001015190506000611fd083612839565b9150506000611fde83612839565b915050611fe961456a565b611ff161456a565b611ff96145c1565b61202c87878f8c8151811061200a57fe5b60200260200101518f8c8151811061201e57fe5b60200260200101518f6125f1565b80516020015190915061204690869063ffffffff612ef116565b945061206381602001516020015185612ef190919063ffffffff16565b9350612073838260000151611d31565b9250612083828260200151611d31565b91506120a081604001518b60400151612ef190919063ffffffff16565b60408b0152606080820151908b01516120be9163ffffffff612ef116565b60608b015260a08701518510612169578951805160018b019a85929181106120e257fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525092508e5189141561214657818a60200151898151811061213557fe5b602002602001018190525050612207565b8e898151811061215257fe5b6020026020010151965061216587612839565b9550505b8560a00151841061220157818a6020015189806001019a508151811061218b57fe5b60200260200101819052506040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525091508d518814156121de57828a600001518a8151811061213557fe5b8d88815181106121ea57fe5b602002602001015195506121fd86612839565b9450505b50611ff1565b505050505050505095945050505050565b6000610b6b8361224e61223282600163ffffffff611bd116565b612242888763ffffffff612fac16565b9063ffffffff612ef116565b9063ffffffff612fdd16565b6000612267848484613007565b905073ffffffffffffffffffffffffffffffffffffffff831661229457612294610a6c60068686866122d9565b600881818111156122a157fe5b60ff16106122b9576122b9610a6c60038686866122d9565b60008160088111156122c757fe5b141561096657610966610a6c60048686865b6060637e5a231860e01b858585856040516024016122fa94939291906158ba565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050949350505050565b6000600185600881111561239157fe5b14156123b85781516001146123b0576123b0610a6c60028686866122d9565b506000610b6b565b60028560088111156123c657fe5b14156124bf5781516042146123e5576123e5610a6c60028686866122d9565b6000826000815181106123f457fe5b016020015160f81c9050600061241184600163ffffffff61304616565b9050600061242685602163ffffffff61304616565b905060006001888585856040516000815260200160405260405161244d949392919061560c565b6020604051602081039080840390855afa15801561246f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8981169116149550610b6b945050505050565b60038560088111156124cd57fe5b141561257a5781516042146124ec576124ec610a6c60028686866122d9565b6000826000815181106124fb57fe5b016020015160f81c9050600061251884600163ffffffff61304616565b9050600061252d85602163ffffffff61304616565b905060006001886040516020016125449190615329565b604051602081830303815290604052805190602001208585856040516000815260200160405260405161244d949392919061560c565b600485600881111561258857fe5b14156125a057612599848484613070565b9050610b6b565b60068560088111156125ae57fe5b146125b557fe5b50600083815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915290205460ff16949350505050565b6125f96145c1565b6101608087015161014080880191909152870151908601526126196145f5565b61262287611151565b905061262c6145f5565b61263587611151565b90506000612641611dcc565b905061264f8984838a613266565b61265b88838389613266565b61266f89898560200151856020015161337e565b6126888989856040015185604001516003543a8b6133c3565b93506126a38982856020015186604001518860000151613518565b6126bc8882846020015185604001518860200151613518565b6126d2836020015183602001518b8b85896135f6565b50505095945050505050565b60606318e4b14160e01b848484604051602401611e1d9392919061589e565b60006109668261270c8561379d565b613825565b60608301516000908161272585838661225a565b9050600581600881111561273557fe5b141561275757612750612748878761385f565b868487613897565b925061278e565b600781600881111561276557fe5b141561277f57612750612778878761385f565b838661394b565b61278b81868487612381565b92505b50509392505050565b61279f61456a565b6127a76145f5565b6127b085611151565b905060006127bc611dcc565b90506127ca86838387613266565b60006127e783604001518860a00151611bd190919063ffffffff16565b905060006127f5878361395a565b905061280588826003543a613970565b945060008460200151905061282189858388604001518a613518565b61282d818a86896139e7565b50505050509392505050565b6000806128516001548461286a90919063ffffffff16565b6000818152600960205260409020549092509050915091565b60006109668261270c85613a7e565b82516000908161288a85838661225a565b9050600581600881111561289a57fe5b14156128ad576127506127488787613b55565b60078160088111156128bb57fe5b141561277f576127506127788787613b55565b8015612a8b5760208451816128df57fe5b066004146128f6576128f6610a6c60008787613b8d565b6000612908858263ffffffff613bac16565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526002602052604090205490915073ffffffffffffffffffffffffffffffffffffffff168061296757612967610a6c60018989613b8d565b6040516060907fa85e59e400000000000000000000000000000000000000000000000000000000906129a39089908990899089906024016156b2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608373ffffffffffffffffffffffffffffffffffffffff1683604051612a2b919061530d565b6000604051808303816000865af19150503d8060008114612a68576040519150601f19603f3d011682016040523d82523d6000602084013e612a6d565b606091505b509150915081612a8557612a85610a6c8b8b84613bf8565b50505050505b5050505050565b612a9a61456a565b612aa5848484612797565b90508281602001511461096657610966610a6c60028584602001516126de565b60606311c7b72060e01b8383604051602401612ae2929190615657565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060631de45ad160e01b8383604051602401612ae292919061537b565b82602001514210612bd457612bd4610a6c600183613c17565b60408301513a8114612bee57612bee610a6c833a84613c34565b60065473ffffffffffffffffffffffffffffffffffffffff168015612c1a57612c1a610a6c8483613c53565b60008381526005602052604090205460ff1615612c3f57612c3f610a6c600085613c17565b606085015173ffffffffffffffffffffffffffffffffffffffff81163314801590612c725750612c70868587612711565b155b15612c8757612c87610a6c60018684896122d9565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff82163314610c50576006805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555050565b60606320d11f6160e01b8383604051602401612ae2929190615550565b47801561084357604051339082156108fc029083906000818181858888f19350505050158015610c50573d6000803e3d6000fd5b60408051808201909152600481527f0c3b823f00000000000000000000000000000000000000000000000000000000602082015290565b606082015173ffffffffffffffffffffffffffffffffffffffff1615612dce57606082015173ffffffffffffffffffffffffffffffffffffffff163314612dce57612dce610a6c6002836020015133613c70565b6000612dd8611dcc565b90508073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff1614612e2457612e24610a6c6000846020015184613c70565b505050565b6000818152600a60205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558281015183516101408501516101608601519351859473ffffffffffffffffffffffffffffffffffffffff9485169493909316927f02c310a9a43963ff31a754a4099cc435ed498049687539d72d7818d9b093415c92612ec692909190339061571a565b60405180910390a45050565b606063e946c1bb60e01b848484604051602401611e1d93929190615845565b60008282018381101561096657610966610a6c60008686612ed2565b606063d4092f4f60e01b82604051602401612f289190615832565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b600082612fbb575060006107f5565b82820282848281612fc857fe5b041461096657610966610a6c60018686612ed2565b600081612ff357612ff3610a6c60038585612ed2565b6000828481612ffe57fe5b04949350505050565b600081516000141561302357613023610a6c60028686866122d9565b8160018351038151811061303357fe5b016020015160f81c6008811115610b6b57fe5b6000816020018351101561306757613067610a6c6005855185602001613c8f565b50016020015190565b80516000906130a7837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830163ffffffff613cae16565b6040516060907f1626ba7e00000000000000000000000000000000000000000000000000000000906130df9088908790602401615550565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905061316e848363ffffffff613cae16565b600060608673ffffffffffffffffffffffffffffffffffffffff1683604051613197919061530d565b600060405180830381855afa9150503d80600081146131d2576040519150601f19603f3d011682016040523d82523d6000602084013e6131d7565b606091505b50915091508180156131ea575080516020145b1561324c577fb06713810000000000000000000000000000000000000000000000000000000061322182600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610966565b61325b610a6c89898985613cb2565b505050509392505050565b60038351600681111561327557fe5b1461328f5761328f610a6c84602001518560000151613cd3565b606084015173ffffffffffffffffffffffffffffffffffffffff16156132e357606084015173ffffffffffffffffffffffffffffffffffffffff1633146132e3576132e3610a6c6002856020015133613c70565b602084015173ffffffffffffffffffffffffffffffffffffffff161561334d578173ffffffffffffffffffffffffffffffffffffffff16846020015173ffffffffffffffffffffffffffffffffffffffff161461334d5761334d610a6c6001856020015185613c70565b61335c84846020015183612879565b61337857613378610a6c600085602001518760000151856122d9565b50505050565b60a080840151908501516133979163ffffffff612fac16565b608080850151908601516133b09163ffffffff612fac16565b101561337857613378610a6c8383613cf0565b6133cb6145c1565b60a08801516000906133e3908863ffffffff611bd116565b905060006133fa8a608001518b60a0015184613d0d565b90506000613415888b60a00151611bd190919063ffffffff16565b9050600061342c8b608001518c60a0015184613d0d565b90508515613449576134428c8c85878587613d41565b945061345a565b6134578c8c85878587613e13565b94505b84515160808d015160c08e0151613472929190613d0d565b85516040015284516020015160a08d015160e08e0151613493929190613d0d565b85516060015260208501515160808c015160c08d01516134b4929190613d0d565b856020015160400181815250506134dc8560200151602001518c60a001518d60e00151613d0d565b60208601516060015260006134f7888a63ffffffff612fac16565b86516080908101829052602088015101525050505050979650505050505050565b602081015161352e90839063ffffffff612ef116565b600960008581526020019081526020016000208190555082856040015173ffffffffffffffffffffffffffffffffffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff167f6869791f0a34781b29882982cc39e882768cf2c96995c2a110c577c53bc932d58861014001518961016001518a61018001518b6101a001518b338a600001518b602001518c604001518d606001518e608001516040516135e79b9a99989796959493929190615766565b60405180910390a45050505050565b835183516040808701519086015161014087015185516020015161361f918b91869088906128ce565b6136398a89610140015186868960200151602001516128ce565b6136538988610180015185848960200151604001516128ce565b61366d8a89610180015186858960000151604001516128ce565b6136838a896101400151868989604001516128ce565b61369989886101400151858989606001516128ce565b60006136b18b8b88600001516080015188888c613eac565b9050806136ce578551600060809182018190526020880151909101525b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561371e57506101a080890151908a015161371e9163ffffffff613f0816565b1561375c576137578b8a6101a0015189866137528b60200151606001518c6000015160600151612ef190919063ffffffff16565b6128ce565b613790565b6137768a896101a0015189858a60200151606001516128ce565b6137908b8a6101a0015189868a60000151606001516128ce565b5050505050505050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6040516060907fde047db40000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a8e565b805160009060158110156138b5576138b5610a6c60028787876122d9565b60006138e9847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb840163ffffffff613f2d16565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526008602090815260408083209385168352929052205490915060ff1661393357613933610a6c8683613f6d565b6139408188866015613f8a565b979650505050505050565b6000610b6b8385846001613f8a565b60008183106139695781610966565b5090919050565b61397861456a565b6020810184905260a08501516080860151613994918691613d0d565b815260a085015160c08601516139ab918691613d0d565b604082015260a085015160e08601516139c5918691613d0d565b60608201526139da828463ffffffff612fac16565b6080820152949350505050565b613a018484610160015184866000015185602001516128ce565b613a1b8484610140015185600001518585600001516128ce565b613a3584846101a0015184866040015185606001516128ce565b613a53848461018001518560000151866040015185604001516128ce565b6000613a69858360800151866000015186614161565b905080612a8b57600060808301525050505050565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a753493909290916020871015613aca57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b6040516060907f3efe50c80000000000000000000000000000000000000000000000000000000090612ae29085908590602401615a41565b606063488219a660e01b848484604051602401611e1d9392919061580a565b60008160040183511015613bcd57613bcd610a6c6003855185600401613c8f565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b6060634678472b60e01b848484604051602401611e1d93929190615569565b606063f598518460e01b8383604051602401612ae29291906158fe565b606063a26dac0960e01b848484604051602401611e1d939291906155f6565b606063dec4aedf60e01b8383604051602401612ae29291906154d7565b606063e53c76c860e01b848484604051602401611e1d93929190615866565b6060632800659560e01b848484604051602401611e1d939291906158ac565b9052565b6060631b8388f760e01b858585856040516024016122fa94939291906154fb565b606063fdb6ca8d60e01b8383604051602401612ae2929190615594565b606063b6555d6f60e01b8383604051602401612ae2929190615542565b6000613d1a8484846141a6565b15613d2d57613d2d610a6c85858561420c565b610b6b8361224e868563ffffffff612fac16565b613d496145c1565b81851184841184861115613d6957613d6289868661422b565b9250613db8565b86841115613da95782518790528251602001869052608088015160a0890151613d93919089613d0d565b6020808501805192909252905101879052613db8565b613db587878787614268565b92505b8115613dde576020808401510151835151613dd89163ffffffff611bd116565b60408401525b8015613e065782516020908101519084015151613e009163ffffffff611bd116565b60608401525b50505b9695505050505050565b613e1b6145c1565b82841115613e3557613e2e87848461422b565b9050613e83565b82841015613e745780518590528051602090810185905281015184905260a08601516080870151613e67919086614293565b6020808301510152613e83565b613e8085858585614268565b90505b6020808201510151815151613e9d9163ffffffff611bd116565b60408201529695505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff168015613efe57476000613edf8a84848b8b8a6142cb565b9050613ef189848385038b8a8a6142cb565b5060019350505050613e09565b6000915050613e09565b6000815183511480156109665750508051602091820120825192909101919091201490565b60008160140183511015613f4e57613f4e610a6c6004855185601401613c8f565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b606063a15c0d0660e01b8383604051602401612ae292919061537b565b8151600090613fa18484830363ffffffff613cae16565b6040516060907f20c13b0b0000000000000000000000000000000000000000000000000000000090613fd990889088906024016156f5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050614068858363ffffffff613cae16565b600060608873ffffffffffffffffffffffffffffffffffffffff1683604051614091919061530d565b600060405180830381855afa9150503d80600081146140cc576040519150601f19603f3d011682016040523d82523d6000602084013e6140d1565b606091505b50915091508180156140e4575080516020145b15614146577f20c13b0b0000000000000000000000000000000000000000000000000000000061411b82600063ffffffff613bac16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614945050505050610b6b565b614155610a6c8a8a8a85614403565b50505050949350505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff16801561419c576141918682478888886142cb565b506001915050610b6b565b6000915050610b6b565b6000826141b8576141b8610a6c614424565b8115806141c3575083155b156141d057506000610966565b600083806141da57fe5b85840990506141ef858463ffffffff612fac16565b614201826103e863ffffffff612fac16565b101595945050505050565b606063339f3de260e01b848484604051602401611e1d939291906155f6565b6142336145c1565b60208082018051859052518101839052815101839052608084015160a085015161425e919085613d0d565b8151529392505050565b6142706145c1565b805194909452835160209081019390935282840180519290925290519091015290565b60006142a084848461445b565b156142b3576142b3610a6c85858561420c565b610b6b8361224e61223282600163ffffffff611bd116565b60008385106142d75750825b6040516060907fa3b4a3270000000000000000000000000000000000000000000000000000000090614311908690869089906024016153a2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600060608873ffffffffffffffffffffffffffffffffffffffff16848460405161439a919061530d565b60006040518083038185875af1925050503d80600081146143d7576040519150601f19603f3d011682016040523d82523d6000602084013e6143dc565b606091505b5091509150816143f6576143f6610a6c8b898989866144bf565b5050509695505050505050565b6060635bd0428d60e01b858585856040516024016122fa94939291906153d3565b60408051808201909152600481527fa791837c00000000000000000000000000000000000000000000000000000000602082015290565b60008261446d5761446d610a6c614424565b811580614478575083155b1561448557506000610966565b6000838061448f57fe5b8584099050836144a5818363ffffffff611bd116565b816144ac57fe5b0690506141ef858463ffffffff612fac16565b60606387cb1e7560e01b86868686866040516024016144e29594939291906155b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905095945050505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280606081526020016060815260200160008152602001600081525090565b60405180608001604052806145d461456a565b81526020016145e161456a565b815260200160008152602001600081525090565b6040805160608101909152806000815260006020820181905260409091015290565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff811681146107f557600080fd5b600082601f830112614712578081fd5b813561472561472082615b1f565b615af8565b81815291506020808301908481018184028601820187101561474657600080fd5b60005b8481101561476d5761475b88836146de565b84529282019290820190600101614749565b505050505092915050565b600082601f830112614788578081fd5b813561479661472082615b1f565b8181529150602080830190840160005b838110156147d3576147be8760208435890101614896565b835260209283019291909101906001016147a6565b5050505092915050565b600082601f8301126147ed578081fd5b81356147fb61472082615b1f565b8181529150602080830190840160005b838110156147d357614823876020843589010161491d565b8352602092830192919091019060010161480b565b600082601f830112614848578081fd5b813561485661472082615b1f565b81815291506020808301908481018184028601820187101561487757600080fd5b60005b8481101561476d5781358452928201929082019060010161487a565b600082601f8301126148a6578081fd5b813567ffffffffffffffff8111156148bc578182fd5b6148ed60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601615af8565b915080825283602082850101111561490457600080fd5b8060208401602084013760009082016020015292915050565b60006101c0808385031215614930578182fd5b61493981615af8565b91505061494683836146de565b815261495583602084016146de565b602082015261496783604084016146de565b604082015261497983606084016146de565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff808211156149db57600080fd5b6149e786838701614896565b83850152610160925082850135915080821115614a0357600080fd5b614a0f86838701614896565b83850152610180925082850135915080821115614a2b57600080fd5b614a3786838701614896565b838501526101a0925082850135915080821115614a5357600080fd5b50614a6085828601614896565b82840152505092915050565b600060a08284031215614a7d578081fd5b614a8760a0615af8565b90508135815260208201356020820152604082013560408201526060820135614aaf81615b89565b6060820152608082013567ffffffffffffffff811115614ace57600080fd5b614ada84828501614896565b60808301525092915050565b600060208284031215614af7578081fd5b61096683836146de565b60008060408385031215614b13578081fd5b614b1d84846146de565b9150614b2c84602085016146de565b90509250929050565b60008060408385031215614b47578182fd5b614b5184846146de565b915060208301358015158114614b65578182fd5b809150509250929050565b60008060008060808587031215614b85578182fd5b843567ffffffffffffffff80821115614b9c578384fd5b614ba888838901614778565b95506020870135915080821115614bbd578384fd5b614bc988838901614702565b94506040870135915080821115614bde578384fd5b614bea88838901614702565b93506060870135915080821115614bff578283fd5b50614c0c87828801614838565b91505092959194509250565b600060208284031215614c29578081fd5b813567ffffffffffffffff811115614c3f578182fd5b610b6b848285016147dd565b60008060008060808587031215614c60578182fd5b843567ffffffffffffffff80821115614c77578384fd5b614c83888389016147dd565b95506020870135915080821115614c98578384fd5b614ca4888389016147dd565b94506040870135915080821115614cb9578384fd5b614cc588838901614778565b93506060870135915080821115614cda578283fd5b50614c0c87828801614778565b600080600060608486031215614cfb578081fd5b833567ffffffffffffffff80821115614d12578283fd5b614d1e878388016147dd565b94506020860135915080821115614d33578283fd5b614d3f87838801614838565b93506040860135915080821115614d54578283fd5b50614d6186828701614778565b9150509250925092565b600080600060608486031215614d7f578081fd5b833567ffffffffffffffff80821115614d96578283fd5b614da2878388016147dd565b9450602086013593506040860135915080821115614d54578283fd5b60008060408385031215614dd0578182fd5b823567ffffffffffffffff80821115614de7578384fd5b81850186601f820112614df8578485fd5b80359250614e0861472084615b1f565b83815260208082019190838101885b87811015614e4057614e2e8c848435890101614a6c565b85529382019390820190600101614e17565b50919750880135945050505080821115614e58578283fd5b50614e6585828601614778565b9150509250929050565b600060208284031215614e80578081fd5b5035919050565b60008060408385031215614e99578182fd5b823591506020830135614b6581615b89565b600080600060608486031215614ebf578081fd5b833592506020840135614ed181615b89565b9150604084013567ffffffffffffffff811115614eec578182fd5b614d6186828701614896565b600060208284031215614f09578081fd5b813561096681615bab565b600060208284031215614f25578081fd5b815161096681615bab565b600060a08284031215614f41578081fd5b614f4b60a0615af8565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b600060208284031215614f92578081fd5b813567ffffffffffffffff811115614fa8578182fd5b610b6b8482850161491d565b60008060408385031215614fc6578182fd5b823567ffffffffffffffff80821115614fdd578384fd5b614fe98683870161491d565b93506020850135915080821115614ffe578283fd5b50614e6585828601614896565b60008060008060808587031215615020578182fd5b843567ffffffffffffffff80821115615037578384fd5b6150438883890161491d565b95506020870135915080821115615058578384fd5b6150648883890161491d565b94506040870135915080821115615079578384fd5b61508588838901614896565b9350606087013591508082111561509a578283fd5b50614c0c87828801614896565b6000806000606084860312156150bb578081fd5b833567ffffffffffffffff808211156150d2578283fd5b6150de8783880161491d565b94506020860135935060408601359150808211156150fa578283fd5b50614d6186828701614896565b60008060408385031215615119578182fd5b823567ffffffffffffffff80821115615130578384fd5b614fe986838701614a6c565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b828110156151925761517c8683516151e6565b60a0959095019460209190910190600101615169565b5093949350505050565b600081518084526151b4816020860160208601615b3f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101c061522684845161513c565b6020830151615238602086018261513c565b50604083015161524b604086018261513c565b50606083015161525e606086018261513c565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526152b78387018261519c565b915050610160915081840151858203838701526152d4828261519c565b9250505061018080840151858303828701526152f0838261519c565b9150506101a091508184015185820383870152613e09828261519c565b6000825161531f818460208701615b3f565b9190910192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260806020830152615402608083018661519c565b8281036040840152615414818661519c565b8381036060850152615426818661519c565b98975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156154a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261549185835161519c565b94509285019290850190600101615457565b5092979650505050505050565b6000602082526109666020830184615156565b901515815260200190565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600085825273ffffffffffffffffffffffffffffffffffffffff8516602083015260806040830152615530608083018561519c565b8281036060840152613940818561519c565b918252602082015260400190565b600083825260406020830152610b6b604083018461519c565b600084825260606020830152615582606083018561519c565b8281036040840152613e09818561519c565b828152604081016155a483615b7f565b8260208301529392505050565b600086825285602083015273ffffffffffffffffffffffffffffffffffffffff808616604084015280851660608401525060a0608083015261394060a083018461519c565b9283526020830191909152604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b7fffffffff0000000000000000000000000000000000000000000000000000000092909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600060208252610966602083018461519c565b6000608082526156c5608083018761519c565b73ffffffffffffffffffffffffffffffffffffffff95861660208401529390941660408201526060015292915050565b600060408252615708604083018561519c565b8281036020840152610e1a818561519c565b60006060825261572d606083018661519c565b828103602084015261573f818661519c565b91505073ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b600061016080835261577a8184018f61519c565b838103602085015261578c818f61519c565b91505082810360408401526157a1818d61519c565b83810360608501526157b3818d61519c565b73ffffffffffffffffffffffffffffffffffffffff9b8c16608086015299909a1660a0840152505060c081019590955260e08501939093526101008401919091526101208301526101409091015295945050505050565b600061581585615b6b565b84825283602083015260606040830152610e1a606083018461519c565b6020810161583f83615b75565b91905290565b6060810161585285615b75565b938152602081019290925260409091015290565b606081016003851061587457fe5b938152602081019290925273ffffffffffffffffffffffffffffffffffffffff1660409091015290565b606081016003851061585257fe5b606081016008851061585257fe5b60006158c586615b7f565b85825284602083015273ffffffffffffffffffffffffffffffffffffffff8416604083015260806060830152613e09608083018461519c565b6040810161590b84615b6b565b9281526020015290565b60208082526014908201527f5452414e53464552535f5355434345535346554c000000000000000000000000604082015260600190565b60006020825282516080602084015261596860a0840182615156565b602085015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08482030160408501526159a38183615156565b604086015160608601526060860151608086015280935050505092915050565b60a081016107f582846151e6565b6000610180820190506159e58284516151e6565b60208301516159f760a08401826151e6565b5060408301516101408301526060909201516101609091015290565b81516060820190615a2381615b7f565b80835250602083015160208301526040830151604083015292915050565b600060408252615a546040830185615216565b90508260208301529392505050565b600060608252615a766060830186615216565b8460208401528281036040840152613e09818561519c565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152615ae860e084018261519c565b9150508260208301529392505050565b60405181810167ffffffffffffffff81118282101715615b1757600080fd5b604052919050565b600067ffffffffffffffff821115615b35578081fd5b5060209081020190565b60005b83811015615b5a578181015183820152602001615b42565b838111156133785750506000910152565b6002811061084357fe5b6004811061084357fe5b6007811061084357fe5b73ffffffffffffffffffffffffffffffffffffffff8116811461084357600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008116811461084357600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a723158206628f553d4c70843d623568428c39acd1576188dbf22ecde8672c8c8de9525c06c6578706572696d656e74616cf564736f6c63430005110040" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/Forwarder.json b/packages/contract-artifacts/artifacts/Forwarder.json index 15499618ca..1ef8d6b2a0 100644 --- a/packages/contract-artifacts/artifacts/Forwarder.json +++ b/packages/contract-artifacts/artifacts/Forwarder.json @@ -308,10 +308,10 @@ }, "evm": { "bytecode": { - "object": "0x60806040523480156200001157600080fd5b5060405162003f2c38038062003f2c833981016040819052620000349162000472565b60008054336001600160a01b031991821617909155600180549091166001600160a01b0383161790556040518390839082908490630f47261b60e41b9062000081908390602401620004e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217825251620000c191600291620003a0565b50604051630c0e082160e31b81526000906001600160a01b03841690636070410890620000fa90630f47261b60e41b9060040162000514565b60206040518083038186803b1580156200011357600080fd5b505afa15801562000128573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200014e919081019062000442565b90506001600160a01b038116620001895762000189620001786200036b60201b6200082f1760201c565b6200039860201b620002f61760201c565b60015460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620001bf90849060001990600401620004fb565b602060405180830381600087803b158015620001da57600080fd5b505af1158015620001ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002159190810190620004c5565b506000836001600160a01b031663850a15016040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025257600080fd5b505afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200028d919081019062000442565b90506001600160a01b038116156200032d5760015460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620002d590849060001990600401620004fb565b602060405180830381600087803b158015620002f057600080fd5b505af115801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200032b9190810190620004c5565b505b5050600380546001600160a01b039586166001600160a01b031991821617909155600480549490951693169290921790925550620005429350505050565b6040805160048152602481019091526020810180516001600160e01b031663f3b96b8d60e01b1790525b90565b805160208201fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003e357805160ff191683800117855562000413565b8280016001018555821562000413579182015b8281111562000413578251825591602001919060010190620003f6565b506200042192915062000425565b5090565b6200039591905b808211156200042157600081556001016200042c565b60006020828403121562000454578081fd5b81516001600160a01b03811681146200046b578182fd5b9392505050565b60008060006060848603121562000487578182fd5b8351620004948162000529565b6020850151909350620004a78162000529565b6040850151909250620004ba8162000529565b809150509250925092565b600060208284031215620004d7578081fd5b815180151581146200046b578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160e01b031991909116815260200190565b6001600160a01b03811681146200053f57600080fd5b50565b6139da80620005526000396000f3fe6080604052600436106100c75760003560e01c8063bc197c8111610074578063f23a6e611161004e578063f23a6e6114610202578063f2fde38b14610222578063fc67bf1c14610242576100c7565b8063bc197c81146101ab578063e0a5c949146101d8578063e196001b146101ed576100c7565b8063907e5cc3116100a5578063907e5cc314610164578063939ce6ba146101855780639e83231514610198576100c7565b8063442026ed146100f9578063630f1e6c146101195780638da5cb5b14610139575b60015473ffffffffffffffffffffffffffffffffffffffff1633146100f7576100f76100f233610257565b6102f6565b005b34801561010557600080fd5b506100f7610114366004613304565b6102fe565b34801561012557600080fd5b506100f7610134366004613344565b6104e8565b34801561014557600080fd5b5061014e61053e565b60405161015b91906134d5565b60405180910390f35b610177610172366004613106565b61055a565b60405161015b9291906138b2565b6101776101933660046131a2565b6105b5565b6101776101a63660046131a2565b61063b565b3480156101b757600080fd5b506101cb6101c6366004612fd1565b610671565b60405161015b91906135de565b3480156101e457600080fd5b506101cb61069e565b3480156101f957600080fd5b506101cb6106c2565b34801561020e57600080fd5b506101cb61021d36600461308c565b6106e6565b34801561022e57600080fd5b506100f761023d366004612f01565b610711565b34801561024e57600080fd5b506101cb6107b5565b60606308b1869860e01b8260405160240161027291906134d5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b600061034a600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6107d9169050565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082168114156104e2576003546040517f6070410800000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906360704108906103ee9085906004016135de565b60206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061043e9190810190612f1d565b905073ffffffffffffffffffffffffffffffffffffffff8116610466576104666100f261082f565b60006104b2601087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff610889169050565b90506104df81837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c9565b50505b50505050565b6104f061098a565b6105398184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6109d3169050565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600080600061056985856109e9565b9050610576878288610b3f565b909350915080831115610590576105906100f28434610d53565b6105a0818463ffffffff610df516565b90506105ab81610e14565b5094509492505050565b600080348611156105cd576105cd6100f28734610ecf565b60006105d985856109e9565b9050868110156105f0576105f06100f28289610d53565b6105fb888888610eec565b909350915086831015610615576106156100f28885610ecf565b610625818463ffffffff610df516565b905061063081610e14565b509550959350505050565b600080600061064a85856109e9565b905061065788888861100d565b909350915080831115610615576106156100f28434610d53565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f770501f80000000000000000000000000000000000000000000000000000000081565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61071961098a565b73ffffffffffffffffffffffffffffffffffffffff81166107445761073f6100f261139f565b6107b2565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b600081600401835110156107fa576107fa6100f260038551856004016113d6565b5060208183018101519101907fffffffff00000000000000000000000000000000000000000000000000000000165b92915050565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d0000000000000000000000000000000000000000000000000000000017905290565b600081601401835110156108aa576108aa6100f260048551856014016113d6565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907f095ea7b3000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506104e2848261147c565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109d1576000546109d1906100f290339073ffffffffffffffffffffffffffffffffffffffff16611534565b565b6109e58230338463ffffffff61155116565b5050565b81518151600091908114610a0557610a056100f282855161178c565b34915060005b818114610ab4576000858281518110610a2057fe5b6020026020010151905080841015610a3f57610a3f6100f282866117a9565b610a4f848263ffffffff610df516565b9350848281518110610a5d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610aaa573d6000803e3d6000fd5b5050600101610a0b565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b1f57600080fd5b505af1158015610b33573d6000803e3d6000fd5b50505050505092915050565b6000806000610bf4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ce4c78b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610baf57600080fd5b505afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610be791908101906133df565b3a9063ffffffff6117c616565b905060005b86518114610d4957868181518110610c0d57fe5b60200260200101516080015160001480610c3e5750868181518110610c2e57fe5b602002602001015160a001516000145b15610c4857610d41565b6000610c5a878663ffffffff610df516565b90506000610c7a898481518110610c6d57fe5b60200260200101516117f7565b610c845783610c87565b60005b905080821115610ca857610ca1828263ffffffff610df516565b9150610caf565b5050610d49565b610cb761297e565b610ce88a8581518110610cc657fe5b6020026020010151898681518110610cda57fe5b60200260200101518561186c565b60408101518151919250610d1391610d07908a9063ffffffff611bde16565b9063ffffffff611bde16565b9650610d2c816020015187611bde90919063ffffffff16565b9550888710610d3d57505050610d49565b5050505b600101610bf9565b5050935093915050565b606063cdcbed5d60e01b8383604051602401610d709291906138b2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600082821115610e0e57610e0e6100f260028585611bf6565b50900390565b80156107b2576001546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e709084906004016138a9565b600060405180830381600087803b158015610e8a57600080fd5b505af1158015610e9e573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156109e5573d6000803e3d6000fd5b606063450a021960e01b8383604051602401610d709291906138b2565b60008080805b86518114610ff157868181518110610f0657fe5b60200260200101516080015160001480610f375750868181518110610f2757fe5b602002602001015160a001516000145b15610f4157610fe9565b6000610f53878663ffffffff610df516565b9050610f5d61297e565b610f8e898481518110610f6c57fe5b6020026020010151888581518110610f8057fe5b60200260200101518461186c565b8051909150610fa490879063ffffffff611bde16565b9550610fbd816020015186611bde90919063ffffffff16565b9450610fd6816040015185611bde90919063ffffffff16565b9350878610610fe6575050610ff1565b50505b600101610ef2565b50611002838263ffffffff611bde16565b925050935093915050565b82516000908190815b8181146113805786818151811061102957fe5b6020026020010151608001516000148061105a575086818151811061104a57fe5b602002602001015160a001516000145b1561106457611378565b6000611076878563ffffffff610df516565b905060006110a660008a858151811061108b57fe5b602002602001015161014001516107d990919063ffffffff16565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f30000000000000000000000000000000000000000000000000000000014156111c95761112160108c878151811061110657fe5b6020026020010151610140015161088990919063ffffffff16565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906111769030906004016134d5565b60206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c691908101906133df565b90505b6000806111fd8d88815181106111db57fe5b60200260200101518c89815181106111ef57fe5b602002602001015188611c15565b90925090507fffffffff0000000000000000000000000000000000000000000000000000000085167fdc1600f3000000000000000000000000000000000000000000000000000000001415611310576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8616906370a08231906112a19030906004016134d5565b60206040518083038186803b1580156112b957600080fd5b505afa1580156112cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112f191908101906133df565b905061130c611306828663ffffffff610df516565b83611d4e565b9150505b61133b818e898151811061132057fe5b602002602001015161014001516109d390919063ffffffff16565b61134b8a8363ffffffff611bde16565b995061135d898263ffffffff611bde16565b98508b891061137157505050505050611380565b5050505050505b600101611016565b5084821015611396576113966100f28684611d65565b50935093915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060632800659560e01b8484846040516024016113f593929190613640565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b9392505050565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516114a591906134b9565b6000604051808303816000865af19150503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5091509150811561152b5780516114ff5750506109e5565b80516020141561152b576000611516826000611d82565b90508060011415611529575050506109e5565b505b6104e2816102f6565b6060631de45ad160e01b8383604051602401610d709291906134f6565b8061155b576104e2565b600061156d858263ffffffff6107d916565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b000000000000000000000000000000000000000000000000000000000148061160057507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b1561161c576116178585858563ffffffff611d8e16565b611785565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f02571792000000000000000000000000000000000000000000000000000000001415611678576116178585858563ffffffff611dd816565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156116d4576116178585858563ffffffff611ea716565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611730576116178585858563ffffffff611ffd16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a0000000000000000000000000000000000000000000000000000000014611785576117856100f282612091565b5050505050565b6060633ecb6ceb60e01b8383604051602401610d709291906138b2565b606063ecf40fd960e01b8383604051602401610d709291906138b2565b6000826117d557506000610829565b828202828482816117e257fe5b0414611475576114756100f260018686611bf6565b600060038261018001515111801561082957506101808201517f770501f8000000000000000000000000000000000000000000000000000000009061184390600063ffffffff6107d916565b7fffffffff00000000000000000000000000000000000000000000000000000000161492915050565b61187461297e565b61014084015160009061188d908263ffffffff6107d916565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f300000000000000000000000000000000000000000000000000000000141561199b576101408701516118f390601063ffffffff61088916565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906119489030906004016134d5565b60206040518083038186803b15801561196057600080fd5b505afa158015611974573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061199891908101906133df565b90505b60e087015115806119bb57506119bb876101a001518861014001516120ac565b15611a09576119c861299f565b6119d3888789612259565b6020810151865260808101516040870152606081015181519192506119fe919063ffffffff610df516565b602086015250611aa5565b611a1d876101a001518861016001516120ac565b15611a945760a087015160e0880151600091611a4a91611a4490829063ffffffff611bde16565b88612294565b9050611a5461299f565b611a5f89838a612259565b9050611a7c81606001518260200151611bde90919063ffffffff16565b86528051602087015260800151604086015250611aa5565b611aa56100f2886101a001516122ca565b7fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f3000000000000000000000000000000000000000000000000000000001415611bba576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190611b449030906004016134d5565b60206040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b9491908101906133df565b9050611bb3611ba9828463ffffffff610df516565b8660200151611d4e565b6020860152505b6020840151610140880151611bd49163ffffffff6109d316565b5050509392505050565b600082820183811015611475576114756100f2600086865b606063e946c1bb60e01b8484846040516024016113f59392919061361e565b6000808460e0015160001480611c3a5750611c3a856101a001518661016001516120ac565b15611c9c576000611c548660a00151876080015186612294565b9050611c5e61299f565b611c69878388612259565b9050611c8e8160800151610d0783606001518460200151611bde90919063ffffffff16565b90519093509150611d469050565b611cb0856101a001518661014001516120ac565b15611d35576000611ce08660a00151611cda8860e001518960800151610df590919063ffffffff16565b86612294565b9050611cea61299f565b611cf5878388612259565b9050611d1281608001518260200151611bde90919063ffffffff16565b60608201518251919550611d2c919063ffffffff610df516565b92505050611d46565b611d466100f2866101a001516122ca565b935093915050565b600081831015611d5e5781611475565b5090919050565b60606391353a0c60e01b8383604051602401610d709291906138b2565b600061147583836122e5565b6000611da185601063ffffffff61088916565b905073ffffffffffffffffffffffffffffffffffffffff8416301415611dcc5761161781848461230f565b61178581858585612347565b80600114611dec57611dec6100f28261240a565b6000611dff85601063ffffffff61088916565b90506000611e1486602463ffffffff611d8216565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd90611e6d90889088908690600401613587565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b50505050505050505050565b60006060806060611ec5600489518a6124259092919063ffffffff16565b806020019051611ed89190810190612f39565b9350935093509350600082519050606081604051908082528060200260200182016040528015611f12578160200160208202803883390190505b50905060005b828114611f6457611f4588868381518110611f2f57fe5b60200260200101516117c690919063ffffffff16565b828281518110611f5157fe5b6020908102919091010152600101611f18565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d690611fbf908c908c908a9087908a9060040161351d565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611fed573d6000803e3d6000fd5b5050505050505050505050505050565b60608061201760048751886124259092919063ffffffff16565b80602001905161202a9190810190613254565b8051919350915060005b8181146120875761207f83828151811061204a57fe5b6020026020010151888861207a88868151811061206357fe5b60200260200101518a6117c690919063ffffffff16565b611551565b600101612034565b5050505050505050565b6060637996a27160e01b8260405160240161027291906135de565b6000806120bf848263ffffffff6107d916565b905060006120d3848263ffffffff6107d916565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fdc1600f3000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000841682148061216b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b80156121c957507fffffffff0000000000000000000000000000000000000000000000000000000083811690831614806121c957507fffffffff00000000000000000000000000000000000000000000000000000000838116908216145b156122345760006121e188601063ffffffff61088916565b905060006121f688601063ffffffff61088916565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149650505050505050610829565b612244878763ffffffff6124a516565b945050505050610829565b5050505092915050565b61226161299f565b61226a846117f7565b156122815761227a8484846124ca565b9050611475565b61228c84848461271e565b949350505050565b600061228c836122be6122ae82600163ffffffff610df516565b610d07888763ffffffff6117c616565b9063ffffffff61288b16565b60606331360af160e01b82604051602401610272919061360b565b60008160200183511015612306576123066100f260058551856020016113d6565b50016020015190565b6040516060907fa9059cbb000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b6040516060907f23b872dd000000000000000000000000000000000000000000000000000000009061238190869086908690602401613587565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050611785858261147c565b606063baffa47460e01b8260405160240161027291906138a9565b60608183111561243e5761243e6100f2600085856113d6565b8351821115612457576124576100f260018487516113d6565b8282036040519080825280601f01601f191660200182016040528015612484576020820181803883390190505b509050611475612493826128b5565b8461249d876128b5565b0183516128bb565b6000815183511480156114755750508051602091820120825192909101919091201490565b6124d261299f565b6124da6129ce565b604051806101800160405280866000015173ffffffffffffffffffffffffffffffffffffffff168152602001866020015173ffffffffffffffffffffffffffffffffffffffff168152602001866040015173ffffffffffffffffffffffffffffffffffffffff168152602001866060015173ffffffffffffffffffffffffffffffffffffffff168152602001866080015181526020018660a001518152602001600081526020016000815260200186610100015181526020018661012001518152602001866101400151815260200186610160015181525090506060600073ffffffffffffffffffffffffffffffffffffffff1663b4be83d5905060e01b8286866040516024016125ed9392919061364e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600454915190925073ffffffffffffffffffffffffffffffffffffffff90911690600090606090839061269e9086906134b9565b6000604051808303816000865af19150503d80600081146126db576040519150601f19603f3d011682016040523d82523d6000602084013e6126e0565b606091505b509150915081156127125780516080146126f657fe5b8080602001905161270a91908101906133f7565b602088015286525b50505050509392505050565b61272661299f565b6040516060907f9b44d55600000000000000000000000000000000000000000000000000000000906127609087908790879060240161376e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600354915190925073ffffffffffffffffffffffffffffffffffffffff9091169060009060609083906128119086906134b9565b6000604051808303816000865af19150503d806000811461284e576040519150601f19603f3d011682016040523d82523d6000602084013e612853565b606091505b5091509150811561288057805160a01461286957fe5b8080602001905161287d919081019061338e565b94505b505050509392505050565b6000816128a1576128a16100f260038585611bf6565b60008284816128ac57fe5b04949350505050565b60200190565b60208110156128e5576001816020036101000a038019835116818551168082178652505050610539565b828214156128f257610539565b8282111561292c5760208103905080820181840181515b82851015612924578451865260209586019590940193612909565b905250610539565b60208103905080820181840183515b8186121561297557825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061293b565b85525050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806101800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b803561082981613975565b600082601f830112612aa2578081fd5b8135612ab5612ab0826138e7565b6138c0565b818152915060208083019084810181840286018201871015612ad657600080fd5b60005b84811015612afe578135612aec81613975565b84529282019290820190600101612ad9565b505050505092915050565b600082601f830112612b19578081fd5b8135612b27612ab0826138e7565b8181529150602080830190840160005b8381101561224f57612b4f8760208435890101612e66565b83526020928301929190910190600101612b37565b600082601f830112612b74578081fd5b8135612b82612ab0826138e7565b818152915060208083019084810160005b84811015612afe57813587016101c0807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838c03011215612bd357600080fd5b612bdc816138c0565b612be88b878501612a87565b8152612bf78b60408501612a87565b86820152612c088b60608501612a87565b6040820152612c1a8b60808501612a87565b606082015260a0830135608082015260c083013560a082015260e083013560c08201526101008084013560e0830152610120808501358284015261014091508185013581840152506101608085013567ffffffffffffffff80821115612c7f57600080fd5b612c8d8f8b848a0101612e66565b84860152610180935083870135915080821115612ca957600080fd5b612cb78f8b848a0101612e66565b838601526101a0925082870135915080821115612cd357600080fd5b612ce18f8b848a0101612e66565b8486015285870135935080841115612cf857600080fd5b5050612d088d8984880101612e66565b9083015250865250509282019290820190600101612b93565b60008083601f840112612d32578182fd5b50813567ffffffffffffffff811115612d49578182fd5b6020830191508360208083028501011115612d6357600080fd5b9250929050565b600082601f830112612d7a578081fd5b8151612d88612ab0826138e7565b818152915060208083019084810181840286018201871015612da957600080fd5b60005b84811015612afe57815184529282019290820190600101612dac565b600082601f830112612dd8578081fd5b8135612de6612ab0826138e7565b818152915060208083019084810181840286018201871015612e0757600080fd5b60005b84811015612afe57813584529282019290820190600101612e0a565b60008083601f840112612e37578182fd5b50813567ffffffffffffffff811115612e4e578182fd5b602083019150836020828501011115612d6357600080fd5b600082601f830112612e76578081fd5b8135612e84612ab082613907565b9150808252836020828501011115612e9b57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612ec4578081fd5b8151612ed2612ab082613907565b9150808252836020828501011115612ee957600080fd5b612efa816020840160208601613949565b5092915050565b600060208284031215612f12578081fd5b813561147581613975565b600060208284031215612f2e578081fd5b815161147581613975565b60008060008060808587031215612f4e578283fd5b8451612f5981613975565b602086015190945067ffffffffffffffff80821115612f76578485fd5b612f8288838901612d6a565b94506040870151915080821115612f97578384fd5b612fa388838901612d6a565b93506060870151915080821115612fb8578283fd5b50612fc587828801612eb4565b91505092959194509250565b60008060008060008060008060a0898b031215612fec578586fd5b8835612ff781613975565b9750602089013561300781613975565b9650604089013567ffffffffffffffff80821115613023578788fd5b61302f8c838d01612d21565b909850965060608b0135915080821115613047578586fd5b6130538c838d01612d21565b909650945060808b013591508082111561306b578384fd5b506130788b828c01612e26565b999c989b5096995094979396929594505050565b60008060008060008060a087890312156130a4578384fd5b86356130af81613975565b955060208701356130bf81613975565b94506040870135935060608701359250608087013567ffffffffffffffff8111156130e8578283fd5b6130f489828a01612e26565b979a9699509497509295939492505050565b6000806000806080858703121561311b578182fd5b843567ffffffffffffffff80821115613132578384fd5b61313e88838901612b64565b95506020870135915080821115613153578384fd5b61315f88838901612b09565b94506040870135915080821115613174578384fd5b61318088838901612dc8565b93506060870135915080821115613195578283fd5b50612fc587828801612a92565b600080600080600060a086880312156131b9578283fd5b853567ffffffffffffffff808211156131d0578485fd5b6131dc89838a01612b64565b96506020880135955060408801359150808211156131f8578485fd5b61320489838a01612b09565b94506060880135915080821115613219578283fd5b61322589838a01612dc8565b9350608088013591508082111561323a578283fd5b5061324788828901612a92565b9150509295509295909350565b60008060408385031215613266578182fd5b825167ffffffffffffffff8082111561327d578384fd5b61328986838701612d6a565b935060209150818501518181111561329f578384fd5b85019050601f810186136132b1578283fd5b80516132bf612ab0826138e7565b81815283810190838501865b848110156132f4576132e28b888451890101612eb4565b845292860192908601906001016132cb565b5096999098509650505050505050565b60008060208385031215613316578182fd5b823567ffffffffffffffff81111561332c578283fd5b61333885828601612e26565b90969095509350505050565b600080600060408486031215613358578081fd5b833567ffffffffffffffff81111561336e578182fd5b61337a86828701612e26565b909790965060209590950135949350505050565b600060a0828403121561339f578081fd5b6133a960a06138c0565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602082840312156133f0578081fd5b5051919050565b60008060408385031215613409578182fd5b505080516020909101519092909150565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613465578151865260209586019590910190600101613447565b5093949350505050565b60008151808452613487816020860160208601613949565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516134cb818460208701613949565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a0604083015261355660a0830186613434565b82810360608401526135688186613434565b838103608085015261357a818661346f565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b600060208252611475602083018461346f565b606081016004851061362c57fe5b938152602081019290925260409091015290565b606081016008851061362c57fe5b60006060825261366260608301865161341a565b6020850151613674608084018261341a565b50604085015161368760a084018261341a565b50606085015161369a60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e088015192506101408381870152828901519350610160925083838701528189015193506101809150838287015280890151935050806101a08601525061370d6101e085018361346f565b8188015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0858203016101c0860152613748818461346f565b9150508560208501528381036040850152613763818661346f565b979650505050505050565b60006060825261378260608301865161341a565b6020850151613794608084018261341a565b5060408501516137a760a084018261341a565b5060608501516137ba60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e0880151925061014083818701528289015193506101609250838387015281890151935061018091508382870152808901519350506101c06101a0818188015261383061022088018661346f565b848b015195507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0945084888203018389015261386c818761346f565b925050828a0151945083878303016101e088015261388a828661346f565b9250808a0151945050508185820301610200860152613748818461346f565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156138df57600080fd5b604052919050565b600067ffffffffffffffff8211156138fd578081fd5b5060209081020190565b600067ffffffffffffffff82111561391d578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561396457818101518382015260200161394c565b838111156104e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146107b257600080fdfea365627a7a7231582044b5b700e71da9b34ea681113c5c2d7dc51a60db3338ae1b4863b61744fd81b86c6578706572696d656e74616cf564736f6c63430005110040" + "object": "0x60806040523480156200001157600080fd5b5060405162003f2c38038062003f2c833981016040819052620000349162000472565b60008054336001600160a01b031991821617909155600180549091166001600160a01b0383161790556040518390839082908490630f47261b60e41b9062000081908390602401620004e7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217825251620000c191600291620003a0565b50604051630c0e082160e31b81526000906001600160a01b03841690636070410890620000fa90630f47261b60e41b9060040162000514565b60206040518083038186803b1580156200011357600080fd5b505afa15801562000128573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200014e919081019062000442565b90506001600160a01b038116620001895762000189620001786200036b60201b6200082f1760201c565b6200039860201b620002f61760201c565b60015460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620001bf90849060001990600401620004fb565b602060405180830381600087803b158015620001da57600080fd5b505af1158015620001ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002159190810190620004c5565b506000836001600160a01b031663850a15016040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025257600080fd5b505afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200028d919081019062000442565b90506001600160a01b038116156200032d5760015460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390620002d590849060001990600401620004fb565b602060405180830381600087803b158015620002f057600080fd5b505af115801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200032b9190810190620004c5565b505b5050600380546001600160a01b039586166001600160a01b031991821617909155600480549490951693169290921790925550620005429350505050565b6040805160048152602481019091526020810180516001600160e01b031663f3b96b8d60e01b1790525b90565b805160208201fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003e357805160ff191683800117855562000413565b8280016001018555821562000413579182015b8281111562000413578251825591602001919060010190620003f6565b506200042192915062000425565b5090565b6200039591905b808211156200042157600081556001016200042c565b60006020828403121562000454578081fd5b81516001600160a01b03811681146200046b578182fd5b9392505050565b60008060006060848603121562000487578182fd5b8351620004948162000529565b6020850151909350620004a78162000529565b6040850151909250620004ba8162000529565b809150509250925092565b600060208284031215620004d7578081fd5b815180151581146200046b578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160e01b031991909116815260200190565b6001600160a01b03811681146200053f57600080fd5b50565b6139da80620005526000396000f3fe6080604052600436106100c75760003560e01c8063bc197c8111610074578063f23a6e611161004e578063f23a6e6114610202578063f2fde38b14610222578063fc67bf1c14610242576100c7565b8063bc197c81146101ab578063e0a5c949146101d8578063e196001b146101ed576100c7565b8063907e5cc3116100a5578063907e5cc314610164578063939ce6ba146101855780639e83231514610198576100c7565b8063442026ed146100f9578063630f1e6c146101195780638da5cb5b14610139575b60015473ffffffffffffffffffffffffffffffffffffffff1633146100f7576100f76100f233610257565b6102f6565b005b34801561010557600080fd5b506100f7610114366004613304565b6102fe565b34801561012557600080fd5b506100f7610134366004613344565b6104e8565b34801561014557600080fd5b5061014e61053e565b60405161015b91906134d5565b60405180910390f35b610177610172366004613106565b61055a565b60405161015b9291906138b2565b6101776101933660046131a2565b6105b5565b6101776101a63660046131a2565b61063b565b3480156101b757600080fd5b506101cb6101c6366004612fd1565b610671565b60405161015b91906135de565b3480156101e457600080fd5b506101cb61069e565b3480156101f957600080fd5b506101cb6106c2565b34801561020e57600080fd5b506101cb61021d36600461308c565b6106e6565b34801561022e57600080fd5b506100f761023d366004612f01565b610711565b34801561024e57600080fd5b506101cb6107b5565b60606308b1869860e01b8260405160240161027291906134d5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b600061034a600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6107d9169050565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082168114156104e2576003546040517f6070410800000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906360704108906103ee9085906004016135de565b60206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061043e9190810190612f1d565b905073ffffffffffffffffffffffffffffffffffffffff8116610466576104666100f261082f565b60006104b2601087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff610889169050565b90506104df81837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c9565b50505b50505050565b6104f061098a565b6105398184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6109d3169050565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600080600061056985856109e9565b9050610576878288610b3f565b909350915080831115610590576105906100f28434610d53565b6105a0818463ffffffff610df516565b90506105ab81610e14565b5094509492505050565b600080348611156105cd576105cd6100f28734610ecf565b60006105d985856109e9565b9050868110156105f0576105f06100f28289610d53565b6105fb888888610eec565b909350915086831015610615576106156100f28885610ecf565b610625818463ffffffff610df516565b905061063081610e14565b509550959350505050565b600080600061064a85856109e9565b905061065788888861100d565b909350915080831115610615576106156100f28434610d53565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f770501f80000000000000000000000000000000000000000000000000000000081565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61071961098a565b73ffffffffffffffffffffffffffffffffffffffff81166107445761073f6100f261139f565b6107b2565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b600081600401835110156107fa576107fa6100f260038551856004016113d6565b5060208183018101519101907fffffffff00000000000000000000000000000000000000000000000000000000165b92915050565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d0000000000000000000000000000000000000000000000000000000017905290565b600081601401835110156108aa576108aa6100f260048551856014016113d6565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907f095ea7b3000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506104e2848261147c565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109d1576000546109d1906100f290339073ffffffffffffffffffffffffffffffffffffffff16611534565b565b6109e58230338463ffffffff61155116565b5050565b81518151600091908114610a0557610a056100f282855161178c565b34915060005b818114610ab4576000858281518110610a2057fe5b6020026020010151905080841015610a3f57610a3f6100f282866117a9565b610a4f848263ffffffff610df516565b9350848281518110610a5d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610aaa573d6000803e3d6000fd5b5050600101610a0b565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b1f57600080fd5b505af1158015610b33573d6000803e3d6000fd5b50505050505092915050565b6000806000610bf4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ce4c78b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610baf57600080fd5b505afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610be791908101906133df565b3a9063ffffffff6117c616565b905060005b86518114610d4957868181518110610c0d57fe5b60200260200101516080015160001480610c3e5750868181518110610c2e57fe5b602002602001015160a001516000145b15610c4857610d41565b6000610c5a878663ffffffff610df516565b90506000610c7a898481518110610c6d57fe5b60200260200101516117f7565b610c845783610c87565b60005b905080821115610ca857610ca1828263ffffffff610df516565b9150610caf565b5050610d49565b610cb761297e565b610ce88a8581518110610cc657fe5b6020026020010151898681518110610cda57fe5b60200260200101518561186c565b60408101518151919250610d1391610d07908a9063ffffffff611bde16565b9063ffffffff611bde16565b9650610d2c816020015187611bde90919063ffffffff16565b9550888710610d3d57505050610d49565b5050505b600101610bf9565b5050935093915050565b606063cdcbed5d60e01b8383604051602401610d709291906138b2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600082821115610e0e57610e0e6100f260028585611bf6565b50900390565b80156107b2576001546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e709084906004016138a9565b600060405180830381600087803b158015610e8a57600080fd5b505af1158015610e9e573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156109e5573d6000803e3d6000fd5b606063450a021960e01b8383604051602401610d709291906138b2565b60008080805b86518114610ff157868181518110610f0657fe5b60200260200101516080015160001480610f375750868181518110610f2757fe5b602002602001015160a001516000145b15610f4157610fe9565b6000610f53878663ffffffff610df516565b9050610f5d61297e565b610f8e898481518110610f6c57fe5b6020026020010151888581518110610f8057fe5b60200260200101518461186c565b8051909150610fa490879063ffffffff611bde16565b9550610fbd816020015186611bde90919063ffffffff16565b9450610fd6816040015185611bde90919063ffffffff16565b9350878610610fe6575050610ff1565b50505b600101610ef2565b50611002838263ffffffff611bde16565b925050935093915050565b82516000908190815b8181146113805786818151811061102957fe5b6020026020010151608001516000148061105a575086818151811061104a57fe5b602002602001015160a001516000145b1561106457611378565b6000611076878563ffffffff610df516565b905060006110a660008a858151811061108b57fe5b602002602001015161014001516107d990919063ffffffff16565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f30000000000000000000000000000000000000000000000000000000014156111c95761112160108c878151811061110657fe5b6020026020010151610140015161088990919063ffffffff16565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906111769030906004016134d5565b60206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c691908101906133df565b90505b6000806111fd8d88815181106111db57fe5b60200260200101518c89815181106111ef57fe5b602002602001015188611c15565b90925090507fffffffff0000000000000000000000000000000000000000000000000000000085167fdc1600f3000000000000000000000000000000000000000000000000000000001415611310576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8616906370a08231906112a19030906004016134d5565b60206040518083038186803b1580156112b957600080fd5b505afa1580156112cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112f191908101906133df565b905061130c611306828663ffffffff610df516565b83611d4e565b9150505b61133b818e898151811061132057fe5b602002602001015161014001516109d390919063ffffffff16565b61134b8a8363ffffffff611bde16565b995061135d898263ffffffff611bde16565b98508b891061137157505050505050611380565b5050505050505b600101611016565b5084821015611396576113966100f28684611d65565b50935093915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060632800659560e01b8484846040516024016113f593929190613640565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b9392505050565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516114a591906134b9565b6000604051808303816000865af19150503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5091509150811561152b5780516114ff5750506109e5565b80516020141561152b576000611516826000611d82565b90508060011415611529575050506109e5565b505b6104e2816102f6565b6060631de45ad160e01b8383604051602401610d709291906134f6565b8061155b576104e2565b600061156d858263ffffffff6107d916565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b000000000000000000000000000000000000000000000000000000000148061160057507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b1561161c576116178585858563ffffffff611d8e16565b611785565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f02571792000000000000000000000000000000000000000000000000000000001415611678576116178585858563ffffffff611dd816565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156116d4576116178585858563ffffffff611ea716565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611730576116178585858563ffffffff611ffd16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a0000000000000000000000000000000000000000000000000000000014611785576117856100f282612091565b5050505050565b6060633ecb6ceb60e01b8383604051602401610d709291906138b2565b606063ecf40fd960e01b8383604051602401610d709291906138b2565b6000826117d557506000610829565b828202828482816117e257fe5b0414611475576114756100f260018686611bf6565b600060038261018001515111801561082957506101808201517f770501f8000000000000000000000000000000000000000000000000000000009061184390600063ffffffff6107d916565b7fffffffff00000000000000000000000000000000000000000000000000000000161492915050565b61187461297e565b61014084015160009061188d908263ffffffff6107d916565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f300000000000000000000000000000000000000000000000000000000141561199b576101408701516118f390601063ffffffff61088916565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906119489030906004016134d5565b60206040518083038186803b15801561196057600080fd5b505afa158015611974573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061199891908101906133df565b90505b60e087015115806119bb57506119bb876101a001518861014001516120ac565b15611a09576119c861299f565b6119d3888789612259565b6020810151865260808101516040870152606081015181519192506119fe919063ffffffff610df516565b602086015250611aa5565b611a1d876101a001518861016001516120ac565b15611a945760a087015160e0880151600091611a4a91611a4490829063ffffffff611bde16565b88612294565b9050611a5461299f565b611a5f89838a612259565b9050611a7c81606001518260200151611bde90919063ffffffff16565b86528051602087015260800151604086015250611aa5565b611aa56100f2886101a001516122ca565b7fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f3000000000000000000000000000000000000000000000000000000001415611bba576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190611b449030906004016134d5565b60206040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b9491908101906133df565b9050611bb3611ba9828463ffffffff610df516565b8660200151611d4e565b6020860152505b6020840151610140880151611bd49163ffffffff6109d316565b5050509392505050565b600082820183811015611475576114756100f2600086865b606063e946c1bb60e01b8484846040516024016113f59392919061361e565b6000808460e0015160001480611c3a5750611c3a856101a001518661016001516120ac565b15611c9c576000611c548660a00151876080015186612294565b9050611c5e61299f565b611c69878388612259565b9050611c8e8160800151610d0783606001518460200151611bde90919063ffffffff16565b90519093509150611d469050565b611cb0856101a001518661014001516120ac565b15611d35576000611ce08660a00151611cda8860e001518960800151610df590919063ffffffff16565b86612294565b9050611cea61299f565b611cf5878388612259565b9050611d1281608001518260200151611bde90919063ffffffff16565b60608201518251919550611d2c919063ffffffff610df516565b92505050611d46565b611d466100f2866101a001516122ca565b935093915050565b600081831015611d5e5781611475565b5090919050565b60606391353a0c60e01b8383604051602401610d709291906138b2565b600061147583836122e5565b6000611da185601063ffffffff61088916565b905073ffffffffffffffffffffffffffffffffffffffff8416301415611dcc5761161781848461230f565b61178581858585612347565b80600114611dec57611dec6100f28261240a565b6000611dff85601063ffffffff61088916565b90506000611e1486602463ffffffff611d8216565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd90611e6d90889088908690600401613587565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b50505050505050505050565b60006060806060611ec5600489518a6124259092919063ffffffff16565b806020019051611ed89190810190612f39565b9350935093509350600082519050606081604051908082528060200260200182016040528015611f12578160200160208202803883390190505b50905060005b828114611f6457611f4588868381518110611f2f57fe5b60200260200101516117c690919063ffffffff16565b828281518110611f5157fe5b6020908102919091010152600101611f18565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d690611fbf908c908c908a9087908a9060040161351d565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611fed573d6000803e3d6000fd5b5050505050505050505050505050565b60608061201760048751886124259092919063ffffffff16565b80602001905161202a9190810190613254565b8051919350915060005b8181146120875761207f83828151811061204a57fe5b6020026020010151888861207a88868151811061206357fe5b60200260200101518a6117c690919063ffffffff16565b611551565b600101612034565b5050505050505050565b6060637996a27160e01b8260405160240161027291906135de565b6000806120bf848263ffffffff6107d916565b905060006120d3848263ffffffff6107d916565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fdc1600f3000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000841682148061216b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b80156121c957507fffffffff0000000000000000000000000000000000000000000000000000000083811690831614806121c957507fffffffff00000000000000000000000000000000000000000000000000000000838116908216145b156122345760006121e188601063ffffffff61088916565b905060006121f688601063ffffffff61088916565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149650505050505050610829565b612244878763ffffffff6124a516565b945050505050610829565b5050505092915050565b61226161299f565b61226a846117f7565b156122815761227a8484846124ca565b9050611475565b61228c84848461271e565b949350505050565b600061228c836122be6122ae82600163ffffffff610df516565b610d07888763ffffffff6117c616565b9063ffffffff61288b16565b60606331360af160e01b82604051602401610272919061360b565b60008160200183511015612306576123066100f260058551856020016113d6565b50016020015190565b6040516060907fa9059cbb000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b6040516060907f23b872dd000000000000000000000000000000000000000000000000000000009061238190869086908690602401613587565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050611785858261147c565b606063baffa47460e01b8260405160240161027291906138a9565b60608183111561243e5761243e6100f2600085856113d6565b8351821115612457576124576100f260018487516113d6565b8282036040519080825280601f01601f191660200182016040528015612484576020820181803883390190505b509050611475612493826128b5565b8461249d876128b5565b0183516128bb565b6000815183511480156114755750508051602091820120825192909101919091201490565b6124d261299f565b6124da6129ce565b604051806101800160405280866000015173ffffffffffffffffffffffffffffffffffffffff168152602001866020015173ffffffffffffffffffffffffffffffffffffffff168152602001866040015173ffffffffffffffffffffffffffffffffffffffff168152602001866060015173ffffffffffffffffffffffffffffffffffffffff168152602001866080015181526020018660a001518152602001600081526020016000815260200186610100015181526020018661012001518152602001866101400151815260200186610160015181525090506060600073ffffffffffffffffffffffffffffffffffffffff1663b4be83d5905060e01b8286866040516024016125ed9392919061364e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600454915190925073ffffffffffffffffffffffffffffffffffffffff90911690600090606090839061269e9086906134b9565b6000604051808303816000865af19150503d80600081146126db576040519150601f19603f3d011682016040523d82523d6000602084013e6126e0565b606091505b509150915081156127125780516080146126f657fe5b8080602001905161270a91908101906133f7565b602088015286525b50505050509392505050565b61272661299f565b6040516060907f9b44d55600000000000000000000000000000000000000000000000000000000906127609087908790879060240161376e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600354915190925073ffffffffffffffffffffffffffffffffffffffff9091169060009060609083906128119086906134b9565b6000604051808303816000865af19150503d806000811461284e576040519150601f19603f3d011682016040523d82523d6000602084013e612853565b606091505b5091509150811561288057805160a01461286957fe5b8080602001905161287d919081019061338e565b94505b505050509392505050565b6000816128a1576128a16100f260038585611bf6565b60008284816128ac57fe5b04949350505050565b60200190565b60208110156128e5576001816020036101000a038019835116818551168082178652505050610539565b828214156128f257610539565b8282111561292c5760208103905080820181840181515b82851015612924578451865260209586019590940193612909565b905250610539565b60208103905080820181840183515b8186121561297557825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061293b565b85525050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806101800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b803561082981613975565b600082601f830112612aa2578081fd5b8135612ab5612ab0826138e7565b6138c0565b818152915060208083019084810181840286018201871015612ad657600080fd5b60005b84811015612afe578135612aec81613975565b84529282019290820190600101612ad9565b505050505092915050565b600082601f830112612b19578081fd5b8135612b27612ab0826138e7565b8181529150602080830190840160005b8381101561224f57612b4f8760208435890101612e66565b83526020928301929190910190600101612b37565b600082601f830112612b74578081fd5b8135612b82612ab0826138e7565b818152915060208083019084810160005b84811015612afe57813587016101c0807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838c03011215612bd357600080fd5b612bdc816138c0565b612be88b878501612a87565b8152612bf78b60408501612a87565b86820152612c088b60608501612a87565b6040820152612c1a8b60808501612a87565b606082015260a0830135608082015260c083013560a082015260e083013560c08201526101008084013560e0830152610120808501358284015261014091508185013581840152506101608085013567ffffffffffffffff80821115612c7f57600080fd5b612c8d8f8b848a0101612e66565b84860152610180935083870135915080821115612ca957600080fd5b612cb78f8b848a0101612e66565b838601526101a0925082870135915080821115612cd357600080fd5b612ce18f8b848a0101612e66565b8486015285870135935080841115612cf857600080fd5b5050612d088d8984880101612e66565b9083015250865250509282019290820190600101612b93565b60008083601f840112612d32578182fd5b50813567ffffffffffffffff811115612d49578182fd5b6020830191508360208083028501011115612d6357600080fd5b9250929050565b600082601f830112612d7a578081fd5b8151612d88612ab0826138e7565b818152915060208083019084810181840286018201871015612da957600080fd5b60005b84811015612afe57815184529282019290820190600101612dac565b600082601f830112612dd8578081fd5b8135612de6612ab0826138e7565b818152915060208083019084810181840286018201871015612e0757600080fd5b60005b84811015612afe57813584529282019290820190600101612e0a565b60008083601f840112612e37578182fd5b50813567ffffffffffffffff811115612e4e578182fd5b602083019150836020828501011115612d6357600080fd5b600082601f830112612e76578081fd5b8135612e84612ab082613907565b9150808252836020828501011115612e9b57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612ec4578081fd5b8151612ed2612ab082613907565b9150808252836020828501011115612ee957600080fd5b612efa816020840160208601613949565b5092915050565b600060208284031215612f12578081fd5b813561147581613975565b600060208284031215612f2e578081fd5b815161147581613975565b60008060008060808587031215612f4e578283fd5b8451612f5981613975565b602086015190945067ffffffffffffffff80821115612f76578485fd5b612f8288838901612d6a565b94506040870151915080821115612f97578384fd5b612fa388838901612d6a565b93506060870151915080821115612fb8578283fd5b50612fc587828801612eb4565b91505092959194509250565b60008060008060008060008060a0898b031215612fec578586fd5b8835612ff781613975565b9750602089013561300781613975565b9650604089013567ffffffffffffffff80821115613023578788fd5b61302f8c838d01612d21565b909850965060608b0135915080821115613047578586fd5b6130538c838d01612d21565b909650945060808b013591508082111561306b578384fd5b506130788b828c01612e26565b999c989b5096995094979396929594505050565b60008060008060008060a087890312156130a4578384fd5b86356130af81613975565b955060208701356130bf81613975565b94506040870135935060608701359250608087013567ffffffffffffffff8111156130e8578283fd5b6130f489828a01612e26565b979a9699509497509295939492505050565b6000806000806080858703121561311b578182fd5b843567ffffffffffffffff80821115613132578384fd5b61313e88838901612b64565b95506020870135915080821115613153578384fd5b61315f88838901612b09565b94506040870135915080821115613174578384fd5b61318088838901612dc8565b93506060870135915080821115613195578283fd5b50612fc587828801612a92565b600080600080600060a086880312156131b9578283fd5b853567ffffffffffffffff808211156131d0578485fd5b6131dc89838a01612b64565b96506020880135955060408801359150808211156131f8578485fd5b61320489838a01612b09565b94506060880135915080821115613219578283fd5b61322589838a01612dc8565b9350608088013591508082111561323a578283fd5b5061324788828901612a92565b9150509295509295909350565b60008060408385031215613266578182fd5b825167ffffffffffffffff8082111561327d578384fd5b61328986838701612d6a565b935060209150818501518181111561329f578384fd5b85019050601f810186136132b1578283fd5b80516132bf612ab0826138e7565b81815283810190838501865b848110156132f4576132e28b888451890101612eb4565b845292860192908601906001016132cb565b5096999098509650505050505050565b60008060208385031215613316578182fd5b823567ffffffffffffffff81111561332c578283fd5b61333885828601612e26565b90969095509350505050565b600080600060408486031215613358578081fd5b833567ffffffffffffffff81111561336e578182fd5b61337a86828701612e26565b909790965060209590950135949350505050565b600060a0828403121561339f578081fd5b6133a960a06138c0565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602082840312156133f0578081fd5b5051919050565b60008060408385031215613409578182fd5b505080516020909101519092909150565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613465578151865260209586019590910190600101613447565b5093949350505050565b60008151808452613487816020860160208601613949565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516134cb818460208701613949565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a0604083015261355660a0830186613434565b82810360608401526135688186613434565b838103608085015261357a818661346f565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b600060208252611475602083018461346f565b606081016004851061362c57fe5b938152602081019290925260409091015290565b606081016008851061362c57fe5b60006060825261366260608301865161341a565b6020850151613674608084018261341a565b50604085015161368760a084018261341a565b50606085015161369a60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e088015192506101408381870152828901519350610160925083838701528189015193506101809150838287015280890151935050806101a08601525061370d6101e085018361346f565b8188015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0858203016101c0860152613748818461346f565b9150508560208501528381036040850152613763818661346f565b979650505050505050565b60006060825261378260608301865161341a565b6020850151613794608084018261341a565b5060408501516137a760a084018261341a565b5060608501516137ba60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e0880151925061014083818701528289015193506101609250838387015281890151935061018091508382870152808901519350506101c06101a0818188015261383061022088018661346f565b848b015195507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0945084888203018389015261386c818761346f565b925050828a0151945083878303016101e088015261388a828661346f565b9250808a0151945050508185820301610200860152613748818461346f565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156138df57600080fd5b604052919050565b600067ffffffffffffffff8211156138fd578081fd5b5060209081020190565b600067ffffffffffffffff82111561391d578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561396457818101518382015260200161394c565b838111156104e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146107b257600080fdfea365627a7a72315820efa457c9b812317d74459754abece7470f3cb0627eec998020620a2962c52b566c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x6080604052600436106100c75760003560e01c8063bc197c8111610074578063f23a6e611161004e578063f23a6e6114610202578063f2fde38b14610222578063fc67bf1c14610242576100c7565b8063bc197c81146101ab578063e0a5c949146101d8578063e196001b146101ed576100c7565b8063907e5cc3116100a5578063907e5cc314610164578063939ce6ba146101855780639e83231514610198576100c7565b8063442026ed146100f9578063630f1e6c146101195780638da5cb5b14610139575b60015473ffffffffffffffffffffffffffffffffffffffff1633146100f7576100f76100f233610257565b6102f6565b005b34801561010557600080fd5b506100f7610114366004613304565b6102fe565b34801561012557600080fd5b506100f7610134366004613344565b6104e8565b34801561014557600080fd5b5061014e61053e565b60405161015b91906134d5565b60405180910390f35b610177610172366004613106565b61055a565b60405161015b9291906138b2565b6101776101933660046131a2565b6105b5565b6101776101a63660046131a2565b61063b565b3480156101b757600080fd5b506101cb6101c6366004612fd1565b610671565b60405161015b91906135de565b3480156101e457600080fd5b506101cb61069e565b3480156101f957600080fd5b506101cb6106c2565b34801561020e57600080fd5b506101cb61021d36600461308c565b6106e6565b34801561022e57600080fd5b506100f761023d366004612f01565b610711565b34801561024e57600080fd5b506101cb6107b5565b60606308b1869860e01b8260405160240161027291906134d5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b600061034a600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6107d9169050565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082168114156104e2576003546040517f6070410800000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906360704108906103ee9085906004016135de565b60206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061043e9190810190612f1d565b905073ffffffffffffffffffffffffffffffffffffffff8116610466576104666100f261082f565b60006104b2601087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff610889169050565b90506104df81837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c9565b50505b50505050565b6104f061098a565b6105398184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6109d3169050565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600080600061056985856109e9565b9050610576878288610b3f565b909350915080831115610590576105906100f28434610d53565b6105a0818463ffffffff610df516565b90506105ab81610e14565b5094509492505050565b600080348611156105cd576105cd6100f28734610ecf565b60006105d985856109e9565b9050868110156105f0576105f06100f28289610d53565b6105fb888888610eec565b909350915086831015610615576106156100f28885610ecf565b610625818463ffffffff610df516565b905061063081610e14565b509550959350505050565b600080600061064a85856109e9565b905061065788888861100d565b909350915080831115610615576106156100f28434610d53565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f770501f80000000000000000000000000000000000000000000000000000000081565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61071961098a565b73ffffffffffffffffffffffffffffffffffffffff81166107445761073f6100f261139f565b6107b2565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b600081600401835110156107fa576107fa6100f260038551856004016113d6565b5060208183018101519101907fffffffff00000000000000000000000000000000000000000000000000000000165b92915050565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d0000000000000000000000000000000000000000000000000000000017905290565b600081601401835110156108aa576108aa6100f260048551856014016113d6565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907f095ea7b3000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506104e2848261147c565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109d1576000546109d1906100f290339073ffffffffffffffffffffffffffffffffffffffff16611534565b565b6109e58230338463ffffffff61155116565b5050565b81518151600091908114610a0557610a056100f282855161178c565b34915060005b818114610ab4576000858281518110610a2057fe5b6020026020010151905080841015610a3f57610a3f6100f282866117a9565b610a4f848263ffffffff610df516565b9350848281518110610a5d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610aaa573d6000803e3d6000fd5b5050600101610a0b565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b1f57600080fd5b505af1158015610b33573d6000803e3d6000fd5b50505050505092915050565b6000806000610bf4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ce4c78b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610baf57600080fd5b505afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610be791908101906133df565b3a9063ffffffff6117c616565b905060005b86518114610d4957868181518110610c0d57fe5b60200260200101516080015160001480610c3e5750868181518110610c2e57fe5b602002602001015160a001516000145b15610c4857610d41565b6000610c5a878663ffffffff610df516565b90506000610c7a898481518110610c6d57fe5b60200260200101516117f7565b610c845783610c87565b60005b905080821115610ca857610ca1828263ffffffff610df516565b9150610caf565b5050610d49565b610cb761297e565b610ce88a8581518110610cc657fe5b6020026020010151898681518110610cda57fe5b60200260200101518561186c565b60408101518151919250610d1391610d07908a9063ffffffff611bde16565b9063ffffffff611bde16565b9650610d2c816020015187611bde90919063ffffffff16565b9550888710610d3d57505050610d49565b5050505b600101610bf9565b5050935093915050565b606063cdcbed5d60e01b8383604051602401610d709291906138b2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600082821115610e0e57610e0e6100f260028585611bf6565b50900390565b80156107b2576001546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e709084906004016138a9565b600060405180830381600087803b158015610e8a57600080fd5b505af1158015610e9e573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156109e5573d6000803e3d6000fd5b606063450a021960e01b8383604051602401610d709291906138b2565b60008080805b86518114610ff157868181518110610f0657fe5b60200260200101516080015160001480610f375750868181518110610f2757fe5b602002602001015160a001516000145b15610f4157610fe9565b6000610f53878663ffffffff610df516565b9050610f5d61297e565b610f8e898481518110610f6c57fe5b6020026020010151888581518110610f8057fe5b60200260200101518461186c565b8051909150610fa490879063ffffffff611bde16565b9550610fbd816020015186611bde90919063ffffffff16565b9450610fd6816040015185611bde90919063ffffffff16565b9350878610610fe6575050610ff1565b50505b600101610ef2565b50611002838263ffffffff611bde16565b925050935093915050565b82516000908190815b8181146113805786818151811061102957fe5b6020026020010151608001516000148061105a575086818151811061104a57fe5b602002602001015160a001516000145b1561106457611378565b6000611076878563ffffffff610df516565b905060006110a660008a858151811061108b57fe5b602002602001015161014001516107d990919063ffffffff16565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f30000000000000000000000000000000000000000000000000000000014156111c95761112160108c878151811061110657fe5b6020026020010151610140015161088990919063ffffffff16565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906111769030906004016134d5565b60206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c691908101906133df565b90505b6000806111fd8d88815181106111db57fe5b60200260200101518c89815181106111ef57fe5b602002602001015188611c15565b90925090507fffffffff0000000000000000000000000000000000000000000000000000000085167fdc1600f3000000000000000000000000000000000000000000000000000000001415611310576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8616906370a08231906112a19030906004016134d5565b60206040518083038186803b1580156112b957600080fd5b505afa1580156112cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112f191908101906133df565b905061130c611306828663ffffffff610df516565b83611d4e565b9150505b61133b818e898151811061132057fe5b602002602001015161014001516109d390919063ffffffff16565b61134b8a8363ffffffff611bde16565b995061135d898263ffffffff611bde16565b98508b891061137157505050505050611380565b5050505050505b600101611016565b5084821015611396576113966100f28684611d65565b50935093915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060632800659560e01b8484846040516024016113f593929190613640565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b9392505050565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516114a591906134b9565b6000604051808303816000865af19150503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5091509150811561152b5780516114ff5750506109e5565b80516020141561152b576000611516826000611d82565b90508060011415611529575050506109e5565b505b6104e2816102f6565b6060631de45ad160e01b8383604051602401610d709291906134f6565b8061155b576104e2565b600061156d858263ffffffff6107d916565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b000000000000000000000000000000000000000000000000000000000148061160057507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b1561161c576116178585858563ffffffff611d8e16565b611785565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f02571792000000000000000000000000000000000000000000000000000000001415611678576116178585858563ffffffff611dd816565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156116d4576116178585858563ffffffff611ea716565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611730576116178585858563ffffffff611ffd16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a0000000000000000000000000000000000000000000000000000000014611785576117856100f282612091565b5050505050565b6060633ecb6ceb60e01b8383604051602401610d709291906138b2565b606063ecf40fd960e01b8383604051602401610d709291906138b2565b6000826117d557506000610829565b828202828482816117e257fe5b0414611475576114756100f260018686611bf6565b600060038261018001515111801561082957506101808201517f770501f8000000000000000000000000000000000000000000000000000000009061184390600063ffffffff6107d916565b7fffffffff00000000000000000000000000000000000000000000000000000000161492915050565b61187461297e565b61014084015160009061188d908263ffffffff6107d916565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f300000000000000000000000000000000000000000000000000000000141561199b576101408701516118f390601063ffffffff61088916565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906119489030906004016134d5565b60206040518083038186803b15801561196057600080fd5b505afa158015611974573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061199891908101906133df565b90505b60e087015115806119bb57506119bb876101a001518861014001516120ac565b15611a09576119c861299f565b6119d3888789612259565b6020810151865260808101516040870152606081015181519192506119fe919063ffffffff610df516565b602086015250611aa5565b611a1d876101a001518861016001516120ac565b15611a945760a087015160e0880151600091611a4a91611a4490829063ffffffff611bde16565b88612294565b9050611a5461299f565b611a5f89838a612259565b9050611a7c81606001518260200151611bde90919063ffffffff16565b86528051602087015260800151604086015250611aa5565b611aa56100f2886101a001516122ca565b7fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f3000000000000000000000000000000000000000000000000000000001415611bba576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190611b449030906004016134d5565b60206040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b9491908101906133df565b9050611bb3611ba9828463ffffffff610df516565b8660200151611d4e565b6020860152505b6020840151610140880151611bd49163ffffffff6109d316565b5050509392505050565b600082820183811015611475576114756100f2600086865b606063e946c1bb60e01b8484846040516024016113f59392919061361e565b6000808460e0015160001480611c3a5750611c3a856101a001518661016001516120ac565b15611c9c576000611c548660a00151876080015186612294565b9050611c5e61299f565b611c69878388612259565b9050611c8e8160800151610d0783606001518460200151611bde90919063ffffffff16565b90519093509150611d469050565b611cb0856101a001518661014001516120ac565b15611d35576000611ce08660a00151611cda8860e001518960800151610df590919063ffffffff16565b86612294565b9050611cea61299f565b611cf5878388612259565b9050611d1281608001518260200151611bde90919063ffffffff16565b60608201518251919550611d2c919063ffffffff610df516565b92505050611d46565b611d466100f2866101a001516122ca565b935093915050565b600081831015611d5e5781611475565b5090919050565b60606391353a0c60e01b8383604051602401610d709291906138b2565b600061147583836122e5565b6000611da185601063ffffffff61088916565b905073ffffffffffffffffffffffffffffffffffffffff8416301415611dcc5761161781848461230f565b61178581858585612347565b80600114611dec57611dec6100f28261240a565b6000611dff85601063ffffffff61088916565b90506000611e1486602463ffffffff611d8216565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd90611e6d90889088908690600401613587565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b50505050505050505050565b60006060806060611ec5600489518a6124259092919063ffffffff16565b806020019051611ed89190810190612f39565b9350935093509350600082519050606081604051908082528060200260200182016040528015611f12578160200160208202803883390190505b50905060005b828114611f6457611f4588868381518110611f2f57fe5b60200260200101516117c690919063ffffffff16565b828281518110611f5157fe5b6020908102919091010152600101611f18565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d690611fbf908c908c908a9087908a9060040161351d565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611fed573d6000803e3d6000fd5b5050505050505050505050505050565b60608061201760048751886124259092919063ffffffff16565b80602001905161202a9190810190613254565b8051919350915060005b8181146120875761207f83828151811061204a57fe5b6020026020010151888861207a88868151811061206357fe5b60200260200101518a6117c690919063ffffffff16565b611551565b600101612034565b5050505050505050565b6060637996a27160e01b8260405160240161027291906135de565b6000806120bf848263ffffffff6107d916565b905060006120d3848263ffffffff6107d916565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fdc1600f3000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000841682148061216b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b80156121c957507fffffffff0000000000000000000000000000000000000000000000000000000083811690831614806121c957507fffffffff00000000000000000000000000000000000000000000000000000000838116908216145b156122345760006121e188601063ffffffff61088916565b905060006121f688601063ffffffff61088916565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149650505050505050610829565b612244878763ffffffff6124a516565b945050505050610829565b5050505092915050565b61226161299f565b61226a846117f7565b156122815761227a8484846124ca565b9050611475565b61228c84848461271e565b949350505050565b600061228c836122be6122ae82600163ffffffff610df516565b610d07888763ffffffff6117c616565b9063ffffffff61288b16565b60606331360af160e01b82604051602401610272919061360b565b60008160200183511015612306576123066100f260058551856020016113d6565b50016020015190565b6040516060907fa9059cbb000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b6040516060907f23b872dd000000000000000000000000000000000000000000000000000000009061238190869086908690602401613587565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050611785858261147c565b606063baffa47460e01b8260405160240161027291906138a9565b60608183111561243e5761243e6100f2600085856113d6565b8351821115612457576124576100f260018487516113d6565b8282036040519080825280601f01601f191660200182016040528015612484576020820181803883390190505b509050611475612493826128b5565b8461249d876128b5565b0183516128bb565b6000815183511480156114755750508051602091820120825192909101919091201490565b6124d261299f565b6124da6129ce565b604051806101800160405280866000015173ffffffffffffffffffffffffffffffffffffffff168152602001866020015173ffffffffffffffffffffffffffffffffffffffff168152602001866040015173ffffffffffffffffffffffffffffffffffffffff168152602001866060015173ffffffffffffffffffffffffffffffffffffffff168152602001866080015181526020018660a001518152602001600081526020016000815260200186610100015181526020018661012001518152602001866101400151815260200186610160015181525090506060600073ffffffffffffffffffffffffffffffffffffffff1663b4be83d5905060e01b8286866040516024016125ed9392919061364e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600454915190925073ffffffffffffffffffffffffffffffffffffffff90911690600090606090839061269e9086906134b9565b6000604051808303816000865af19150503d80600081146126db576040519150601f19603f3d011682016040523d82523d6000602084013e6126e0565b606091505b509150915081156127125780516080146126f657fe5b8080602001905161270a91908101906133f7565b602088015286525b50505050509392505050565b61272661299f565b6040516060907f9b44d55600000000000000000000000000000000000000000000000000000000906127609087908790879060240161376e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600354915190925073ffffffffffffffffffffffffffffffffffffffff9091169060009060609083906128119086906134b9565b6000604051808303816000865af19150503d806000811461284e576040519150601f19603f3d011682016040523d82523d6000602084013e612853565b606091505b5091509150811561288057805160a01461286957fe5b8080602001905161287d919081019061338e565b94505b505050509392505050565b6000816128a1576128a16100f260038585611bf6565b60008284816128ac57fe5b04949350505050565b60200190565b60208110156128e5576001816020036101000a038019835116818551168082178652505050610539565b828214156128f257610539565b8282111561292c5760208103905080820181840181515b82851015612924578451865260209586019590940193612909565b905250610539565b60208103905080820181840183515b8186121561297557825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061293b565b85525050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806101800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b803561082981613975565b600082601f830112612aa2578081fd5b8135612ab5612ab0826138e7565b6138c0565b818152915060208083019084810181840286018201871015612ad657600080fd5b60005b84811015612afe578135612aec81613975565b84529282019290820190600101612ad9565b505050505092915050565b600082601f830112612b19578081fd5b8135612b27612ab0826138e7565b8181529150602080830190840160005b8381101561224f57612b4f8760208435890101612e66565b83526020928301929190910190600101612b37565b600082601f830112612b74578081fd5b8135612b82612ab0826138e7565b818152915060208083019084810160005b84811015612afe57813587016101c0807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838c03011215612bd357600080fd5b612bdc816138c0565b612be88b878501612a87565b8152612bf78b60408501612a87565b86820152612c088b60608501612a87565b6040820152612c1a8b60808501612a87565b606082015260a0830135608082015260c083013560a082015260e083013560c08201526101008084013560e0830152610120808501358284015261014091508185013581840152506101608085013567ffffffffffffffff80821115612c7f57600080fd5b612c8d8f8b848a0101612e66565b84860152610180935083870135915080821115612ca957600080fd5b612cb78f8b848a0101612e66565b838601526101a0925082870135915080821115612cd357600080fd5b612ce18f8b848a0101612e66565b8486015285870135935080841115612cf857600080fd5b5050612d088d8984880101612e66565b9083015250865250509282019290820190600101612b93565b60008083601f840112612d32578182fd5b50813567ffffffffffffffff811115612d49578182fd5b6020830191508360208083028501011115612d6357600080fd5b9250929050565b600082601f830112612d7a578081fd5b8151612d88612ab0826138e7565b818152915060208083019084810181840286018201871015612da957600080fd5b60005b84811015612afe57815184529282019290820190600101612dac565b600082601f830112612dd8578081fd5b8135612de6612ab0826138e7565b818152915060208083019084810181840286018201871015612e0757600080fd5b60005b84811015612afe57813584529282019290820190600101612e0a565b60008083601f840112612e37578182fd5b50813567ffffffffffffffff811115612e4e578182fd5b602083019150836020828501011115612d6357600080fd5b600082601f830112612e76578081fd5b8135612e84612ab082613907565b9150808252836020828501011115612e9b57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612ec4578081fd5b8151612ed2612ab082613907565b9150808252836020828501011115612ee957600080fd5b612efa816020840160208601613949565b5092915050565b600060208284031215612f12578081fd5b813561147581613975565b600060208284031215612f2e578081fd5b815161147581613975565b60008060008060808587031215612f4e578283fd5b8451612f5981613975565b602086015190945067ffffffffffffffff80821115612f76578485fd5b612f8288838901612d6a565b94506040870151915080821115612f97578384fd5b612fa388838901612d6a565b93506060870151915080821115612fb8578283fd5b50612fc587828801612eb4565b91505092959194509250565b60008060008060008060008060a0898b031215612fec578586fd5b8835612ff781613975565b9750602089013561300781613975565b9650604089013567ffffffffffffffff80821115613023578788fd5b61302f8c838d01612d21565b909850965060608b0135915080821115613047578586fd5b6130538c838d01612d21565b909650945060808b013591508082111561306b578384fd5b506130788b828c01612e26565b999c989b5096995094979396929594505050565b60008060008060008060a087890312156130a4578384fd5b86356130af81613975565b955060208701356130bf81613975565b94506040870135935060608701359250608087013567ffffffffffffffff8111156130e8578283fd5b6130f489828a01612e26565b979a9699509497509295939492505050565b6000806000806080858703121561311b578182fd5b843567ffffffffffffffff80821115613132578384fd5b61313e88838901612b64565b95506020870135915080821115613153578384fd5b61315f88838901612b09565b94506040870135915080821115613174578384fd5b61318088838901612dc8565b93506060870135915080821115613195578283fd5b50612fc587828801612a92565b600080600080600060a086880312156131b9578283fd5b853567ffffffffffffffff808211156131d0578485fd5b6131dc89838a01612b64565b96506020880135955060408801359150808211156131f8578485fd5b61320489838a01612b09565b94506060880135915080821115613219578283fd5b61322589838a01612dc8565b9350608088013591508082111561323a578283fd5b5061324788828901612a92565b9150509295509295909350565b60008060408385031215613266578182fd5b825167ffffffffffffffff8082111561327d578384fd5b61328986838701612d6a565b935060209150818501518181111561329f578384fd5b85019050601f810186136132b1578283fd5b80516132bf612ab0826138e7565b81815283810190838501865b848110156132f4576132e28b888451890101612eb4565b845292860192908601906001016132cb565b5096999098509650505050505050565b60008060208385031215613316578182fd5b823567ffffffffffffffff81111561332c578283fd5b61333885828601612e26565b90969095509350505050565b600080600060408486031215613358578081fd5b833567ffffffffffffffff81111561336e578182fd5b61337a86828701612e26565b909790965060209590950135949350505050565b600060a0828403121561339f578081fd5b6133a960a06138c0565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602082840312156133f0578081fd5b5051919050565b60008060408385031215613409578182fd5b505080516020909101519092909150565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613465578151865260209586019590910190600101613447565b5093949350505050565b60008151808452613487816020860160208601613949565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516134cb818460208701613949565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a0604083015261355660a0830186613434565b82810360608401526135688186613434565b838103608085015261357a818661346f565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b600060208252611475602083018461346f565b606081016004851061362c57fe5b938152602081019290925260409091015290565b606081016008851061362c57fe5b60006060825261366260608301865161341a565b6020850151613674608084018261341a565b50604085015161368760a084018261341a565b50606085015161369a60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e088015192506101408381870152828901519350610160925083838701528189015193506101809150838287015280890151935050806101a08601525061370d6101e085018361346f565b8188015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0858203016101c0860152613748818461346f565b9150508560208501528381036040850152613763818661346f565b979650505050505050565b60006060825261378260608301865161341a565b6020850151613794608084018261341a565b5060408501516137a760a084018261341a565b5060608501516137ba60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e0880151925061014083818701528289015193506101609250838387015281890151935061018091508382870152808901519350506101c06101a0818188015261383061022088018661346f565b848b015195507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0945084888203018389015261386c818761346f565b925050828a0151945083878303016101e088015261388a828661346f565b9250808a0151945050508185820301610200860152613748818461346f565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156138df57600080fd5b604052919050565b600067ffffffffffffffff8211156138fd578081fd5b5060209081020190565b600067ffffffffffffffff82111561391d578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561396457818101518382015260200161394c565b838111156104e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146107b257600080fdfea365627a7a7231582044b5b700e71da9b34ea681113c5c2d7dc51a60db3338ae1b4863b61744fd81b86c6578706572696d656e74616cf564736f6c63430005110040" + "object": "0x6080604052600436106100c75760003560e01c8063bc197c8111610074578063f23a6e611161004e578063f23a6e6114610202578063f2fde38b14610222578063fc67bf1c14610242576100c7565b8063bc197c81146101ab578063e0a5c949146101d8578063e196001b146101ed576100c7565b8063907e5cc3116100a5578063907e5cc314610164578063939ce6ba146101855780639e83231514610198576100c7565b8063442026ed146100f9578063630f1e6c146101195780638da5cb5b14610139575b60015473ffffffffffffffffffffffffffffffffffffffff1633146100f7576100f76100f233610257565b6102f6565b005b34801561010557600080fd5b506100f7610114366004613304565b6102fe565b34801561012557600080fd5b506100f7610134366004613344565b6104e8565b34801561014557600080fd5b5061014e61053e565b60405161015b91906134d5565b60405180910390f35b610177610172366004613106565b61055a565b60405161015b9291906138b2565b6101776101933660046131a2565b6105b5565b6101776101a63660046131a2565b61063b565b3480156101b757600080fd5b506101cb6101c6366004612fd1565b610671565b60405161015b91906135de565b3480156101e457600080fd5b506101cb61069e565b3480156101f957600080fd5b506101cb6106c2565b34801561020e57600080fd5b506101cb61021d36600461308c565b6106e6565b34801561022e57600080fd5b506100f761023d366004612f01565b610711565b34801561024e57600080fd5b506101cb6107b5565b60606308b1869860e01b8260405160240161027291906134d5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b805160208201fd5b600061034a600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6107d9169050565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082168114156104e2576003546040517f6070410800000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906360704108906103ee9085906004016135de565b60206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061043e9190810190612f1d565b905073ffffffffffffffffffffffffffffffffffffffff8116610466576104666100f261082f565b60006104b2601087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff610889169050565b90506104df81837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c9565b50505b50505050565b6104f061098a565b6105398184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505063ffffffff6109d3169050565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600080600061056985856109e9565b9050610576878288610b3f565b909350915080831115610590576105906100f28434610d53565b6105a0818463ffffffff610df516565b90506105ab81610e14565b5094509492505050565b600080348611156105cd576105cd6100f28734610ecf565b60006105d985856109e9565b9050868110156105f0576105f06100f28289610d53565b6105fb888888610eec565b909350915086831015610615576106156100f28885610ecf565b610625818463ffffffff610df516565b905061063081610e14565b509550959350505050565b600080600061064a85856109e9565b905061065788888861100d565b909350915080831115610615576106156100f28434610d53565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b7ff23a6e610000000000000000000000000000000000000000000000000000000081565b7f770501f80000000000000000000000000000000000000000000000000000000081565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61071961098a565b73ffffffffffffffffffffffffffffffffffffffff81166107445761073f6100f261139f565b6107b2565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35b50565b7fbc197c810000000000000000000000000000000000000000000000000000000081565b600081600401835110156107fa576107fa6100f260038551856004016113d6565b5060208183018101519101907fffffffff00000000000000000000000000000000000000000000000000000000165b92915050565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff3b96b8d0000000000000000000000000000000000000000000000000000000017905290565b600081601401835110156108aa576108aa6100f260048551856014016113d6565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b6040516060907f095ea7b3000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506104e2848261147c565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109d1576000546109d1906100f290339073ffffffffffffffffffffffffffffffffffffffff16611534565b565b6109e58230338463ffffffff61155116565b5050565b81518151600091908114610a0557610a056100f282855161178c565b34915060005b818114610ab4576000858281518110610a2057fe5b6020026020010151905080841015610a3f57610a3f6100f282866117a9565b610a4f848263ffffffff610df516565b9350848281518110610a5d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610aaa573d6000803e3d6000fd5b5050600101610a0b565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b1f57600080fd5b505af1158015610b33573d6000803e3d6000fd5b50505050505092915050565b6000806000610bf4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ce4c78b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610baf57600080fd5b505afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610be791908101906133df565b3a9063ffffffff6117c616565b905060005b86518114610d4957868181518110610c0d57fe5b60200260200101516080015160001480610c3e5750868181518110610c2e57fe5b602002602001015160a001516000145b15610c4857610d41565b6000610c5a878663ffffffff610df516565b90506000610c7a898481518110610c6d57fe5b60200260200101516117f7565b610c845783610c87565b60005b905080821115610ca857610ca1828263ffffffff610df516565b9150610caf565b5050610d49565b610cb761297e565b610ce88a8581518110610cc657fe5b6020026020010151898681518110610cda57fe5b60200260200101518561186c565b60408101518151919250610d1391610d07908a9063ffffffff611bde16565b9063ffffffff611bde16565b9650610d2c816020015187611bde90919063ffffffff16565b9550888710610d3d57505050610d49565b5050505b600101610bf9565b5050935093915050565b606063cdcbed5d60e01b8383604051602401610d709291906138b2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600082821115610e0e57610e0e6100f260028585611bf6565b50900390565b80156107b2576001546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e709084906004016138a9565b600060405180830381600087803b158015610e8a57600080fd5b505af1158015610e9e573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156109e5573d6000803e3d6000fd5b606063450a021960e01b8383604051602401610d709291906138b2565b60008080805b86518114610ff157868181518110610f0657fe5b60200260200101516080015160001480610f375750868181518110610f2757fe5b602002602001015160a001516000145b15610f4157610fe9565b6000610f53878663ffffffff610df516565b9050610f5d61297e565b610f8e898481518110610f6c57fe5b6020026020010151888581518110610f8057fe5b60200260200101518461186c565b8051909150610fa490879063ffffffff611bde16565b9550610fbd816020015186611bde90919063ffffffff16565b9450610fd6816040015185611bde90919063ffffffff16565b9350878610610fe6575050610ff1565b50505b600101610ef2565b50611002838263ffffffff611bde16565b925050935093915050565b82516000908190815b8181146113805786818151811061102957fe5b6020026020010151608001516000148061105a575086818151811061104a57fe5b602002602001015160a001516000145b1561106457611378565b6000611076878563ffffffff610df516565b905060006110a660008a858151811061108b57fe5b602002602001015161014001516107d990919063ffffffff16565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f30000000000000000000000000000000000000000000000000000000014156111c95761112160108c878151811061110657fe5b6020026020010151610140015161088990919063ffffffff16565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906111769030906004016134d5565b60206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c691908101906133df565b90505b6000806111fd8d88815181106111db57fe5b60200260200101518c89815181106111ef57fe5b602002602001015188611c15565b90925090507fffffffff0000000000000000000000000000000000000000000000000000000085167fdc1600f3000000000000000000000000000000000000000000000000000000001415611310576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8616906370a08231906112a19030906004016134d5565b60206040518083038186803b1580156112b957600080fd5b505afa1580156112cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112f191908101906133df565b905061130c611306828663ffffffff610df516565b83611d4e565b9150505b61133b818e898151811061132057fe5b602002602001015161014001516109d390919063ffffffff16565b61134b8a8363ffffffff611bde16565b995061135d898263ffffffff611bde16565b98508b891061137157505050505050611380565b5050505050505b600101611016565b5084821015611396576113966100f28684611d65565b50935093915050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b6060632800659560e01b8484846040516024016113f593929190613640565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b9392505050565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516114a591906134b9565b6000604051808303816000865af19150503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5091509150811561152b5780516114ff5750506109e5565b80516020141561152b576000611516826000611d82565b90508060011415611529575050506109e5565b505b6104e2816102f6565b6060631de45ad160e01b8383604051602401610d709291906134f6565b8061155b576104e2565b600061156d858263ffffffff6107d916565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167ff47261b000000000000000000000000000000000000000000000000000000000148061160057507fffffffff0000000000000000000000000000000000000000000000000000000081167fdc1600f300000000000000000000000000000000000000000000000000000000145b1561161c576116178585858563ffffffff611d8e16565b611785565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f02571792000000000000000000000000000000000000000000000000000000001415611678576116178585858563ffffffff611dd816565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156116d4576116178585858563ffffffff611ea716565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611730576116178585858563ffffffff611ffd16565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fc339d10a0000000000000000000000000000000000000000000000000000000014611785576117856100f282612091565b5050505050565b6060633ecb6ceb60e01b8383604051602401610d709291906138b2565b606063ecf40fd960e01b8383604051602401610d709291906138b2565b6000826117d557506000610829565b828202828482816117e257fe5b0414611475576114756100f260018686611bf6565b600060038261018001515111801561082957506101808201517f770501f8000000000000000000000000000000000000000000000000000000009061184390600063ffffffff6107d916565b7fffffffff00000000000000000000000000000000000000000000000000000000161492915050565b61187461297e565b61014084015160009061188d908263ffffffff6107d916565b90506000807fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f300000000000000000000000000000000000000000000000000000000141561199b576101408701516118f390601063ffffffff61088916565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906119489030906004016134d5565b60206040518083038186803b15801561196057600080fd5b505afa158015611974573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061199891908101906133df565b90505b60e087015115806119bb57506119bb876101a001518861014001516120ac565b15611a09576119c861299f565b6119d3888789612259565b6020810151865260808101516040870152606081015181519192506119fe919063ffffffff610df516565b602086015250611aa5565b611a1d876101a001518861016001516120ac565b15611a945760a087015160e0880151600091611a4a91611a4490829063ffffffff611bde16565b88612294565b9050611a5461299f565b611a5f89838a612259565b9050611a7c81606001518260200151611bde90919063ffffffff16565b86528051602087015260800151604086015250611aa5565b611aa56100f2886101a001516122ca565b7fffffffff0000000000000000000000000000000000000000000000000000000083167fdc1600f3000000000000000000000000000000000000000000000000000000001415611bba576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190611b449030906004016134d5565b60206040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b9491908101906133df565b9050611bb3611ba9828463ffffffff610df516565b8660200151611d4e565b6020860152505b6020840151610140880151611bd49163ffffffff6109d316565b5050509392505050565b600082820183811015611475576114756100f2600086865b606063e946c1bb60e01b8484846040516024016113f59392919061361e565b6000808460e0015160001480611c3a5750611c3a856101a001518661016001516120ac565b15611c9c576000611c548660a00151876080015186612294565b9050611c5e61299f565b611c69878388612259565b9050611c8e8160800151610d0783606001518460200151611bde90919063ffffffff16565b90519093509150611d469050565b611cb0856101a001518661014001516120ac565b15611d35576000611ce08660a00151611cda8860e001518960800151610df590919063ffffffff16565b86612294565b9050611cea61299f565b611cf5878388612259565b9050611d1281608001518260200151611bde90919063ffffffff16565b60608201518251919550611d2c919063ffffffff610df516565b92505050611d46565b611d466100f2866101a001516122ca565b935093915050565b600081831015611d5e5781611475565b5090919050565b60606391353a0c60e01b8383604051602401610d709291906138b2565b600061147583836122e5565b6000611da185601063ffffffff61088916565b905073ffffffffffffffffffffffffffffffffffffffff8416301415611dcc5761161781848461230f565b61178581858585612347565b80600114611dec57611dec6100f28261240a565b6000611dff85601063ffffffff61088916565b90506000611e1486602463ffffffff611d8216565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd90611e6d90889088908690600401613587565b600060405180830381600087803b158015611e8757600080fd5b505af1158015611e9b573d6000803e3d6000fd5b50505050505050505050565b60006060806060611ec5600489518a6124259092919063ffffffff16565b806020019051611ed89190810190612f39565b9350935093509350600082519050606081604051908082528060200260200182016040528015611f12578160200160208202803883390190505b50905060005b828114611f6457611f4588868381518110611f2f57fe5b60200260200101516117c690919063ffffffff16565b828281518110611f5157fe5b6020908102919091010152600101611f18565b506040517f2eb2c2d600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690632eb2c2d690611fbf908c908c908a9087908a9060040161351d565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611fed573d6000803e3d6000fd5b5050505050505050505050505050565b60608061201760048751886124259092919063ffffffff16565b80602001905161202a9190810190613254565b8051919350915060005b8181146120875761207f83828151811061204a57fe5b6020026020010151888861207a88868151811061206357fe5b60200260200101518a6117c690919063ffffffff16565b611551565b600101612034565b5050505050505050565b6060637996a27160e01b8260405160240161027291906135de565b6000806120bf848263ffffffff6107d916565b905060006120d3848263ffffffff6107d916565b90507ff47261b0000000000000000000000000000000000000000000000000000000007fdc1600f3000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000841682148061216b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b80156121c957507fffffffff0000000000000000000000000000000000000000000000000000000083811690831614806121c957507fffffffff00000000000000000000000000000000000000000000000000000000838116908216145b156122345760006121e188601063ffffffff61088916565b905060006121f688601063ffffffff61088916565b90508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149650505050505050610829565b612244878763ffffffff6124a516565b945050505050610829565b5050505092915050565b61226161299f565b61226a846117f7565b156122815761227a8484846124ca565b9050611475565b61228c84848461271e565b949350505050565b600061228c836122be6122ae82600163ffffffff610df516565b610d07888763ffffffff6117c616565b9063ffffffff61288b16565b60606331360af160e01b82604051602401610272919061360b565b60008160200183511015612306576123066100f260058551856020016113d6565b50016020015190565b6040516060907fa9059cbb000000000000000000000000000000000000000000000000000000009061090190859085906024016135b8565b6040516060907f23b872dd000000000000000000000000000000000000000000000000000000009061238190869086908690602401613587565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050611785858261147c565b606063baffa47460e01b8260405160240161027291906138a9565b60608183111561243e5761243e6100f2600085856113d6565b8351821115612457576124576100f260018487516113d6565b8282036040519080825280601f01601f191660200182016040528015612484576020820181803883390190505b509050611475612493826128b5565b8461249d876128b5565b0183516128bb565b6000815183511480156114755750508051602091820120825192909101919091201490565b6124d261299f565b6124da6129ce565b604051806101800160405280866000015173ffffffffffffffffffffffffffffffffffffffff168152602001866020015173ffffffffffffffffffffffffffffffffffffffff168152602001866040015173ffffffffffffffffffffffffffffffffffffffff168152602001866060015173ffffffffffffffffffffffffffffffffffffffff168152602001866080015181526020018660a001518152602001600081526020016000815260200186610100015181526020018661012001518152602001866101400151815260200186610160015181525090506060600073ffffffffffffffffffffffffffffffffffffffff1663b4be83d5905060e01b8286866040516024016125ed9392919061364e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600454915190925073ffffffffffffffffffffffffffffffffffffffff90911690600090606090839061269e9086906134b9565b6000604051808303816000865af19150503d80600081146126db576040519150601f19603f3d011682016040523d82523d6000602084013e6126e0565b606091505b509150915081156127125780516080146126f657fe5b8080602001905161270a91908101906133f7565b602088015286525b50505050509392505050565b61272661299f565b6040516060907f9b44d55600000000000000000000000000000000000000000000000000000000906127609087908790879060240161376e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252600354915190925073ffffffffffffffffffffffffffffffffffffffff9091169060009060609083906128119086906134b9565b6000604051808303816000865af19150503d806000811461284e576040519150601f19603f3d011682016040523d82523d6000602084013e612853565b606091505b5091509150811561288057805160a01461286957fe5b8080602001905161287d919081019061338e565b94505b505050509392505050565b6000816128a1576128a16100f260038585611bf6565b60008284816128ac57fe5b04949350505050565b60200190565b60208110156128e5576001816020036101000a038019835116818551168082178652505050610539565b828214156128f257610539565b8282111561292c5760208103905080820181840181515b82851015612924578451865260209586019590940193612909565b905250610539565b60208103905080820181840183515b8186121561297557825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061293b565b85525050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604051806101800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b803561082981613975565b600082601f830112612aa2578081fd5b8135612ab5612ab0826138e7565b6138c0565b818152915060208083019084810181840286018201871015612ad657600080fd5b60005b84811015612afe578135612aec81613975565b84529282019290820190600101612ad9565b505050505092915050565b600082601f830112612b19578081fd5b8135612b27612ab0826138e7565b8181529150602080830190840160005b8381101561224f57612b4f8760208435890101612e66565b83526020928301929190910190600101612b37565b600082601f830112612b74578081fd5b8135612b82612ab0826138e7565b818152915060208083019084810160005b84811015612afe57813587016101c0807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838c03011215612bd357600080fd5b612bdc816138c0565b612be88b878501612a87565b8152612bf78b60408501612a87565b86820152612c088b60608501612a87565b6040820152612c1a8b60808501612a87565b606082015260a0830135608082015260c083013560a082015260e083013560c08201526101008084013560e0830152610120808501358284015261014091508185013581840152506101608085013567ffffffffffffffff80821115612c7f57600080fd5b612c8d8f8b848a0101612e66565b84860152610180935083870135915080821115612ca957600080fd5b612cb78f8b848a0101612e66565b838601526101a0925082870135915080821115612cd357600080fd5b612ce18f8b848a0101612e66565b8486015285870135935080841115612cf857600080fd5b5050612d088d8984880101612e66565b9083015250865250509282019290820190600101612b93565b60008083601f840112612d32578182fd5b50813567ffffffffffffffff811115612d49578182fd5b6020830191508360208083028501011115612d6357600080fd5b9250929050565b600082601f830112612d7a578081fd5b8151612d88612ab0826138e7565b818152915060208083019084810181840286018201871015612da957600080fd5b60005b84811015612afe57815184529282019290820190600101612dac565b600082601f830112612dd8578081fd5b8135612de6612ab0826138e7565b818152915060208083019084810181840286018201871015612e0757600080fd5b60005b84811015612afe57813584529282019290820190600101612e0a565b60008083601f840112612e37578182fd5b50813567ffffffffffffffff811115612e4e578182fd5b602083019150836020828501011115612d6357600080fd5b600082601f830112612e76578081fd5b8135612e84612ab082613907565b9150808252836020828501011115612e9b57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612ec4578081fd5b8151612ed2612ab082613907565b9150808252836020828501011115612ee957600080fd5b612efa816020840160208601613949565b5092915050565b600060208284031215612f12578081fd5b813561147581613975565b600060208284031215612f2e578081fd5b815161147581613975565b60008060008060808587031215612f4e578283fd5b8451612f5981613975565b602086015190945067ffffffffffffffff80821115612f76578485fd5b612f8288838901612d6a565b94506040870151915080821115612f97578384fd5b612fa388838901612d6a565b93506060870151915080821115612fb8578283fd5b50612fc587828801612eb4565b91505092959194509250565b60008060008060008060008060a0898b031215612fec578586fd5b8835612ff781613975565b9750602089013561300781613975565b9650604089013567ffffffffffffffff80821115613023578788fd5b61302f8c838d01612d21565b909850965060608b0135915080821115613047578586fd5b6130538c838d01612d21565b909650945060808b013591508082111561306b578384fd5b506130788b828c01612e26565b999c989b5096995094979396929594505050565b60008060008060008060a087890312156130a4578384fd5b86356130af81613975565b955060208701356130bf81613975565b94506040870135935060608701359250608087013567ffffffffffffffff8111156130e8578283fd5b6130f489828a01612e26565b979a9699509497509295939492505050565b6000806000806080858703121561311b578182fd5b843567ffffffffffffffff80821115613132578384fd5b61313e88838901612b64565b95506020870135915080821115613153578384fd5b61315f88838901612b09565b94506040870135915080821115613174578384fd5b61318088838901612dc8565b93506060870135915080821115613195578283fd5b50612fc587828801612a92565b600080600080600060a086880312156131b9578283fd5b853567ffffffffffffffff808211156131d0578485fd5b6131dc89838a01612b64565b96506020880135955060408801359150808211156131f8578485fd5b61320489838a01612b09565b94506060880135915080821115613219578283fd5b61322589838a01612dc8565b9350608088013591508082111561323a578283fd5b5061324788828901612a92565b9150509295509295909350565b60008060408385031215613266578182fd5b825167ffffffffffffffff8082111561327d578384fd5b61328986838701612d6a565b935060209150818501518181111561329f578384fd5b85019050601f810186136132b1578283fd5b80516132bf612ab0826138e7565b81815283810190838501865b848110156132f4576132e28b888451890101612eb4565b845292860192908601906001016132cb565b5096999098509650505050505050565b60008060208385031215613316578182fd5b823567ffffffffffffffff81111561332c578283fd5b61333885828601612e26565b90969095509350505050565b600080600060408486031215613358578081fd5b833567ffffffffffffffff81111561336e578182fd5b61337a86828701612e26565b909790965060209590950135949350505050565b600060a0828403121561339f578081fd5b6133a960a06138c0565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602082840312156133f0578081fd5b5051919050565b60008060408385031215613409578182fd5b505080516020909101519092909150565b73ffffffffffffffffffffffffffffffffffffffff169052565b6000815180845260208401935060208301825b82811015613465578151865260209586019590910190600101613447565b5093949350505050565b60008151808452613487816020860160208601613949565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516134cb818460208701613949565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a0604083015261355660a0830186613434565b82810360608401526135688186613434565b838103608085015261357a818661346f565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b600060208252611475602083018461346f565b606081016004851061362c57fe5b938152602081019290925260409091015290565b606081016008851061362c57fe5b60006060825261366260608301865161341a565b6020850151613674608084018261341a565b50604085015161368760a084018261341a565b50606085015161369a60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e088015192506101408381870152828901519350610160925083838701528189015193506101809150838287015280890151935050806101a08601525061370d6101e085018361346f565b8188015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0858203016101c0860152613748818461346f565b9150508560208501528381036040850152613763818661346f565b979650505050505050565b60006060825261378260608301865161341a565b6020850151613794608084018261341a565b5060408501516137a760a084018261341a565b5060608501516137ba60c084018261341a565b50608085015160e083015260a0850151610100818185015260c08701519150610120828186015260e0880151925061014083818701528289015193506101609250838387015281890151935061018091508382870152808901519350506101c06101a0818188015261383061022088018661346f565b848b015195507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0945084888203018389015261386c818761346f565b925050828a0151945083878303016101e088015261388a828661346f565b9250808a0151945050508185820301610200860152613748818461346f565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156138df57600080fd5b604052919050565b600067ffffffffffffffff8211156138fd578081fd5b5060209081020190565b600067ffffffffffffffff82111561391d578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561396457818101518382015260200161394c565b838111156104e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146107b257600080fdfea365627a7a72315820efa457c9b812317d74459754abece7470f3cb0627eec998020620a2962c52b566c6578706572696d656e74616cf564736f6c63430005110040" } } }, diff --git a/packages/contract-artifacts/artifacts/GodsUnchainedValidator.json b/packages/contract-artifacts/artifacts/GodsUnchainedValidator.json index 60eca2282a..cf5eadcad7 100644 --- a/packages/contract-artifacts/artifacts/GodsUnchainedValidator.json +++ b/packages/contract-artifacts/artifacts/GodsUnchainedValidator.json @@ -35,16 +35,16 @@ }, "evm": { "bytecode": { - "object": "0x608060405234801561001057600080fd5b5060405161042b38038061042b83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b61039a806100916000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639256050a14610030575b600080fd5b61004361003e3660046101fd565b610045565b005b60008061005483850185610197565b600080546040517fb93a89f700000000000000000000000000000000000000000000000000000000815293955091935091829173ffffffffffffffffffffffffffffffffffffffff169063b93a89f7906100b2908a9060040161032c565b604080518083038186803b1580156100c957600080fd5b505afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061010191908101906101cf565b915091508361ffff168261ffff161461014f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610146906102cf565b60405180910390fd5b8260ff168160ff161461018e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690610272565b50505050505050565b600080604083850312156101a9578182fd5b82356101b481610335565b915060208301356101c481610348565b809150509250929050565b600080604083850312156101e1578182fd5b82516101ec81610335565b60208401519092506101c481610348565b600080600060408486031215610211578081fd5b83359250602084013567ffffffffffffffff8082111561022f578283fd5b81860187601f820112610240578384fd5b8035925081831115610250578384fd5b876020848301011115610261578384fd5b949760209095019650909450505050565b60208082526027908201527f476f6473556e636861696e656456616c696461746f722f5155414c4954595f4d60408201527f49534d4154434800000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f476f6473556e636861696e656456616c696461746f722f50524f544f5f4d495360408201527f4d41544348000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b61ffff8116811461034557600080fd5b50565b60ff8116811461034557600080fdfea365627a7a723158203028b97b542e7c9694b2dfadb335cd83bec3bff6276b5f2cdb1d7c1abed796e46c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x608060405234801561001057600080fd5b5060405161042b38038061042b83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b61039a806100916000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639256050a14610030575b600080fd5b61004361003e3660046101fd565b610045565b005b60008061005483850185610197565b600080546040517fb93a89f700000000000000000000000000000000000000000000000000000000815293955091935091829173ffffffffffffffffffffffffffffffffffffffff169063b93a89f7906100b2908a9060040161032c565b604080518083038186803b1580156100c957600080fd5b505afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061010191908101906101cf565b915091508361ffff168261ffff161461014f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610146906102cf565b60405180910390fd5b8260ff168160ff161461018e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690610272565b50505050505050565b600080604083850312156101a9578182fd5b82356101b481610335565b915060208301356101c481610348565b809150509250929050565b600080604083850312156101e1578182fd5b82516101ec81610335565b60208401519092506101c481610348565b600080600060408486031215610211578081fd5b83359250602084013567ffffffffffffffff8082111561022f578283fd5b81860187601f820112610240578384fd5b8035925081831115610250578384fd5b876020848301011115610261578384fd5b949760209095019650909450505050565b60208082526027908201527f476f6473556e636861696e656456616c696461746f722f5155414c4954595f4d60408201527f49534d4154434800000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f476f6473556e636861696e656456616c696461746f722f50524f544f5f4d495360408201527f4d41544348000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b61ffff8116811461034557600080fd5b50565b60ff8116811461034557600080fdfea365627a7a723158202821782e13a836dcbb710cbd9e62c24ec15b337cdce6d8201315aaf776f1ecd66c6578706572696d656e74616cf564736f6c63430005110040" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639256050a14610030575b600080fd5b61004361003e3660046101fd565b610045565b005b60008061005483850185610197565b600080546040517fb93a89f700000000000000000000000000000000000000000000000000000000815293955091935091829173ffffffffffffffffffffffffffffffffffffffff169063b93a89f7906100b2908a9060040161032c565b604080518083038186803b1580156100c957600080fd5b505afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061010191908101906101cf565b915091508361ffff168261ffff161461014f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610146906102cf565b60405180910390fd5b8260ff168160ff161461018e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690610272565b50505050505050565b600080604083850312156101a9578182fd5b82356101b481610335565b915060208301356101c481610348565b809150509250929050565b600080604083850312156101e1578182fd5b82516101ec81610335565b60208401519092506101c481610348565b600080600060408486031215610211578081fd5b83359250602084013567ffffffffffffffff8082111561022f578283fd5b81860187601f820112610240578384fd5b8035925081831115610250578384fd5b876020848301011115610261578384fd5b949760209095019650909450505050565b60208082526027908201527f476f6473556e636861696e656456616c696461746f722f5155414c4954595f4d60408201527f49534d4154434800000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f476f6473556e636861696e656456616c696461746f722f50524f544f5f4d495360408201527f4d41544348000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b61ffff8116811461034557600080fd5b50565b60ff8116811461034557600080fdfea365627a7a723158203028b97b542e7c9694b2dfadb335cd83bec3bff6276b5f2cdb1d7c1abed796e46c6578706572696d656e74616cf564736f6c63430005100040" + "object": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639256050a14610030575b600080fd5b61004361003e3660046101fd565b610045565b005b60008061005483850185610197565b600080546040517fb93a89f700000000000000000000000000000000000000000000000000000000815293955091935091829173ffffffffffffffffffffffffffffffffffffffff169063b93a89f7906100b2908a9060040161032c565b604080518083038186803b1580156100c957600080fd5b505afa1580156100dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061010191908101906101cf565b915091508361ffff168261ffff161461014f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610146906102cf565b60405180910390fd5b8260ff168160ff161461018e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690610272565b50505050505050565b600080604083850312156101a9578182fd5b82356101b481610335565b915060208301356101c481610348565b809150509250929050565b600080604083850312156101e1578182fd5b82516101ec81610335565b60208401519092506101c481610348565b600080600060408486031215610211578081fd5b83359250602084013567ffffffffffffffff8082111561022f578283fd5b81860187601f820112610240578384fd5b8035925081831115610250578384fd5b876020848301011115610261578384fd5b949760209095019650909450505050565b60208082526027908201527f476f6473556e636861696e656456616c696461746f722f5155414c4954595f4d60408201527f49534d4154434800000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f476f6473556e636861696e656456616c696461746f722f50524f544f5f4d495360408201527f4d41544348000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b61ffff8116811461034557600080fd5b50565b60ff8116811461034557600080fdfea365627a7a723158202821782e13a836dcbb710cbd9e62c24ec15b337cdce6d8201315aaf776f1ecd66c6578706572696d656e74616cf564736f6c63430005110040" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/IAssetProxy.json b/packages/contract-artifacts/artifacts/IAssetProxy.json index d76a1f066d..71d269d6de 100644 --- a/packages/contract-artifacts/artifacts/IAssetProxy.json +++ b/packages/contract-artifacts/artifacts/IAssetProxy.json @@ -48,7 +48,7 @@ }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ITransformERC20.json b/packages/contract-artifacts/artifacts/ITransformERC20.json index 877edab6c4..204065ffde 100644 --- a/packages/contract-artifacts/artifacts/ITransformERC20.json +++ b/packages/contract-artifacts/artifacts/ITransformERC20.json @@ -3,6 +3,12 @@ "contractName": "ITransformERC20", "compilerOutput": { "abi": [ + { + "anonymous": false, + "inputs": [{ "indexed": false, "internalType": "address", "name": "quoteSigner", "type": "address" }], + "name": "QuoteSignerUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -25,20 +31,28 @@ }, { "inputs": [ - { "internalType": "bytes32", "name": "callDataHash", "type": "bytes32" }, - { "internalType": "address payable", "name": "taker", "type": "address" }, - { "internalType": "contract IERC20TokenV06", "name": "inputToken", "type": "address" }, - { "internalType": "contract IERC20TokenV06", "name": "outputToken", "type": "address" }, - { "internalType": "uint256", "name": "inputTokenAmount", "type": "uint256" }, - { "internalType": "uint256", "name": "minOutputTokenAmount", "type": "uint256" }, { "components": [ - { "internalType": "uint32", "name": "deploymentNonce", "type": "uint32" }, - { "internalType": "bytes", "name": "data", "type": "bytes" } + { "internalType": "address payable", "name": "taker", "type": "address" }, + { "internalType": "contract IERC20TokenV06", "name": "inputToken", "type": "address" }, + { "internalType": "contract IERC20TokenV06", "name": "outputToken", "type": "address" }, + { "internalType": "uint256", "name": "inputTokenAmount", "type": "uint256" }, + { "internalType": "uint256", "name": "minOutputTokenAmount", "type": "uint256" }, + { + "components": [ + { "internalType": "uint32", "name": "deploymentNonce", "type": "uint32" }, + { "internalType": "bytes", "name": "data", "type": "bytes" } + ], + "internalType": "struct ITransformERC20.Transformation[]", + "name": "transformations", + "type": "tuple[]" + }, + { "internalType": "bytes32", "name": "callDataHash", "type": "bytes32" }, + { "internalType": "bytes", "name": "callDataSignature", "type": "bytes" } ], - "internalType": "struct ITransformERC20.Transformation[]", - "name": "transformations", - "type": "tuple[]" + "internalType": "struct ITransformERC20.TransformERC20Args", + "name": "args", + "type": "tuple" } ], "name": "_transformERC20", @@ -53,6 +67,13 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "getQuoteSigner", + "outputs": [{ "internalType": "address", "name": "signer", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "getTransformWallet", @@ -67,6 +88,13 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [{ "internalType": "address", "name": "quoteSigner", "type": "address" }], + "name": "setQuoteSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [{ "internalType": "address", "name": "transformerDeployer", "type": "address" }], "name": "setTransformerDeployer", @@ -98,24 +126,41 @@ ], "devdoc": { "details": "Feature to composably transform between ERC20 tokens.", - "methods": { - "_transformERC20(bytes32,address,address,address,uint256,uint256,(uint32,bytes)[])": { - "details": "Internal version of `transformERC20()`. Only callable from within.", + "events": { + "QuoteSignerUpdated(address)": { + "details": "Raised when `setQuoteSigner()` is called.", + "params": { "quoteSigner": "The new quote signer." } + }, + "TransformedERC20(address,address,address,uint256,uint256)": { + "details": "Raised upon a successful `transformERC20`.", "params": { - "callDataHash": "Hash of the ingress calldata.", "inputToken": "The token being provided by the taker. If `0xeee...`, ETH is implied and should be provided with the call.`", "inputTokenAmount": "The amount of `inputToken` to take from the taker.", - "minOutputTokenAmount": "The minimum amount of `outputToken` the taker must receive for the entire transformation to succeed.", "outputToken": "The token to be acquired by the taker. `0xeee...` implies ETH.", - "taker": "The taker address.", - "transformations": "The transformations to execute on the token balance(s) in sequence." - }, + "outputTokenAmount": "The amount of `outputToken` received by the taker.", + "taker": "The taker (caller) address." + } + }, + "TransformerDeployerUpdated(address)": { + "details": "Raised when `setTransformerDeployer()` is called.", + "params": { "transformerDeployer": "The new deployer address." } + } + }, + "kind": "dev", + "methods": { + "_transformERC20((address,address,address,uint256,uint256,(uint32,bytes)[],bytes32,bytes))": { + "details": "Internal version of `transformERC20()`. Only callable from within.", + "params": { "args": "A `TransformERC20Args` struct." }, "returns": { "outputTokenAmount": "The amount of `outputToken` received by the taker." } }, "createTransformWallet()": { - "details": "Deploy a new flash wallet instance and replace the current one with it. Useful if we somehow break the current wallet instance. Anyone can call this.", + "details": "Deploy a new flash wallet instance and replace the current one with it. Useful if we somehow break the current wallet instance. Only callable by the owner.", "returns": { "wallet": "The new wallet instance." } }, + "getQuoteSigner()": { + "details": "Return the optional signer for `transformERC20()` calldata.", + "returns": { "signer": "The transform deployer address." } + }, "getTransformWallet()": { "details": "Return the current wallet instance that will serve as the execution context for transformations.", "returns": { "wallet": "The wallet instance." } @@ -124,9 +169,15 @@ "details": "Return the allowed deployer for transformers.", "returns": { "deployer": "The transform deployer address." } }, + "setQuoteSigner(address)": { + "details": "Replace the optional signer for `transformERC20()` calldata. Only callable by the owner.", + "params": { "quoteSigner": "The address of the new calldata signer." } + }, "setTransformerDeployer(address)": { "details": "Replace the allowed deployer for transformers. Only callable by the owner.", - "params": { "transformerDeployer": "The address of the trusted deployer for transformers." } + "params": { + "transformerDeployer": "The address of the new trusted deployer for transformers." + } }, "transformERC20(address,address,uint256,uint256,(uint32,bytes)[])": { "details": "Executes a series of transformations to convert an ERC20 `inputToken` to an ERC20 `outputToken`.", @@ -139,13 +190,14 @@ }, "returns": { "outputTokenAmount": "The amount of `outputToken` received by the sender." } } - } + }, + "version": 1 }, "evm": { "bytecode": { "object": "0x" }, "deployedBytecode": { "immutableReferences": {}, "object": "0x" } } }, "compiler": { "name": "solc", - "version": "0.6.9+commit.3e3065ac", + "version": "0.6.12+commit.27d51765", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/IWallet.json b/packages/contract-artifacts/artifacts/IWallet.json index 200bae941b..27065999cc 100644 --- a/packages/contract-artifacts/artifacts/IWallet.json +++ b/packages/contract-artifacts/artifacts/IWallet.json @@ -29,7 +29,7 @@ }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/IZeroEx.json b/packages/contract-artifacts/artifacts/IZeroEx.json new file mode 100644 index 0000000000..ca2d796526 --- /dev/null +++ b/packages/contract-artifacts/artifacts/IZeroEx.json @@ -0,0 +1,618 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "IZeroEx", + "compilerOutput": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "bytes32", "name": "hash", "type": "bytes32" }, + { "indexed": true, "internalType": "bytes4", "name": "selector", "type": "bytes4" }, + { "indexed": false, "internalType": "address", "name": "signer", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "sender", "type": "address" } + ], + "name": "MetaTransactionExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "address", "name": "caller", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "migrator", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } + ], + "name": "Migrated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, + { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "bytes4", "name": "selector", "type": "bytes4" }, + { "indexed": false, "internalType": "address", "name": "oldImpl", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "newImpl", "type": "address" } + ], + "name": "ProxyFunctionUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "internalType": "address", "name": "quoteSigner", "type": "address" }], + "name": "QuoteSignerUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": true, "internalType": "address", "name": "taker", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "inputToken", "type": "address" }, + { "indexed": false, "internalType": "address", "name": "outputToken", "type": "address" }, + { "indexed": false, "internalType": "uint256", "name": "inputTokenAmount", "type": "uint256" }, + { "indexed": false, "internalType": "uint256", "name": "outputTokenAmount", "type": "uint256" } + ], + "name": "TransformedERC20", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "internalType": "address", "name": "transformerDeployer", "type": "address" } + ], + "name": "TransformerDeployerUpdated", + "type": "event" + }, + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" }, + { + "components": [ + { "internalType": "address payable", "name": "signer", "type": "address" }, + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "minGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "maxGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "expirationTimeSeconds", "type": "uint256" }, + { "internalType": "uint256", "name": "salt", "type": "uint256" }, + { "internalType": "bytes", "name": "callData", "type": "bytes" }, + { "internalType": "uint256", "name": "value", "type": "uint256" }, + { "internalType": "contract IERC20TokenV06", "name": "feeToken", "type": "address" }, + { "internalType": "uint256", "name": "feeAmount", "type": "uint256" } + ], + "internalType": "struct IMetaTransactions.MetaTransactionData", + "name": "mtx", + "type": "tuple" + }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "name": "_executeMetaTransaction", + "outputs": [{ "internalType": "bytes", "name": "returnResult", "type": "bytes" }], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "contract IERC20TokenV06", "name": "token", "type": "address" }, + { "internalType": "address", "name": "owner", "type": "address" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "amount", "type": "uint256" } + ], + "name": "_spendERC20Tokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { "internalType": "address payable", "name": "taker", "type": "address" }, + { "internalType": "contract IERC20TokenV06", "name": "inputToken", "type": "address" }, + { "internalType": "contract IERC20TokenV06", "name": "outputToken", "type": "address" }, + { "internalType": "uint256", "name": "inputTokenAmount", "type": "uint256" }, + { "internalType": "uint256", "name": "minOutputTokenAmount", "type": "uint256" }, + { + "components": [ + { "internalType": "uint32", "name": "deploymentNonce", "type": "uint32" }, + { "internalType": "bytes", "name": "data", "type": "bytes" } + ], + "internalType": "struct ITransformERC20.Transformation[]", + "name": "transformations", + "type": "tuple[]" + }, + { "internalType": "bytes32", "name": "callDataHash", "type": "bytes32" }, + { "internalType": "bytes", "name": "callDataSignature", "type": "bytes" } + ], + "internalType": "struct ITransformERC20.TransformERC20Args", + "name": "args", + "type": "tuple" + } + ], + "name": "_transformERC20", + "outputs": [{ "internalType": "uint256", "name": "outputTokenAmount", "type": "uint256" }], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { "internalType": "address payable", "name": "signer", "type": "address" }, + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "minGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "maxGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "expirationTimeSeconds", "type": "uint256" }, + { "internalType": "uint256", "name": "salt", "type": "uint256" }, + { "internalType": "bytes", "name": "callData", "type": "bytes" }, + { "internalType": "uint256", "name": "value", "type": "uint256" }, + { "internalType": "contract IERC20TokenV06", "name": "feeToken", "type": "address" }, + { "internalType": "uint256", "name": "feeAmount", "type": "uint256" } + ], + "internalType": "struct IMetaTransactions.MetaTransactionData[]", + "name": "mtxs", + "type": "tuple[]" + }, + { "internalType": "bytes[]", "name": "signatures", "type": "bytes[]" } + ], + "name": "batchExecuteMetaTransactions", + "outputs": [{ "internalType": "bytes[]", "name": "returnResults", "type": "bytes[]" }], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "createTransformWallet", + "outputs": [{ "internalType": "contract IFlashWallet", "name": "wallet", "type": "address" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { "internalType": "address payable", "name": "signer", "type": "address" }, + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "minGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "maxGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "expirationTimeSeconds", "type": "uint256" }, + { "internalType": "uint256", "name": "salt", "type": "uint256" }, + { "internalType": "bytes", "name": "callData", "type": "bytes" }, + { "internalType": "uint256", "name": "value", "type": "uint256" }, + { "internalType": "contract IERC20TokenV06", "name": "feeToken", "type": "address" }, + { "internalType": "uint256", "name": "feeAmount", "type": "uint256" } + ], + "internalType": "struct IMetaTransactions.MetaTransactionData", + "name": "mtx", + "type": "tuple" + }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "name": "executeMetaTransaction", + "outputs": [{ "internalType": "bytes", "name": "returnResult", "type": "bytes" }], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes4", "name": "selector", "type": "bytes4" }, + { "internalType": "address", "name": "impl", "type": "address" } + ], + "name": "extend", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getAllowanceTarget", + "outputs": [{ "internalType": "address", "name": "target", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes4", "name": "selector", "type": "bytes4" }], + "name": "getFunctionImplementation", + "outputs": [{ "internalType": "address", "name": "impl", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { "internalType": "address payable", "name": "signer", "type": "address" }, + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "minGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "maxGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "expirationTimeSeconds", "type": "uint256" }, + { "internalType": "uint256", "name": "salt", "type": "uint256" }, + { "internalType": "bytes", "name": "callData", "type": "bytes" }, + { "internalType": "uint256", "name": "value", "type": "uint256" }, + { "internalType": "contract IERC20TokenV06", "name": "feeToken", "type": "address" }, + { "internalType": "uint256", "name": "feeAmount", "type": "uint256" } + ], + "internalType": "struct IMetaTransactions.MetaTransactionData", + "name": "mtx", + "type": "tuple" + } + ], + "name": "getMetaTransactionExecutedBlock", + "outputs": [{ "internalType": "uint256", "name": "blockNumber", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { "internalType": "address payable", "name": "signer", "type": "address" }, + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "minGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "maxGasPrice", "type": "uint256" }, + { "internalType": "uint256", "name": "expirationTimeSeconds", "type": "uint256" }, + { "internalType": "uint256", "name": "salt", "type": "uint256" }, + { "internalType": "bytes", "name": "callData", "type": "bytes" }, + { "internalType": "uint256", "name": "value", "type": "uint256" }, + { "internalType": "contract IERC20TokenV06", "name": "feeToken", "type": "address" }, + { "internalType": "uint256", "name": "feeAmount", "type": "uint256" } + ], + "internalType": "struct IMetaTransactions.MetaTransactionData", + "name": "mtx", + "type": "tuple" + } + ], + "name": "getMetaTransactionHash", + "outputs": [{ "internalType": "bytes32", "name": "mtxHash", "type": "bytes32" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes32", "name": "mtxHash", "type": "bytes32" }], + "name": "getMetaTransactionHashExecutedBlock", + "outputs": [{ "internalType": "uint256", "name": "blockNumber", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getQuoteSigner", + "outputs": [{ "internalType": "address", "name": "signer", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes4", "name": "selector", "type": "bytes4" }, + { "internalType": "uint256", "name": "idx", "type": "uint256" } + ], + "name": "getRollbackEntryAtIndex", + "outputs": [{ "internalType": "address", "name": "impl", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes4", "name": "selector", "type": "bytes4" }], + "name": "getRollbackLength", + "outputs": [{ "internalType": "uint256", "name": "rollbackLength", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "contract IERC20TokenV06", "name": "token", "type": "address" }, + { "internalType": "address", "name": "owner", "type": "address" } + ], + "name": "getSpendableERC20BalanceOf", + "outputs": [{ "internalType": "uint256", "name": "amount", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTransformWallet", + "outputs": [{ "internalType": "contract IFlashWallet", "name": "wallet", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTransformerDeployer", + "outputs": [{ "internalType": "address", "name": "deployer", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, + { "internalType": "address", "name": "signer", "type": "address" }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "name": "isValidHashSignature", + "outputs": [{ "internalType": "bool", "name": "isValid", "type": "bool" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", "name": "target", "type": "address" }, + { "internalType": "bytes", "name": "data", "type": "bytes" }, + { "internalType": "address", "name": "newOwner", "type": "address" } + ], + "name": "migrate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [{ "internalType": "address", "name": "ownerAddress", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes4", "name": "selector", "type": "bytes4" }, + { "internalType": "address", "name": "targetImpl", "type": "address" } + ], + "name": "rollback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "quoteSigner", "type": "address" }], + "name": "setQuoteSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "transformerDeployer", "type": "address" }], + "name": "setTransformerDeployer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "contract IERC20TokenV06", "name": "inputToken", "type": "address" }, + { "internalType": "contract IERC20TokenV06", "name": "outputToken", "type": "address" }, + { "internalType": "uint256", "name": "inputTokenAmount", "type": "uint256" }, + { "internalType": "uint256", "name": "minOutputTokenAmount", "type": "uint256" }, + { + "components": [ + { "internalType": "uint32", "name": "deploymentNonce", "type": "uint32" }, + { "internalType": "bytes", "name": "data", "type": "bytes" } + ], + "internalType": "struct ITransformERC20.Transformation[]", + "name": "transformations", + "type": "tuple[]" + } + ], + "name": "transformERC20", + "outputs": [{ "internalType": "uint256", "name": "outputTokenAmount", "type": "uint256" }], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, + { "internalType": "address", "name": "signer", "type": "address" }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "name": "validateHashSignature", + "outputs": [], + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "details": "Interface for a fully featured Exchange Proxy.", + "kind": "dev", + "methods": { + "_executeMetaTransaction(address,(address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256),bytes)": { + "details": "Execute a meta-transaction via `sender`. Privileged variant. Only callable from within.", + "params": { + "mtx": "The meta-transaction.", + "sender": "Who is executing the meta-transaction..", + "signature": "The signature by `mtx.signer`." + }, + "returns": { "returnResult": "The ABI-encoded result of the underlying call." } + }, + "_spendERC20Tokens(address,address,address,uint256)": { + "details": "Transfers ERC20 tokens from `owner` to `to`. Only callable from within.", + "params": { + "amount": "The amount of `token` to transfer.", + "owner": "The owner of the tokens.", + "to": "The recipient of the tokens.", + "token": "The token to spend." + } + }, + "_transformERC20((address,address,address,uint256,uint256,(uint32,bytes)[],bytes32,bytes))": { + "details": "Internal version of `transformERC20()`. Only callable from within.", + "params": { "args": "A `TransformERC20Args` struct." }, + "returns": { "outputTokenAmount": "The amount of `outputToken` received by the taker." } + }, + "batchExecuteMetaTransactions((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256)[],bytes[])": { + "details": "Execute multiple meta-transactions.", + "params": { + "mtxs": "The meta-transactions.", + "signatures": "The signature by each respective `mtx.signer`." + }, + "returns": { "returnResults": "The ABI-encoded results of the underlying calls." } + }, + "createTransformWallet()": { + "details": "Deploy a new flash wallet instance and replace the current one with it. Useful if we somehow break the current wallet instance. Only callable by the owner.", + "returns": { "wallet": "The new wallet instance." } + }, + "executeMetaTransaction((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256),bytes)": { + "details": "Execute a single meta-transaction.", + "params": { "mtx": "The meta-transaction.", "signature": "The signature by `mtx.signer`." }, + "returns": { "returnResult": "The ABI-encoded result of the underlying call." } + }, + "extend(bytes4,address)": { + "details": "Register or replace a function.", + "params": { + "impl": "The implementation contract for the function.", + "selector": "The function selector." + } + }, + "getAllowanceTarget()": { + "details": "Get the address of the allowance target.", + "returns": { "target": "The target of token allowances." } + }, + "getFunctionImplementation(bytes4)": { + "details": "Get the implementation contract of a registered function.", + "params": { "selector": "The function selector." }, + "returns": { "impl": "The implementation contract address." } + }, + "getMetaTransactionExecutedBlock((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256))": { + "details": "Get the block at which a meta-transaction has been executed.", + "params": { "mtx": "The meta-transaction." }, + "returns": { "blockNumber": "The block height when the meta-transactioin was executed." } + }, + "getMetaTransactionHash((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256))": { + "details": "Get the EIP712 hash of a meta-transaction.", + "params": { "mtx": "The meta-transaction." }, + "returns": { "mtxHash": "The EIP712 hash of `mtx`." } + }, + "getMetaTransactionHashExecutedBlock(bytes32)": { + "details": "Get the block at which a meta-transaction hash has been executed.", + "params": { "mtxHash": "The meta-transaction hash." }, + "returns": { "blockNumber": "The block height when the meta-transactioin was executed." } + }, + "getQuoteSigner()": { + "details": "Return the optional signer for `transformERC20()` calldata.", + "returns": { "signer": "The transform deployer address." } + }, + "getRollbackEntryAtIndex(bytes4,uint256)": { + "details": "Retrieve an entry in the rollback history for a function.", + "params": { "idx": "The index in the rollback history.", "selector": "The function selector." }, + "returns": { "impl": "An implementation address for the function at index `idx`." } + }, + "getRollbackLength(bytes4)": { + "details": "Retrieve the length of the rollback history for a function.", + "params": { "selector": "The function selector." }, + "returns": { + "rollbackLength": "The number of items in the rollback history for the function." + } + }, + "getSpendableERC20BalanceOf(address,address)": { + "details": "Gets the maximum amount of an ERC20 token `token` that can be pulled from `owner`.", + "params": { "owner": "The owner of the tokens.", "token": "The token to spend." }, + "returns": { "amount": "The amount of tokens that can be pulled." } + }, + "getTransformWallet()": { + "details": "Return the current wallet instance that will serve as the execution context for transformations.", + "returns": { "wallet": "The wallet instance." } + }, + "getTransformerDeployer()": { + "details": "Return the allowed deployer for transformers.", + "returns": { "deployer": "The transform deployer address." } + }, + "isValidHashSignature(bytes32,address,bytes)": { + "details": "Check that `hash` was signed by `signer` given `signature`.", + "params": { + "hash": "The hash that was signed.", + "signature": "The signature. The last byte of this signature should be a member of the `SignatureType` enum.", + "signer": "The signer of the hash." + }, + "returns": { "isValid": "`true` on success." } + }, + "migrate(address,bytes,address)": { + "details": "Execute a migration function in the context of the ZeroEx contract. The result of the function being called should be the magic bytes 0x2c64c5ef (`keccack('MIGRATE_SUCCESS')`). Only callable by the owner. The owner will be temporarily set to `address(this)` inside the call. Before returning, the owner will be set to `newOwner`.", + "params": { + "data": "The call data.", + "newOwner": "The address of the new owner.", + "target": "The migrator contract address." + } + }, + "owner()": { + "details": "The owner of this contract.", + "returns": { "ownerAddress": "The owner address." } + }, + "rollback(bytes4,address)": { + "details": "Roll back to a prior implementation of a function.", + "params": { + "selector": "The function selector.", + "targetImpl": "The address of an older implementation of the function." + } + }, + "setQuoteSigner(address)": { + "details": "Replace the optional signer for `transformERC20()` calldata. Only callable by the owner.", + "params": { "quoteSigner": "The address of the new calldata signer." } + }, + "setTransformerDeployer(address)": { + "details": "Replace the allowed deployer for transformers. Only callable by the owner.", + "params": { + "transformerDeployer": "The address of the new trusted deployer for transformers." + } + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new address.", + "params": { "newOwner": "The address that will become the owner." } + }, + "transformERC20(address,address,uint256,uint256,(uint32,bytes)[])": { + "details": "Executes a series of transformations to convert an ERC20 `inputToken` to an ERC20 `outputToken`.", + "params": { + "inputToken": "The token being provided by the sender. If `0xeee...`, ETH is implied and should be provided with the call.`", + "inputTokenAmount": "The amount of `inputToken` to take from the sender.", + "minOutputTokenAmount": "The minimum amount of `outputToken` the sender must receive for the entire transformation to succeed.", + "outputToken": "The token to be acquired by the sender. `0xeee...` implies ETH.", + "transformations": "The transformations to execute on the token balance(s) in sequence." + }, + "returns": { "outputTokenAmount": "The amount of `outputToken` received by the sender." } + }, + "validateHashSignature(bytes32,address,bytes)": { + "details": "Validate that `hash` was signed by `signer` given `signature`. Reverts otherwise.", + "params": { + "hash": "The hash that was signed.", + "signature": "The signature. The last byte of this signature should be a member of the `SignatureType` enum.", + "signer": "The signer of the hash." + } + } + }, + "version": 1 + }, + "evm": { "bytecode": { "object": "0x" }, "deployedBytecode": { "immutableReferences": {}, "object": "0x" } } + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000, + "details": { "yul": true, "deduplicate": true, "cse": true, "constantOptimizer": true } + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "devdoc", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "istanbul" + } + }, + "chains": {} +} diff --git a/packages/contract-artifacts/artifacts/MultiAssetProxy.json b/packages/contract-artifacts/artifacts/MultiAssetProxy.json index 92cd29e90c..cce0ff0097 100644 --- a/packages/contract-artifacts/artifacts/MultiAssetProxy.json +++ b/packages/contract-artifacts/artifacts/MultiAssetProxy.json @@ -190,16 +190,16 @@ }, "evm": { "bytecode": { - "object": "0x6080604052600080546001600160a01b03191633179055611617806100256000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80639ad2674411610081578063c585bb931161005b578063c585bb9314610789578063d39de6e9146107bc578063f2fde38b14610814576100d4565b80639ad26744146106cc578063ae25532e14610705578063b918161114610742576100d4565b806360704108116100b2578063607041081461065257806370712939146106915780638da5cb5b146106c4576100d4565b80633fd3c9971461059857806342f1181e14610600578063494503d414610635575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e400000000000000000000000000000000000000000000000000000000811415610592573360005260026020526040600020546101a5577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b600480350180356020600482030660448210171561022e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c19494e56414c49445f41535345545f444154415f4c454e475448000000604052600060605260646000fd5b602081018201368111156102ad577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c16494e56414c49445f41535345545f444154415f454e44000000000000604052600060605260646000fd5b5050602481013560448201356044820183016020810335925060448201840160208103358085031561034a577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f4c454e4754485f4d49534d4154434800000000000000000000000000604052600060605260646000fd5b5060646000803760806004526000936064359060200285805b82811015610587578086013584810281868204148615176103ef577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1055494e543235365f4f564552464c4f57000000000000000000000000604052600060605260646000fd5b60649081528287013589018b01604481019250018135600481101561049e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1e4c454e4754485f475245415445525f5448414e5f335f5245515549526040527f454400000000000000000000000000000000000000000000000000000000000060605260646000fd5b7fffffffff000000000000000000000000000000000000000000000000000000008235168b8103156104df57809b508b608452600160a45260406084205495505b5084610556577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1a41535345545f50524f58595f444f45535f4e4f545f45584953540000604052600060605260646000fd5b60208101836084376000808260a401600080895af1925050508061057e573d6000803e3d6000fd5b50602001610363565b505050505050505050005b50600080fd5b6105d7600480360360208110156105ae57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610847565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6106336004803603602081101561061657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661086f565b005b6105d76004803603602081101561064b57600080fd5b5035610a5b565b6105d76004803603602081101561066857600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610a8f565b610633600480360360208110156106a757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad9565b6105d7610dcc565b610633600480360360408110156106e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de8565b61070d611199565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6107756004803603602081101561075857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111cf565b604080519115158252519081900360200190f35b6106336004803603602081101561079f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e4565b6107c4611446565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108005781810151838201526020016107e8565b505050509050019250505060405180910390f35b6106336004803603602081101561082a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114b5565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff161561098a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b60038181548110610a6857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b7fffffffff000000000000000000000000000000000000000000000000000000001660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff16610bf357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600354811015610d85578173ffffffffffffffffffffffffffffffffffffffff1660038281548110610c6d57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610d7d57600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610cc557fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cf857fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d77908261159b565b50610d85565b600101610c3f565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff16610f0257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6003548110610f7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660038281548110610f9657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161461102457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061109f57fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110d257fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611151908261159b565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4d756c746941737365742875696e743235365b5d2c62797465735b5d290000008152905190819003601d0190205b90565b60026020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b257600080fd5b505afa1580156112c6573d6000803e3d6000fd5b505050506040513d60208110156112dc57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000811660009081526001602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41535345545f50524f58595f414c52454144595f455849535453000000000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000821660008181526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881690811790915582519384529083015280517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c031949281900390910190a1505050565b606060038054806020026020016040519081016040528092919081815260200182805480156114ab57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611480575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461153b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561159857600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b8154818355818111156115bf576000838152602090206115bf9181019083016115c4565b505050565b6111cc91905b808211156115de57600081556001016115ca565b509056fea265627a7a723158208c369898f25ccbc5756a1b54f39b5b3bc27def55a90c2c8464d83a7742d82bd964736f6c63430005100032" + "object": "0x6080604052600080546001600160a01b03191633179055611617806100256000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80639ad2674411610081578063c585bb931161005b578063c585bb9314610789578063d39de6e9146107bc578063f2fde38b14610814576100d4565b80639ad26744146106cc578063ae25532e14610705578063b918161114610742576100d4565b806360704108116100b2578063607041081461065257806370712939146106915780638da5cb5b146106c4576100d4565b80633fd3c9971461059857806342f1181e14610600578063494503d414610635575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e400000000000000000000000000000000000000000000000000000000811415610592573360005260026020526040600020546101a5577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b600480350180356020600482030660448210171561022e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c19494e56414c49445f41535345545f444154415f4c454e475448000000604052600060605260646000fd5b602081018201368111156102ad577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c16494e56414c49445f41535345545f444154415f454e44000000000000604052600060605260646000fd5b5050602481013560448201356044820183016020810335925060448201840160208103358085031561034a577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f4c454e4754485f4d49534d4154434800000000000000000000000000604052600060605260646000fd5b5060646000803760806004526000936064359060200285805b82811015610587578086013584810281868204148615176103ef577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1055494e543235365f4f564552464c4f57000000000000000000000000604052600060605260646000fd5b60649081528287013589018b01604481019250018135600481101561049e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1e4c454e4754485f475245415445525f5448414e5f335f5245515549526040527f454400000000000000000000000000000000000000000000000000000000000060605260646000fd5b7fffffffff000000000000000000000000000000000000000000000000000000008235168b8103156104df57809b508b608452600160a45260406084205495505b5084610556577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1a41535345545f50524f58595f444f45535f4e4f545f45584953540000604052600060605260646000fd5b60208101836084376000808260a401600080895af1925050508061057e573d6000803e3d6000fd5b50602001610363565b505050505050505050005b50600080fd5b6105d7600480360360208110156105ae57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610847565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6106336004803603602081101561061657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661086f565b005b6105d76004803603602081101561064b57600080fd5b5035610a5b565b6105d76004803603602081101561066857600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610a8f565b610633600480360360208110156106a757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad9565b6105d7610dcc565b610633600480360360408110156106e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de8565b61070d611199565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6107756004803603602081101561075857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111cf565b604080519115158252519081900360200190f35b6106336004803603602081101561079f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e4565b6107c4611446565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108005781810151838201526020016107e8565b505050509050019250505060405180910390f35b6106336004803603602081101561082a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114b5565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff161561098a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b60038181548110610a6857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b7fffffffff000000000000000000000000000000000000000000000000000000001660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff16610bf357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600354811015610d85578173ffffffffffffffffffffffffffffffffffffffff1660038281548110610c6d57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610d7d57600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610cc557fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cf857fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d77908261159b565b50610d85565b600101610c3f565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff16610f0257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6003548110610f7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660038281548110610f9657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161461102457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061109f57fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110d257fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611151908261159b565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4d756c746941737365742875696e743235365b5d2c62797465735b5d290000008152905190819003601d0190205b90565b60026020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b257600080fd5b505afa1580156112c6573d6000803e3d6000fd5b505050506040513d60208110156112dc57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000811660009081526001602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41535345545f50524f58595f414c52454144595f455849535453000000000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000821660008181526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881690811790915582519384529083015280517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c031949281900390910190a1505050565b606060038054806020026020016040519081016040528092919081815260200182805480156114ab57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611480575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461153b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561159857600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b8154818355818111156115bf576000838152602090206115bf9181019083016115c4565b505050565b6111cc91905b808211156115de57600081556001016115ca565b509056fea265627a7a72315820ebfea827ef976e2385bd39182ad9bc9353ba40aaf4988ba768c6d29bac7d050164736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80639ad2674411610081578063c585bb931161005b578063c585bb9314610789578063d39de6e9146107bc578063f2fde38b14610814576100d4565b80639ad26744146106cc578063ae25532e14610705578063b918161114610742576100d4565b806360704108116100b2578063607041081461065257806370712939146106915780638da5cb5b146106c4576100d4565b80633fd3c9971461059857806342f1181e14610600578063494503d414610635575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e400000000000000000000000000000000000000000000000000000000811415610592573360005260026020526040600020546101a5577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b600480350180356020600482030660448210171561022e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c19494e56414c49445f41535345545f444154415f4c454e475448000000604052600060605260646000fd5b602081018201368111156102ad577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c16494e56414c49445f41535345545f444154415f454e44000000000000604052600060605260646000fd5b5050602481013560448201356044820183016020810335925060448201840160208103358085031561034a577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f4c454e4754485f4d49534d4154434800000000000000000000000000604052600060605260646000fd5b5060646000803760806004526000936064359060200285805b82811015610587578086013584810281868204148615176103ef577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1055494e543235365f4f564552464c4f57000000000000000000000000604052600060605260646000fd5b60649081528287013589018b01604481019250018135600481101561049e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1e4c454e4754485f475245415445525f5448414e5f335f5245515549526040527f454400000000000000000000000000000000000000000000000000000000000060605260646000fd5b7fffffffff000000000000000000000000000000000000000000000000000000008235168b8103156104df57809b508b608452600160a45260406084205495505b5084610556577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1a41535345545f50524f58595f444f45535f4e4f545f45584953540000604052600060605260646000fd5b60208101836084376000808260a401600080895af1925050508061057e573d6000803e3d6000fd5b50602001610363565b505050505050505050005b50600080fd5b6105d7600480360360208110156105ae57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610847565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6106336004803603602081101561061657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661086f565b005b6105d76004803603602081101561064b57600080fd5b5035610a5b565b6105d76004803603602081101561066857600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610a8f565b610633600480360360208110156106a757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad9565b6105d7610dcc565b610633600480360360408110156106e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de8565b61070d611199565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6107756004803603602081101561075857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111cf565b604080519115158252519081900360200190f35b6106336004803603602081101561079f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e4565b6107c4611446565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108005781810151838201526020016107e8565b505050509050019250505060405180910390f35b6106336004803603602081101561082a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114b5565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff161561098a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b60038181548110610a6857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b7fffffffff000000000000000000000000000000000000000000000000000000001660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff16610bf357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600354811015610d85578173ffffffffffffffffffffffffffffffffffffffff1660038281548110610c6d57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610d7d57600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610cc557fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cf857fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d77908261159b565b50610d85565b600101610c3f565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff16610f0257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6003548110610f7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660038281548110610f9657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161461102457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061109f57fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110d257fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611151908261159b565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4d756c746941737365742875696e743235365b5d2c62797465735b5d290000008152905190819003601d0190205b90565b60026020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b257600080fd5b505afa1580156112c6573d6000803e3d6000fd5b505050506040513d60208110156112dc57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000811660009081526001602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41535345545f50524f58595f414c52454144595f455849535453000000000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000821660008181526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881690811790915582519384529083015280517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c031949281900390910190a1505050565b606060038054806020026020016040519081016040528092919081815260200182805480156114ab57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611480575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461153b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561159857600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b8154818355818111156115bf576000838152602090206115bf9181019083016115c4565b505050565b6111cc91905b808211156115de57600081556001016115ca565b509056fea265627a7a723158208c369898f25ccbc5756a1b54f39b5b3bc27def55a90c2c8464d83a7742d82bd964736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80639ad2674411610081578063c585bb931161005b578063c585bb9314610789578063d39de6e9146107bc578063f2fde38b14610814576100d4565b80639ad26744146106cc578063ae25532e14610705578063b918161114610742576100d4565b806360704108116100b2578063607041081461065257806370712939146106915780638da5cb5b146106c4576100d4565b80633fd3c9971461059857806342f1181e14610600578063494503d414610635575b7fffffffff00000000000000000000000000000000000000000000000000000000600035167fa85e59e400000000000000000000000000000000000000000000000000000000811415610592573360005260026020526040600020546101a5577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1553454e4445525f4e4f545f415554484f52495a454400000000000000604052600060605260646000fd5b600480350180356020600482030660448210171561022e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c19494e56414c49445f41535345545f444154415f4c454e475448000000604052600060605260646000fd5b602081018201368111156102ad577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c16494e56414c49445f41535345545f444154415f454e44000000000000604052600060605260646000fd5b5050602481013560448201356044820183016020810335925060448201840160208103358085031561034a577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c0f4c454e4754485f4d49534d4154434800000000000000000000000000604052600060605260646000fd5b5060646000803760806004526000936064359060200285805b82811015610587578086013584810281868204148615176103ef577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1055494e543235365f4f564552464c4f57000000000000000000000000604052600060605260646000fd5b60649081528287013589018b01604481019250018135600481101561049e577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1e4c454e4754485f475245415445525f5448414e5f335f5245515549526040527f454400000000000000000000000000000000000000000000000000000000000060605260646000fd5b7fffffffff000000000000000000000000000000000000000000000000000000008235168b8103156104df57809b508b608452600160a45260406084205495505b5084610556577f08c379a0000000000000000000000000000000000000000000000000000000006000527c20000000000000000000000000000000000000000000000000000000006020527c1a41535345545f50524f58595f444f45535f4e4f545f45584953540000604052600060605260646000fd5b60208101836084376000808260a401600080895af1925050508061057e573d6000803e3d6000fd5b50602001610363565b505050505050505050005b50600080fd5b6105d7600480360360208110156105ae57600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610847565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6106336004803603602081101561061657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661086f565b005b6105d76004803603602081101561064b57600080fd5b5035610a5b565b6105d76004803603602081101561066857600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610a8f565b610633600480360360208110156106a757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ad9565b6105d7610dcc565b610633600480360360408110156106e257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de8565b61070d611199565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6107756004803603602081101561075857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111cf565b604080519115158252519081900360200190f35b6106336004803603602081101561079f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e4565b6107c4611446565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108005781810151838201526020016107e8565b505050509050019250505060405180910390f35b6106336004803603602081101561082a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114b5565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff161561098a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5441524745545f414c52454144595f415554484f52495a454400000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b60038181548110610a6857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b7fffffffff000000000000000000000000000000000000000000000000000000001660009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604090205460ff16610bf357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600354811015610d85578173ffffffffffffffffffffffffffffffffffffffff1660038281548110610c6d57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610d7d57600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610cc557fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff9092169183908110610cf857fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190610d77908261159b565b50610d85565b600101610c3f565b50604051339073ffffffffffffffffffffffffffffffffffffffff8316907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff16610f0257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5441524745545f4e4f545f415554484f52495a45440000000000000000000000604482015290519081900360640190fd5b6003548110610f7257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f494e4445585f4f55545f4f465f424f554e445300000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1660038281548110610f9657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161461102457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f415554484f52495a45445f414444524553535f4d49534d415443480000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061109f57fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110d257fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611151908261159b565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b604080517f4d756c746941737365742875696e743235365b5d2c62797465735b5d290000008152905190819003601d0190205b90565b60026020526000908152604090205460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461126a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663ae25532e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b257600080fd5b505afa1580156112c6573d6000803e3d6000fd5b505050506040513d60208110156112dc57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000811660009081526001602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16801561139657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41535345545f50524f58595f414c52454144595f455849535453000000000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000821660008181526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881690811790915582519384529083015280517fd2c6b762299c609bdb96520b58a49bfb80186934d4f71a86a367571a15c031949281900390910190a1505050565b606060038054806020026020016040519081016040528092919081815260200182805480156114ab57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611480575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff16331461153b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161561159857600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b8154818355818111156115bf576000838152602090206115bf9181019083016115c4565b505050565b6111cc91905b808211156115de57600081556001016115ca565b509056fea265627a7a72315820ebfea827ef976e2385bd39182ad9bc9353ba40aaf4988ba768c6d29bac7d050164736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/Staking.json b/packages/contract-artifacts/artifacts/Staking.json index 6cc1dfbfde..49adb8bcde 100644 --- a/packages/contract-artifacts/artifacts/Staking.json +++ b/packages/contract-artifacts/artifacts/Staking.json @@ -928,10 +928,10 @@ }, "evm": { "bytecode": { - "object": "0x6080604052600080546001600160a01b031916331790556156b7806100256000396000f3fe6080604052600436106103295760003560e01c80638da5cb5b116101a5578063bb7ef7e0116100ec578063e8eeb3f811610095578063f18765321161006f578063f1876532146108bf578063f252b7a1146108df578063f2fde38b146108ff578063ff691b111461091f57610329565b8063e8eeb3f814610875578063e907f0031461088a578063ee99205c146108aa57610329565b8063e0ee036e116100c6578063e0ee036e1461082b578063e1c7392a14610840578063e804d0a41461085557610329565b8063bb7ef7e0146107c9578063c18c9141146107e9578063d39de6e91461080957610329565b8063a694fc3a1161014e578063b3e3337911610128578063b3e3337914610769578063b510879f14610789578063b9181611146107a957610329565b8063a694fc3a1461071f578063b05315241461073f578063b2baa33e1461075457610329565b8063a26171e21161017f578063a26171e2146106e2578063a3b4a327146106f7578063a657e5791461070a57610329565b80638da5cb5b1461068d5780639ad26744146106a25780639c3ccc82146106c257610329565b80634bcc3f6711610274578063624a72321161021d57806370712939116101f757806370712939146106165780637667180814610636578063816667961461064b5780638a2e271a1461066d57610329565b8063624a7232146105cc57806363403801146105e157806368a7d6cd146105f657610329565b80635bd4ab731161024e5780635bd4ab73146105595780635d91121d146105865780635e615a6b146105a657610329565b80634bcc3f67146104f7578063587da0231461052457806358f6c7e31461053957610329565b80633c277fc5116102d657806344a6958b116102b057806344a6958b1461048a57806346b97959146104aa578063494503d4146104d757610329565b80633c277fc51461041b5780633e4ad7321461043d57806342f1181e1461046a57610329565b80632a94c279116103075780632a94c2791461039b5780632e17de78146103ca57806338229d93146103ea57610329565b806301e28d841461032e5780630b9663db146103505780631e7ff8f61461037b575b600080fd5b34801561033a57600080fd5b5061034e610349366004614fd2565b61093f565b005b34801561035c57600080fd5b50610365610a0d565b6040516103729190615332565b60405180910390f35b34801561038757600080fd5b50610365610396366004614fd2565b610b5a565b3480156103a757600080fd5b506103bb6103b63660046150e6565b610bf4565b6040516103729392919061551f565b3480156103d657600080fd5b5061034e6103e53660046150aa565b610c20565b3480156103f657600080fd5b5061040a6104053660046150aa565b610dd5565b604051610372959493929190615550565b34801561042757600080fd5b50610430610e04565b604051610372919061522f565b34801561044957600080fd5b5061045d6104583660046150aa565b610e1c565b60405161037291906154e0565b34801561047657600080fd5b5061034e610485366004614fd2565b610e3b565b34801561049657600080fd5b5061045d6104a5366004615057565b610e4f565b3480156104b657600080fd5b506104ca6104c53660046150aa565b610eae565b604051610372919061548c565b3480156104e357600080fd5b506104306104f23660046150aa565b610ef9565b34801561050357600080fd5b506105176105123660046150aa565b610f2d565b60405161037291906154ad565b34801561053057600080fd5b50610365610f8f565b34801561054557600080fd5b5061034e61055436600461514f565b610f95565b34801561056557600080fd5b50610579610574366004614fd2565b611192565b6040516103729190615327565b34801561059257600080fd5b5061034e6105a1366004615107565b6111a7565b3480156105b257600080fd5b506105bb611270565b604051610372959493929190615573565b3480156105d857600080fd5b50610430611299565b3480156105ed57600080fd5b506103656112b1565b34801561060257600080fd5b50610365610611366004615202565b6112b7565b34801561062257600080fd5b5061034e610631366004614fd2565b6113f0565b34801561064257600080fd5b506103656114a5565b34801561065757600080fd5b506106606114ab565b60405161037291906155b7565b34801561067957600080fd5b5061034e610688366004614fd2565b6114b7565b34801561069957600080fd5b50610430611579565b3480156106ae57600080fd5b5061034e6106bd36600461502d565b611595565b3480156106ce57600080fd5b5061034e6106dd3660046151a4565b6115a7565b3480156106ee57600080fd5b50610365611621565b61034e610705366004614fed565b611627565b34801561071657600080fd5b50610365611877565b34801561072b57600080fd5b5061034e61073a3660046150aa565b61187d565b34801561074b57600080fd5b50610365611992565b34801561076057600080fd5b50610365611998565b34801561077557600080fd5b5061034e6107843660046150aa565b6119b6565b34801561079557600080fd5b5061034e6107a43660046150aa565b6119f6565b3480156107b557600080fd5b506105796107c4366004614fd2565b611a00565b3480156107d557600080fd5b506103656107e43660046150aa565b611a15565b3480156107f557600080fd5b506103656108043660046150aa565b611aa0565b34801561081557600080fd5b5061081e611ab2565b60405161037291906152ce565b34801561083757600080fd5b50610660611b21565b34801561084c57600080fd5b5061034e611b2d565b34801561086157600080fd5b5061045d610870366004615133565b611b47565b34801561088157600080fd5b50610660611c97565b34801561089657600080fd5b506103656108a53660046150c2565b611cab565b3480156108b657600080fd5b50610430611d48565b3480156108cb57600080fd5b506103656108da366004614fd2565b611d64565b3480156108eb57600080fd5b5061045d6108fa36600461502d565b611d76565b34801561090b57600080fd5b5061034e61091a366004614fd2565b611db7565b34801561092b57600080fd5b5061034e61093a3660046150aa565b611e5a565b610947612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16610987576109876109826001836120aa565b61214c565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb90610a0290839061522f565b60405180910390a150565b600c5460009081610a2582600163ffffffff61215416565b6000818152601660205260409020600101549091508015610a4d57610a4d6109828383612173565b610a55612190565b610a5d612203565b600084815260166020526040902055610a74614eba565b50600083815260166020908152604091829020825160a08101845281548082526001830154938201849052600283015482860181905260038401546060840181905260049094015460808401529451919488947fbb4a26fa0ace13ee4da343896c20eaa44a618fb9071fdd8c2e2c960a4583189d94610af69491939291615535565b60405180910390a2610b066122a7565b6020810151610b4d57805160405185917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291610b449160009161537d565b60405180910390a25b6020015193505050505b90565b6000610b64611299565b73ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610b9c919061522f565b60206040518083038186803b158015610bb457600080fd5b505afa158015610bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bec919081019061518c565b90505b919050565b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b33610c29614ee9565b73ffffffffffffffffffffffffffffffffffffffff821660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610c76906122ea565b90506000610ca882602001516bffffffffffffffffffffffff1683604001516bffffffffffffffffffffffff16612390565b905080841115610cbf57610cbf61098285836123a6565b73ffffffffffffffffffffffffffffffffffffffff831660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610d0d90856123c3565b610d15611299565b73ffffffffffffffffffffffffffffffffffffffff16639470b0bd84866040518363ffffffff1660e01b8152600401610d4f9291906152a8565b600060405180830381600087803b158015610d6957600080fd5b505af1158015610d7d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd85604051610dc79190615332565b60405180910390a250505050565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b610e24614ee9565b6000828152600760205260409020610bec906122ea565b610e4361244a565b610e4c81612491565b50565b610e57614ee9565b610ea560056000846001811115610e6a57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff8816825290925290206122ea565b90505b92915050565b610eb6614f09565b506000908152601560209081526040808320600c548452825291829020825160608101845281548152600182015492810192909252600201549181019190915290565b60028181548110610f0657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610f35614f2a565b506000908152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff169082015290565b600d5481565b3381610fa1575061118d565b6000610fb06020860186615133565b6001811115610fbb57fe5b148015610fdf57506000610fd26020850185615133565b6001811115610fdd57fe5b145b15610fea575061118d565b6001610ff96020860186615133565b600181111561100457fe5b141561101957611019846020013582846125c2565b60016110286020850185615133565b600181111561103357fe5b1415611048576110488360200135828461265b565b600060058161105a6020880188615133565b600181111561106557fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff86168252835290812092509060059082906110af90880188615133565b60018111156110ba57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff87168252909252902090506110fd8282866126f4565b60208086013590870180359073ffffffffffffffffffffffffffffffffffffffff8616907f7d3ad1dcf03b9027064d1d9a474a69e0cecc31324c541d3eb9b5e6fa2f106c8d90889061114f908c615133565b600181111561115a57fe5b61116760208c018c615133565b600181111561117257fe5b6040516111819392919061559e565b60405180910390a45050505b505050565b60106020526000908152604090205460ff1681565b816111b1816127ed565b6000838152600a602052604090205474010000000000000000000000000000000000000000900463ffffffff166111e9848285612826565b6000848152600a60205260409081902080547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8716021790555184907f8ea2a7a959bd25f226b7b0a4393613f7fdcaa8404e8bad96aa52dc1c1459016790610dc790849087906155c8565b601154601254601354601454929363ffffffff9283169391928281169264010000000090041690565b73ba7f8b5fb1b19c1211c5d49550fcd149177a5eaf90565b60115481565b60085460009033906112d090600163ffffffff61286e16565b600881905591506112e582620f424086612826565b6112ed614f2a565b5060408051808201825273ffffffffffffffffffffffffffffffffffffffff838116825263ffffffff87811660208085019182526000888152600a9091528590208451815492517fffffffffffffffffffffffff00000000000000000000000000000000000000009093169416939093177fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000919092160217905590517fcec6fc86ea644053f6edff1160dfe3fa5c61e7a5ef9f873f145bb03a0bd319e7906113d19085908590899061533b565b60405180910390a183156113e8576113e8836119b6565b505092915050565b6113f861244a565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16611431576114316109828261288a565b60005b6002548110156114a1578173ffffffffffffffffffffffffffffffffffffffff166002828154811061146257fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611499576114948282612929565b6114a1565b600101611434565b5050565b600c5481565b60145463ffffffff1681565b6114bf612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16156114fb576114fb6109826000836120aa565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e190610a0290839061522f565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61159d61244a565b6114a18282612929565b6115af612087565b6115bc8585858585612b78565b3073ffffffffffffffffffffffffffffffffffffffff1663c6f3a4276040518163ffffffff1660e01b815260040160006040518083038186803b15801561160257600080fd5b505afa158015611616573d6000803e3d6000fd5b505050505050505050565b60135481565b3360009081526010602052604090205460ff1661164a5761164a61098233612c3b565b61165381612c56565b3461172d57611660610e04565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd8330846040518463ffffffff1660e01b815260040161169c93929190615277565b602060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116ee919081019061508e565b61172d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172490615455565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600960205260409020548061175e575061118d565b600061176982610e1c565b602001516bffffffffffffffffffffffff16905060135481101561178e57505061118d565b600c5460008381526015602090815260408083208484528252808320601690925290912081548061183d576000806117c68888612c77565b6002870182905560018701819055600386015491935091506117ee908263ffffffff61286e16565b60038501556001808501546118089163ffffffff61286e16565b6001850155604051889087907f14b098103235344975b17508c2391721cc9ac3f3fa2b56c7ff46f8480dfd074f90600090a350505b61184d818863ffffffff61286e16565b83556002820154611864908863ffffffff61286e16565b8260020181905550505050505050505050565b60085481565b33611886611299565b73ffffffffffffffffffffffffffffffffffffffff166315cc36f282846040518363ffffffff1660e01b81526004016118c09291906152a8565b600060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff811660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604090206119409083612d03565b8073ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a836040516119869190615332565b60405180910390a25050565b60175481565b60006119b1601154600d5461286e90919063ffffffff16565b905090565b3360008181526009602052604080822084905551839183917f5640833634fce74eb9211d1209a91dd5a1c8c6a751696bff9323b4db67f815139190a35050565b610e4c8133612d6d565b60016020526000908152604090205460ff1681565b6000611a1f614f2a565b506000828152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611a8385612f45565b91509150611a9683602001518383613002565b5095945050505050565b600b6020526000908152604090205481565b60606002805480602002602001604051908101604052809291908181526020018280548015611b1757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611aec575b5050505050905090565b60125463ffffffff1681565b611b35612087565b611b3d613043565b611b45613056565b565b611b4f614ee9565b60016000526004602052611b827fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe056122ea565b90506000826001811115611b9257fe5b1415610bef576000611ba2611299565b73ffffffffffffffffffffffffffffffffffffffff16639706e0c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611be757600080fd5b505afa158015611bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c1f919081019061518c565b9050611c4e611c4983602001516bffffffffffffffffffffffff168361215490919063ffffffff16565b613081565b6bffffffffffffffffffffffff90811660208401526040830151611c7e91611c499184911663ffffffff61215416565b6bffffffffffffffffffffffff16604083015250919050565b601454640100000000900463ffffffff1681565b6000611cb5614f2a565b506000838152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611d1986612f45565b915091506000611d2e84602001518484613002565b915050611d3d878783856130a5565b979650505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b611d7e614ee9565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208584529091529020610ea5906122ea565b611dbf61244a565b73ffffffffffffffffffffffffffffffffffffffff8116611dea57611de56109826131f2565b610e4c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600c546000611e7082600163ffffffff61215416565b9050611e7a614eba565b50600081815260166020908152604091829020825160a08101845281548152600182015492810183905260028201549381019390935260038101546060840152600401546080830152611ecf57505050610e4c565b611ed7614f09565b5060008481526015602090815260408083208584528252918290208251606081018452815480825260018301549382019390935260029091015492810192909252611f255750505050610e4c565b6000858152601560209081526040808320868452909152812081815560018101829055600201819055611f588284613229565b9050600080611f6c8884866040015161329e565b9150915087877ff1116b309178aa62dcb6bf8c3b8bc2321724907c7ebf52192d14c8ce3aa9194c8484604051611fa392919061537d565b60405180910390a36000611fbd838363ffffffff61286e16565b6080870151909150611fd5908263ffffffff61286e16565b6080870181905260008881526016602090815260409091206004019190915586015161200890600163ffffffff61215416565b602080880182815260008a8152601690925260409091206001019190915551611616576080860151865188917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291612066908263ffffffff61215416565b60405161207492919061537d565b60405180910390a2505050505050505050565b3360009081526001602052604090205460ff16611b4557611b45610982336133ee565b606063b9588e4360e01b83836040516024016120c79291906153c5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b805160208201fd5b60008282111561216d5761216d61098260028585613409565b50900390565b606063614b800a60e01b83836040516024016120c792919061537d565b30318015610e4c576121a0610e04565b73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156121e757600080fd5b505af11580156121fb573d6000803e3d6000fd5b505050505050565b60006119b1601754612213610e04565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161224b919061522f565b60206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061229b919081019061518c565b9063ffffffff61215416565b4260006122b2611998565b9050818111156122c9576122c961098282846134ae565b600c546000906122e090600163ffffffff61286e16565b600c555050600d55565b6122f2614ee9565b5060408051606081018252825467ffffffffffffffff81168083526bffffffffffffffffffffffff680100000000000000008304811660208501527401000000000000000000000000000000000000000090920490911692820192909252600c54909181111561238a57612365816134cb565b67ffffffffffffffff16825260408201516bffffffffffffffffffffffff1660208301525b50919050565b600081831061239f5781610ea5565b5090919050565b60606384c8b7c960e01b83836040516024016120c792919061537d565b6123cb614ee9565b6123d4836122ea565b90506123fe611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61215416565b6bffffffffffffffffffffffff16602082015261118d83826134eb565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b4557600054611b459061098290339073ffffffffffffffffffffffffffffffffffffffff166135a5565b73ffffffffffffffffffffffffffffffffffffffff81166124b7576124b76109826135c2565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156124f1576124f1610982826135f9565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6125cb83613614565b6125d58383612d6d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600660209081526040808320868452909152902061260f908261364b565b6000838152600760205260409020612627908261364b565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe058261364b565b61266483613614565b61266e8383612d6d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260066020908152604080832086845290915290206126a890826136a3565b60008381526007602052604090206126c090826136a3565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe05826136a3565b6126fe83836136de565b156127085761118d565b612710614ee9565b612719846122ea565b9050612723614ee9565b61272c846122ea565b905081604001516bffffffffffffffffffffffff16831115612767576127676109828484604001516bffffffffffffffffffffffff166123a6565b604082015161278e90611c49906bffffffffffffffffffffffff168563ffffffff61215416565b6bffffffffffffffffffffffff9081166040808501919091528201516127bf91611c4991168563ffffffff61286e16565b6bffffffffffffffffffffffff1660408201526127dc85836134eb565b6127e684826134eb565b5050505050565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff163381146114a1576114a161098233846136e5565b620f424063ffffffff8216111561284b5761284661098260008584613702565b61118d565b8163ffffffff168163ffffffff16111561118d5761118d61098260018584613702565b600082820183811015610ea557610ea561098260008686613409565b606063eb5108a260e01b826040516024016128a5919061522f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16612962576129626109828361288a565b600254811061297d5761297d61098282600280549050613721565b8173ffffffffffffffffffffffffffffffffffffffff16600282815481106129a157fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614612a0357612a03610982600283815481106129db57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461373e565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110612a7e57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110612ab157fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190612b309082614f41565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60118590556012805463ffffffff8087167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000092831617909255601385905560148054848416640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9487169190931617929092161790556040517f613157dbb0e920deab8ad6ddd3805e87cbf57344b9fe780f1764790ec789754290612c2c9087908790879087908790615573565b60405180910390a15050505050565b606063b56d2df060e01b826040516024016128a5919061522f565b803414158015612c6557503415155b15610e4c57610e4c610982823461375b565b6000828152600a602052604081205481908190612caa9073ffffffffffffffffffffffffffffffffffffffff1686611d76565b602001516bffffffffffffffffffffffff169050612cce848263ffffffff61215416565b601254909350612cf990612cec9063ffffffff16620f424086613778565b829063ffffffff61286e16565b9150509250929050565b612d0b614ee9565b612d14836122ea565b9050612d3e611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61286e16565b612d768261379a565b6000612d8583836000806130a5565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208784529091529020909150612dc1906122ea565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600660209081526040808320888452825291829020845181549286015195909301517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921667ffffffffffffffff909316929092177fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff16680100000000000000006bffffffffffffffffffffffff95861602179092167401000000000000000000000000000000000000000093909216929092021790558015612f3c57612ea6838261380e565b612eae610e04565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612ee89291906152a8565b602060405180830381600087803b158015612f0257600080fd5b505af1158015612f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f3a919081019061508e565b505b61118d83613856565b6000806000612f606001600c5461215490919063ffffffff16565b9050612f6a614f09565b50600084815260156020908152604080832084845282528083208151606080820184528254825260018084015483870152600293840154838601528787526016865295849020845160a0810186528154815296810154958701959095529184015492850192909252600383015490840152600490910154608083015290612ff2908290613229565b9350806040015192505050915091565b600080826130125783915061303b565b61302663ffffffff8616620f424086613863565b9150613038848363ffffffff61215416565b90505b935093915050565b61304b613899565b42600d556001600c55565b61305e6138ae565b620d2f00620dbba068056bc75e2d63100000600260036127e68585858585612b78565b806bffffffffffffffffffffffff81168114610bef57610bef610982600284613913565b600c546000906130b3614ee9565b5073ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083208984528252918290208251606081018452905467ffffffffffffffff81168083526bffffffffffffffffffffffff6801000000000000000083048116948401949094527401000000000000000000000000000000000000000090910490921692810192909252821415613154576000925050506131ea565b61316081838787613930565b81519093506000906131839067ffffffffffffffff16600163ffffffff61286e16565b90506131c16131b48984602001516bffffffffffffffffffffffff16856000015167ffffffffffffffff16856139b3565b859063ffffffff61286e16565b93506131e46131b48984604001516bffffffffffffffffffffffff1684876139b3565b93505050505b949350505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b815160009061323757610ea8565b8151835160408401516020860151606086015160145461326d95949392919063ffffffff80821691640100000000900416613a4c565b608083015183519192506000916132899163ffffffff61215416565b905081811015613297578091505b5092915050565b6000806132a9614f2a565b506000858152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff1690820181905261330d908686613002565b909350915082156133ca57613320610e04565b81516040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092169163a9059cbb916133769187906004016152a8565b602060405180830381600087803b15801561339057600080fd5b505af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133c8919081019061508e565b505b81156133e5576133da8683613b0f565b6133e5868386613b50565b50935093915050565b606063b65a25b960e01b826040516024016128a5919061522f565b606063e946c1bb60e01b8484846040516024016134289392919061538b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063a6bcde4760e01b83836040516024016120c792919061537d565b8067ffffffffffffffff81168114610bef57610bef610982600184613913565b8051825460408301516020909301516bffffffffffffffffffffffff90811668010000000000000000027fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff91909416740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff9094167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090931692909217929092161716179055565b6060631de45ad160e01b83836040516024016120c7929190615250565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016128a5919061522f565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff16610e4c57610e4c610982826000613c39565b613653614ee9565b61365c836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff16604082015261118d83826134eb565b6136ab614ee9565b6136b4836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b1460011690565b60606382ded78560e01b83836040516024016120c79291906152a8565b60606322df959760e01b848484604051602401613428939291906153f7565b606063e9f8377160e01b83836040516024016120c792919061537d565b606063140a84db60e01b83836040516024016120c7929190615250565b60606331d7a50560e01b83836040516024016120c792919061537d565b60006131ea8361378e868563ffffffff613c5616565b9063ffffffff613c8716565b600c546000906137b190600163ffffffff61215416565b90506137bb614f09565b50600082815260156020908152604080832084845282529182902082516060810184528154808252600183015493820193909352600290910154928101929092521561118d5761118d6109828484613cb1565b6000828152600b602052604090205461382d908263ffffffff61215416565b6000838152600b602052604090205560175461384f908263ffffffff61215416565b6017555050565b610e4c8160006001613b50565b60006131ea8361378e61387d82600163ffffffff61215416565b61388d888763ffffffff613c5616565b9063ffffffff61286e16565b600d5415611b4557611b456109826000613cce565b601154158015906138c6575060125463ffffffff1615155b80156138d3575060135415155b80156138e6575060145463ffffffff1615155b80156139015750601454640100000000900463ffffffff1615155b15611b4557611b456109826001613cce565b606063c996af7b60e01b83836040516024016120c79291906153ad565b600082158061393d575081155b1561394a575060006131ea565b600061395d85600163ffffffff61215416565b865167ffffffffffffffff16101561397957856040015161397f565b85602001515b6bffffffffffffffffffffffff1690508061399e5760009150506131ea565b6139a9848483613778565b9695505050505050565b60008315806139c157508183145b156139ce575060006131ea565b818310613a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117249061541e565b613a0f614f65565b613a198685613d0d565b9050613a23614f65565b613a2d8785613d0d565b9050611d3d81600001518260200151846000015185602001518a613e2b565b600080613a598888613eb7565b90506000613a678787613eb7565b9050811580613a74575080155b15613a85575060009150611d3d9050565b600081831315613a9e57613a998284613f09565b613aa8565b613aa88383613f09565b9050613ad1613acc613ab983613f28565b8863ffffffff168863ffffffff166145ca565b6145d9565b905081831315613aea57613ae58282613f09565b613af4565b613af48282614bc3565b9050613b00818c614bef565b9b9a5050505050505050505050565b6000828152600b6020526040902054613b2e908263ffffffff61286e16565b6000838152600b602052604090205560175461384f908263ffffffff61286e16565b6000838152600f6020526040902054600c5480821415613b7157505061118d565b613b79614f65565b506000858152600e602090815260408083208584528252918290208251808401909352805483526001015490820152613bb0614f65565b613bb982614c31565b15613bf257613bd2826000015183602001518888614c3a565b60208301819052818352613be69190614c9c565b60208301528152613bfd565b602081018590528581525b6000878152600e6020908152604080832086845282528083208451815593820151600190940193909355978152600f9097529095205550505050565b6060639ae94f0160e01b83836040516024016120c792919061536d565b600082613c6557506000610ea8565b82820282848281613c7257fe5b0414610ea557610ea561098260018686613409565b600081613c9d57613c9d61098260038585613409565b6000828481613ca857fe5b04949350505050565b6060635caa0b0560e01b83836040516024016120c792919061537d565b60607f0b02d77300000000000000000000000000000000000000000000000000000000826001811115613cfd57fe5b6040516024016128a591906155df565b613d15614f65565b506000828152600e602090815260408083208484528252918290208251808401909352805483526001015490820152613d4d81614c31565b15613d5757610ea8565b6000613d6a83600163ffffffff61215416565b6000858152600e60209081526040808320848452825291829020825180840190935280548352600101549082015292509050613da582614c31565b15613db05750610ea8565b6000848152600f602052604090205483811015613e0d576000858152600e6020908152604080832084845282529182902082518084019093528054835260010154908201529250613e0083614c31565b15613e0d5750610ea89050565b50506040805180820190915260008152600160208201529392505050565b600081613e3a57506000613eae565b83613e5a57613e538561378e848963ffffffff613c5616565b9050613eae565b6000613e7f613e6f868863ffffffff613c5616565b61229b898763ffffffff613c5616565b90506000613e93828663ffffffff613c8716565b9050613ea98761378e868463ffffffff613c5616565b925050505b95945050505050565b600080831215613ecf57613ecf610982600185614cc5565b6000821215613ee657613ee6610982600184614cc5565b610ea5613f03846f80000000000000000000000000000000614d06565b83614d59565b6000610ea5613f03846f80000000000000000000000000000000614d06565b60006f80000000000000000000000000000000821315613f5057613f50610982600184614dda565b60008213613f6657613f66610982600084614dda565b6f80000000000000000000000000000000821415613f8657506000610bef565b640733048c5a8213613fb957507fffffffffffffffffffffffffffffffe010000000000000000000000000000000610bef565b60008060006a01c8464f761647600000008513614018577ffffffffffffffffffffffffffffffff000000000000000000000000000000000909301926a01c8464f761647600000006f8000000000000000000000000000000086020594505b6cf1aaddd7742e900000000000008513614076577ffffffffffffffffffffffffffffffff800000000000000000000000000000000909301926cf1aaddd7742e900000000000006f8000000000000000000000000000000086020594505b6e0afe10820813d7800000000000000085136140d8577ffffffffffffffffffffffffffffffffc00000000000000000000000000000000909301926e0afe10820813d780000000000000006f8000000000000000000000000000000086020594505b6f02582ab704279ec00000000000000000851361413c577ffffffffffffffffffffffffffffffffe00000000000000000000000000000000909301926f02582ab704279ec000000000000000006f8000000000000000000000000000000086020594505b6f1152aaa3bf81cc00000000000000000085136141a0577fffffffffffffffffffffffffffffffff00000000000000000000000000000000909301926f1152aaa3bf81cc0000000000000000006f8000000000000000000000000000000086020594505b6f2f16ac6c59de700000000000000000008513614204577fffffffffffffffffffffffffffffffff80000000000000000000000000000000909301926f2f16ac6c59de700000000000000000006f8000000000000000000000000000000086020594505b6f4da2cbf1be58280000000000000000008513614268577fffffffffffffffffffffffffffffffffc0000000000000000000000000000000909301926f4da2cbf1be58280000000000000000006f8000000000000000000000000000000086020594505b6f63afbe7ab2082c00000000000000000085136142cc577fffffffffffffffffffffffffffffffffe0000000000000000000000000000000909301926f63afbe7ab2082c0000000000000000006f8000000000000000000000000000000086020594505b6f70f5a893b608861e1f58934f97aea57d8513614330577ffffffffffffffffffffffffffffffffff0000000000000000000000000000000909301926f70f5a893b608861e1f58934f97aea57d6f8000000000000000000000000000000086020594505b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000850192508291506f80000000000000000000000000000000828002059050700100000000000000000000000000000000838103830205840193506f80000000000000000000000000000000818302816143a657fe5b059150700200000000000000000000000000000000836faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa038302816143d757fe5b05840193506f80000000000000000000000000000000818302816143f757fe5b059150700300000000000000000000000000000000836f999999999999999999999999999999990383028161442857fe5b05840193506f800000000000000000000000000000008183028161444857fe5b059150700400000000000000000000000000000000836f924924924924924924924924924924920383028161447957fe5b05840193506f800000000000000000000000000000008183028161449957fe5b059150700500000000000000000000000000000000836f8e38e38e38e38e38e38e38e38e38e38e038302816144ca57fe5b05840193506f80000000000000000000000000000000818302816144ea57fe5b059150700600000000000000000000000000000000836f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b0383028161451b57fe5b05840193506f800000000000000000000000000000008183028161453b57fe5b059150700700000000000000000000000000000000836f89d89d89d89d89d89d89d89d89d89d890383028161456c57fe5b05840193506f800000000000000000000000000000008183028161458c57fe5b059150700800000000000000000000000000000000836f88888888888888888888888888888888038302816145bd57fe5b0584019350505050919050565b60006131ea613f038585614d06565b60007fffffffffffffffffffffffffffffffe01000000000000000000000000000000082121561460b57506000610bef565b8161462757506f80000000000000000000000000000000610bef565b600082131561463e5761463e610982600184614dda565b6f800000000000000000000000000000006f1000000000000000000000000000000083078080028290056710e1b3be415a0000810293909301929091818302059050806705a0913f6b1e000002830192506f80000000000000000000000000000000828202816146aa57fe5b05905080670168244fdac7800002830192506f80000000000000000000000000000000828202816146d757fe5b05905080664807432bc1800002830192506f800000000000000000000000000000008282028161470357fe5b05905080660c0135dca0400002830192506f800000000000000000000000000000008282028161472f57fe5b059050806601b707b1cdc00002830192506f800000000000000000000000000000008282028161475b57fe5b059050806536e0f639b80002830192506f800000000000000000000000000000008282028161478657fe5b05905080650618fee9f80002830192506f80000000000000000000000000000000828202816147b157fe5b05905080649c197dcc0002830192506f80000000000000000000000000000000828202816147db57fe5b05905080640e30dce40002830192506f800000000000000000000000000000008282028161480557fe5b0590508064012ebd130002830192506f800000000000000000000000000000008282028161482f57fe5b059050806317499f0002830192506f800000000000000000000000000000008282028161485857fe5b059050806301a9d48002830192506f800000000000000000000000000000008282028161488157fe5b05905080621c638002830192506f80000000000000000000000000000000828202816148a957fe5b059050806201c63802830192506f80000000000000000000000000000000828202816148d157fe5b05905080611ab802830192506f80000000000000000000000000000000828202816148f857fe5b0590508061017c02830192506f800000000000000000000000000000008282028161491f57fe5b05905080601402830192506f800000000000000000000000000000008282028161494557fe5b600095909503946721c3677c82b400009190059384010582016f80000000000000000000000000000000019290507010000000000000000000000000000000008416156149b4577243cbaf42a000812488fc5c220ad7b97bf6e99e6cf1aaddd7742e56d32fb9f9974484020592505b7008000000000000000000000000000000008416156149f6577105d27a9f51c31b7c2f8038212a05747799916e0afe10820813d65dfe6a33c07f738f84020592505b700400000000000000000000000000000000841615614a3857701b4c902e273a58678d6d3bfdb93db96d026f02582ab704279e8efd15e0265855c47a84020592505b700200000000000000000000000000000000841615614a7a577003b1cc971a9bb5b9867477440d6d1577506f1152aaa3bf81cb9fdb76eae12d02957184020592505b700100000000000000000000000000000000841615614abc5770015bf0a8b1457695355fb8ac404e7a79e36f2f16ac6c59de6f8d5d6f63c1482a7c8684020592505b6f80000000000000000000000000000000841615614afc576fd3094c70f034de4b96ff7d5b6f99fcd86f4da2cbf1be5827f9eb3ad1aa9866ebb384020592505b6f40000000000000000000000000000000841615614b3c576fa45af1e1f40c333b3de1db4dd55f29a76f63afbe7ab2082ba1a0ae5e4eb1b479dc84020592505b6f20000000000000000000000000000000841615614b7c576f910b022db7ae67ce76b441c27035c6a16f70f5a893b608861e1f58934f97aea57d84020592505b6f10000000000000000000000000000000841615614bbc576f88415abbe9a76bead8d00cf112e4d4a86f783eafef1c0a8f3978c7f81824d62ebf84020592505b5050919050565b60006f80000000000000000000000000000000614be08484614d06565b81614be757fe5b059392505050565b600080821215614c0757614c07610982600184614cc5565b6000614c138484614d06565b905060008113614c27576000915050610ea8565b607f1c9392505050565b60200151151590565b60008085614c4c575082905081614c93565b83614c5b575084905083614c93565b614c7e614c6e858763ffffffff613c5616565b61388d888663ffffffff613c5616565b9150614c90858463ffffffff613c5616565b90505b94509492505050565b600080614cba84846f80000000000000000000000000000000614e09565b915091509250929050565b60607fbd79545f00000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b836040516024016120c79291906155ed565b6000821580614d13575081155b15614d2057506000610ea8565b5081810281838281614d2e57fe5b05141580614d45575082828281614d4157fe5b0514155b15610ea857610ea861098260018585614e77565b600081614d6f57614d6f61098260028585614e77565b7f800000000000000000000000000000000000000000000000000000000000000083148015614dbd5750817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff145b15614dd157614dd161098260038585614e77565b818381614be757fe5b60607fed2f26a100000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b60008082851180614e1957508284115b15614e6e57600084861015614e2e5784614e30565b855b9050614e42818563ffffffff613c8716565b9050614e54868263ffffffff613c8716565b9250614e66858263ffffffff613c8716565b91505061303b565b50929391925050565b60607f8c12dfe700000000000000000000000000000000000000000000000000000000846003811115614ea657fe5b848460405160240161342893929190615600565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b60405180606001604052806000815260200160008152602001600081525090565b604080518082019091526000808252602082015290565b81548183558181111561118d5760008381526020902061118d918101908301614f7f565b604051806040016040528060008152602001600081525090565b610b5791905b80821115614f995760008155600101614f85565b5090565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ea857600080fd5b60006040828403121561238a578081fd5b600060208284031215614fe3578081fd5b610ea58383614f9d565b600080600060608486031215615001578182fd5b833561500c81615625565b9250602084013561501c81615625565b929592945050506040919091013590565b6000806040838503121561503f578182fd5b6150498484614f9d565b946020939093013593505050565b60008060408385031215615069578182fd5b6150738484614f9d565b9150602083013561508381615655565b809150509250929050565b60006020828403121561509f578081fd5b8151610ea581615647565b6000602082840312156150bb578081fd5b5035919050565b600080604083850312156150d4578182fd5b82359150602083013561508381615625565b600080604083850312156150f8578182fd5b50508035926020909101359150565b60008060408385031215615119578182fd5b82359150602083013563ffffffff81168114615083578182fd5b600060208284031215615144578081fd5b8135610ea581615655565b600080600060a08486031215615163578283fd5b61516d8585614fc1565b925061517c8560408601614fc1565b9150608084013590509250925092565b60006020828403121561519d578081fd5b5051919050565b600080600080600060a086880312156151bb578283fd5b8535945060208601356151cd81615662565b93506040860135925060608601356151e481615662565b915060808601356151f481615662565b809150509295509295909350565b60008060408385031215615214578182fd5b823561521f81615662565b9150602083013561508381615647565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561531c57835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016152e8565b509095945050505050565b901515815260200190565b90815260200190565b92835273ffffffffffffffffffffffffffffffffffffffff91909116602083015263ffffffff16604082015260600190565b9182521515602082015260400190565b918252602082015260400190565b606081016004851061539957fe5b938152602081019290925260409091015290565b60408101600384106153bb57fe5b9281526020015290565b604081016153d28461561b565b92815273ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b606081016154048561561b565b938152602081019290925263ffffffff1660409091015290565b60208082526013908201527f43525f494e54455256414c5f494e56414c494400000000000000000000000000604082015260600190565b60208082526014908201527f574554485f5452414e534645525f4641494c4544000000000000000000000000604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b815173ffffffffffffffffffffffffffffffffffffffff16815260209182015163ffffffff169181019190915260400190565b815167ffffffffffffffff1681526020808301516bffffffffffffffffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b948552602085019390935260408401919091526060830152608082015260a00190565b94855263ffffffff938416602086015260408501929092528216606084015216608082015260a00190565b92835260ff918216602084015216604082015260600190565b63ffffffff91909116815260200190565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b60ff929092168252602082015260400190565b60ff9390931683526020830191909152604082015260600190565b60028110610e4c57fe5b73ffffffffffffffffffffffffffffffffffffffff81168114610e4c57600080fd5b8015158114610e4c57600080fd5b60028110610e4c57600080fd5b63ffffffff81168114610e4c57600080fdfea365627a7a72315820352718cf5f2c91e8851fff746b6f2d10f8b5907f32fd611445054d1ea922cbe66c6578706572696d656e74616cf564736f6c634300050c0040" + "object": "0x6080604052600080546001600160a01b031916331790556156b7806100256000396000f3fe6080604052600436106103295760003560e01c80638da5cb5b116101a5578063bb7ef7e0116100ec578063e8eeb3f811610095578063f18765321161006f578063f1876532146108bf578063f252b7a1146108df578063f2fde38b146108ff578063ff691b111461091f57610329565b8063e8eeb3f814610875578063e907f0031461088a578063ee99205c146108aa57610329565b8063e0ee036e116100c6578063e0ee036e1461082b578063e1c7392a14610840578063e804d0a41461085557610329565b8063bb7ef7e0146107c9578063c18c9141146107e9578063d39de6e91461080957610329565b8063a694fc3a1161014e578063b3e3337911610128578063b3e3337914610769578063b510879f14610789578063b9181611146107a957610329565b8063a694fc3a1461071f578063b05315241461073f578063b2baa33e1461075457610329565b8063a26171e21161017f578063a26171e2146106e2578063a3b4a327146106f7578063a657e5791461070a57610329565b80638da5cb5b1461068d5780639ad26744146106a25780639c3ccc82146106c257610329565b80634bcc3f6711610274578063624a72321161021d57806370712939116101f757806370712939146106165780637667180814610636578063816667961461064b5780638a2e271a1461066d57610329565b8063624a7232146105cc57806363403801146105e157806368a7d6cd146105f657610329565b80635bd4ab731161024e5780635bd4ab73146105595780635d91121d146105865780635e615a6b146105a657610329565b80634bcc3f67146104f7578063587da0231461052457806358f6c7e31461053957610329565b80633c277fc5116102d657806344a6958b116102b057806344a6958b1461048a57806346b97959146104aa578063494503d4146104d757610329565b80633c277fc51461041b5780633e4ad7321461043d57806342f1181e1461046a57610329565b80632a94c279116103075780632a94c2791461039b5780632e17de78146103ca57806338229d93146103ea57610329565b806301e28d841461032e5780630b9663db146103505780631e7ff8f61461037b575b600080fd5b34801561033a57600080fd5b5061034e610349366004614fd2565b61093f565b005b34801561035c57600080fd5b50610365610a0d565b6040516103729190615332565b60405180910390f35b34801561038757600080fd5b50610365610396366004614fd2565b610b5a565b3480156103a757600080fd5b506103bb6103b63660046150e6565b610bf4565b6040516103729392919061551f565b3480156103d657600080fd5b5061034e6103e53660046150aa565b610c20565b3480156103f657600080fd5b5061040a6104053660046150aa565b610dd5565b604051610372959493929190615550565b34801561042757600080fd5b50610430610e04565b604051610372919061522f565b34801561044957600080fd5b5061045d6104583660046150aa565b610e1c565b60405161037291906154e0565b34801561047657600080fd5b5061034e610485366004614fd2565b610e3b565b34801561049657600080fd5b5061045d6104a5366004615057565b610e4f565b3480156104b657600080fd5b506104ca6104c53660046150aa565b610eae565b604051610372919061548c565b3480156104e357600080fd5b506104306104f23660046150aa565b610ef9565b34801561050357600080fd5b506105176105123660046150aa565b610f2d565b60405161037291906154ad565b34801561053057600080fd5b50610365610f8f565b34801561054557600080fd5b5061034e61055436600461514f565b610f95565b34801561056557600080fd5b50610579610574366004614fd2565b611192565b6040516103729190615327565b34801561059257600080fd5b5061034e6105a1366004615107565b6111a7565b3480156105b257600080fd5b506105bb611270565b604051610372959493929190615573565b3480156105d857600080fd5b50610430611299565b3480156105ed57600080fd5b506103656112b1565b34801561060257600080fd5b50610365610611366004615202565b6112b7565b34801561062257600080fd5b5061034e610631366004614fd2565b6113f0565b34801561064257600080fd5b506103656114a5565b34801561065757600080fd5b506106606114ab565b60405161037291906155b7565b34801561067957600080fd5b5061034e610688366004614fd2565b6114b7565b34801561069957600080fd5b50610430611579565b3480156106ae57600080fd5b5061034e6106bd36600461502d565b611595565b3480156106ce57600080fd5b5061034e6106dd3660046151a4565b6115a7565b3480156106ee57600080fd5b50610365611621565b61034e610705366004614fed565b611627565b34801561071657600080fd5b50610365611877565b34801561072b57600080fd5b5061034e61073a3660046150aa565b61187d565b34801561074b57600080fd5b50610365611992565b34801561076057600080fd5b50610365611998565b34801561077557600080fd5b5061034e6107843660046150aa565b6119b6565b34801561079557600080fd5b5061034e6107a43660046150aa565b6119f6565b3480156107b557600080fd5b506105796107c4366004614fd2565b611a00565b3480156107d557600080fd5b506103656107e43660046150aa565b611a15565b3480156107f557600080fd5b506103656108043660046150aa565b611aa0565b34801561081557600080fd5b5061081e611ab2565b60405161037291906152ce565b34801561083757600080fd5b50610660611b21565b34801561084c57600080fd5b5061034e611b2d565b34801561086157600080fd5b5061045d610870366004615133565b611b47565b34801561088157600080fd5b50610660611c97565b34801561089657600080fd5b506103656108a53660046150c2565b611cab565b3480156108b657600080fd5b50610430611d48565b3480156108cb57600080fd5b506103656108da366004614fd2565b611d64565b3480156108eb57600080fd5b5061045d6108fa36600461502d565b611d76565b34801561090b57600080fd5b5061034e61091a366004614fd2565b611db7565b34801561092b57600080fd5b5061034e61093a3660046150aa565b611e5a565b610947612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16610987576109876109826001836120aa565b61214c565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb90610a0290839061522f565b60405180910390a150565b600c5460009081610a2582600163ffffffff61215416565b6000818152601660205260409020600101549091508015610a4d57610a4d6109828383612173565b610a55612190565b610a5d612203565b600084815260166020526040902055610a74614eba565b50600083815260166020908152604091829020825160a08101845281548082526001830154938201849052600283015482860181905260038401546060840181905260049094015460808401529451919488947fbb4a26fa0ace13ee4da343896c20eaa44a618fb9071fdd8c2e2c960a4583189d94610af69491939291615535565b60405180910390a2610b066122a7565b6020810151610b4d57805160405185917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291610b449160009161537d565b60405180910390a25b6020015193505050505b90565b6000610b64611299565b73ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610b9c919061522f565b60206040518083038186803b158015610bb457600080fd5b505afa158015610bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bec919081019061518c565b90505b919050565b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b33610c29614ee9565b73ffffffffffffffffffffffffffffffffffffffff821660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610c76906122ea565b90506000610ca882602001516bffffffffffffffffffffffff1683604001516bffffffffffffffffffffffff16612390565b905080841115610cbf57610cbf61098285836123a6565b73ffffffffffffffffffffffffffffffffffffffff831660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610d0d90856123c3565b610d15611299565b73ffffffffffffffffffffffffffffffffffffffff16639470b0bd84866040518363ffffffff1660e01b8152600401610d4f9291906152a8565b600060405180830381600087803b158015610d6957600080fd5b505af1158015610d7d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd85604051610dc79190615332565b60405180910390a250505050565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b610e24614ee9565b6000828152600760205260409020610bec906122ea565b610e4361244a565b610e4c81612491565b50565b610e57614ee9565b610ea560056000846001811115610e6a57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff8816825290925290206122ea565b90505b92915050565b610eb6614f09565b506000908152601560209081526040808320600c548452825291829020825160608101845281548152600182015492810192909252600201549181019190915290565b60028181548110610f0657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610f35614f2a565b506000908152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff169082015290565b600d5481565b3381610fa1575061118d565b6000610fb06020860186615133565b6001811115610fbb57fe5b148015610fdf57506000610fd26020850185615133565b6001811115610fdd57fe5b145b15610fea575061118d565b6001610ff96020860186615133565b600181111561100457fe5b141561101957611019846020013582846125c2565b60016110286020850185615133565b600181111561103357fe5b1415611048576110488360200135828461265b565b600060058161105a6020880188615133565b600181111561106557fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff86168252835290812092509060059082906110af90880188615133565b60018111156110ba57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff87168252909252902090506110fd8282866126f4565b60208086013590870180359073ffffffffffffffffffffffffffffffffffffffff8616907f7d3ad1dcf03b9027064d1d9a474a69e0cecc31324c541d3eb9b5e6fa2f106c8d90889061114f908c615133565b600181111561115a57fe5b61116760208c018c615133565b600181111561117257fe5b6040516111819392919061559e565b60405180910390a45050505b505050565b60106020526000908152604090205460ff1681565b816111b1816127ed565b6000838152600a602052604090205474010000000000000000000000000000000000000000900463ffffffff166111e9848285612826565b6000848152600a60205260409081902080547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8716021790555184907f8ea2a7a959bd25f226b7b0a4393613f7fdcaa8404e8bad96aa52dc1c1459016790610dc790849087906155c8565b601154601254601354601454929363ffffffff9283169391928281169264010000000090041690565b73ba7f8b5fb1b19c1211c5d49550fcd149177a5eaf90565b60115481565b60085460009033906112d090600163ffffffff61286e16565b600881905591506112e582620f424086612826565b6112ed614f2a565b5060408051808201825273ffffffffffffffffffffffffffffffffffffffff838116825263ffffffff87811660208085019182526000888152600a9091528590208451815492517fffffffffffffffffffffffff00000000000000000000000000000000000000009093169416939093177fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000919092160217905590517fcec6fc86ea644053f6edff1160dfe3fa5c61e7a5ef9f873f145bb03a0bd319e7906113d19085908590899061533b565b60405180910390a183156113e8576113e8836119b6565b505092915050565b6113f861244a565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16611431576114316109828261288a565b60005b6002548110156114a1578173ffffffffffffffffffffffffffffffffffffffff166002828154811061146257fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611499576114948282612929565b6114a1565b600101611434565b5050565b600c5481565b60145463ffffffff1681565b6114bf612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16156114fb576114fb6109826000836120aa565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e190610a0290839061522f565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61159d61244a565b6114a18282612929565b6115af612087565b6115bc8585858585612b78565b3073ffffffffffffffffffffffffffffffffffffffff1663c6f3a4276040518163ffffffff1660e01b815260040160006040518083038186803b15801561160257600080fd5b505afa158015611616573d6000803e3d6000fd5b505050505050505050565b60135481565b3360009081526010602052604090205460ff1661164a5761164a61098233612c3b565b61165381612c56565b3461172d57611660610e04565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd8330846040518463ffffffff1660e01b815260040161169c93929190615277565b602060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116ee919081019061508e565b61172d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172490615455565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600960205260409020548061175e575061118d565b600061176982610e1c565b602001516bffffffffffffffffffffffff16905060135481101561178e57505061118d565b600c5460008381526015602090815260408083208484528252808320601690925290912081548061183d576000806117c68888612c77565b6002870182905560018701819055600386015491935091506117ee908263ffffffff61286e16565b60038501556001808501546118089163ffffffff61286e16565b6001850155604051889087907f14b098103235344975b17508c2391721cc9ac3f3fa2b56c7ff46f8480dfd074f90600090a350505b61184d818863ffffffff61286e16565b83556002820154611864908863ffffffff61286e16565b8260020181905550505050505050505050565b60085481565b33611886611299565b73ffffffffffffffffffffffffffffffffffffffff166315cc36f282846040518363ffffffff1660e01b81526004016118c09291906152a8565b600060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff811660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604090206119409083612d03565b8073ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a836040516119869190615332565b60405180910390a25050565b60175481565b60006119b1601154600d5461286e90919063ffffffff16565b905090565b3360008181526009602052604080822084905551839183917f5640833634fce74eb9211d1209a91dd5a1c8c6a751696bff9323b4db67f815139190a35050565b610e4c8133612d6d565b60016020526000908152604090205460ff1681565b6000611a1f614f2a565b506000828152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611a8385612f45565b91509150611a9683602001518383613002565b5095945050505050565b600b6020526000908152604090205481565b60606002805480602002602001604051908101604052809291908181526020018280548015611b1757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611aec575b5050505050905090565b60125463ffffffff1681565b611b35612087565b611b3d613043565b611b45613056565b565b611b4f614ee9565b60016000526004602052611b827fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe056122ea565b90506000826001811115611b9257fe5b1415610bef576000611ba2611299565b73ffffffffffffffffffffffffffffffffffffffff16639706e0c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611be757600080fd5b505afa158015611bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c1f919081019061518c565b9050611c4e611c4983602001516bffffffffffffffffffffffff168361215490919063ffffffff16565b613081565b6bffffffffffffffffffffffff90811660208401526040830151611c7e91611c499184911663ffffffff61215416565b6bffffffffffffffffffffffff16604083015250919050565b601454640100000000900463ffffffff1681565b6000611cb5614f2a565b506000838152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611d1986612f45565b915091506000611d2e84602001518484613002565b915050611d3d878783856130a5565b979650505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b611d7e614ee9565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208584529091529020610ea5906122ea565b611dbf61244a565b73ffffffffffffffffffffffffffffffffffffffff8116611dea57611de56109826131f2565b610e4c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600c546000611e7082600163ffffffff61215416565b9050611e7a614eba565b50600081815260166020908152604091829020825160a08101845281548152600182015492810183905260028201549381019390935260038101546060840152600401546080830152611ecf57505050610e4c565b611ed7614f09565b5060008481526015602090815260408083208584528252918290208251606081018452815480825260018301549382019390935260029091015492810192909252611f255750505050610e4c565b6000858152601560209081526040808320868452909152812081815560018101829055600201819055611f588284613229565b9050600080611f6c8884866040015161329e565b9150915087877ff1116b309178aa62dcb6bf8c3b8bc2321724907c7ebf52192d14c8ce3aa9194c8484604051611fa392919061537d565b60405180910390a36000611fbd838363ffffffff61286e16565b6080870151909150611fd5908263ffffffff61286e16565b6080870181905260008881526016602090815260409091206004019190915586015161200890600163ffffffff61215416565b602080880182815260008a8152601690925260409091206001019190915551611616576080860151865188917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291612066908263ffffffff61215416565b60405161207492919061537d565b60405180910390a2505050505050505050565b3360009081526001602052604090205460ff16611b4557611b45610982336133ee565b606063b9588e4360e01b83836040516024016120c79291906153c5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b805160208201fd5b60008282111561216d5761216d61098260028585613409565b50900390565b606063614b800a60e01b83836040516024016120c792919061537d565b30318015610e4c576121a0610e04565b73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156121e757600080fd5b505af11580156121fb573d6000803e3d6000fd5b505050505050565b60006119b1601754612213610e04565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161224b919061522f565b60206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061229b919081019061518c565b9063ffffffff61215416565b4260006122b2611998565b9050818111156122c9576122c961098282846134ae565b600c546000906122e090600163ffffffff61286e16565b600c555050600d55565b6122f2614ee9565b5060408051606081018252825467ffffffffffffffff81168083526bffffffffffffffffffffffff680100000000000000008304811660208501527401000000000000000000000000000000000000000090920490911692820192909252600c54909181111561238a57612365816134cb565b67ffffffffffffffff16825260408201516bffffffffffffffffffffffff1660208301525b50919050565b600081831061239f5781610ea5565b5090919050565b60606384c8b7c960e01b83836040516024016120c792919061537d565b6123cb614ee9565b6123d4836122ea565b90506123fe611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61215416565b6bffffffffffffffffffffffff16602082015261118d83826134eb565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b4557600054611b459061098290339073ffffffffffffffffffffffffffffffffffffffff166135a5565b73ffffffffffffffffffffffffffffffffffffffff81166124b7576124b76109826135c2565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156124f1576124f1610982826135f9565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6125cb83613614565b6125d58383612d6d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600660209081526040808320868452909152902061260f908261364b565b6000838152600760205260409020612627908261364b565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe058261364b565b61266483613614565b61266e8383612d6d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260066020908152604080832086845290915290206126a890826136a3565b60008381526007602052604090206126c090826136a3565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe05826136a3565b6126fe83836136de565b156127085761118d565b612710614ee9565b612719846122ea565b9050612723614ee9565b61272c846122ea565b905081604001516bffffffffffffffffffffffff16831115612767576127676109828484604001516bffffffffffffffffffffffff166123a6565b604082015161278e90611c49906bffffffffffffffffffffffff168563ffffffff61215416565b6bffffffffffffffffffffffff9081166040808501919091528201516127bf91611c4991168563ffffffff61286e16565b6bffffffffffffffffffffffff1660408201526127dc85836134eb565b6127e684826134eb565b5050505050565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff163381146114a1576114a161098233846136e5565b620f424063ffffffff8216111561284b5761284661098260008584613702565b61118d565b8163ffffffff168163ffffffff16111561118d5761118d61098260018584613702565b600082820183811015610ea557610ea561098260008686613409565b606063eb5108a260e01b826040516024016128a5919061522f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16612962576129626109828361288a565b600254811061297d5761297d61098282600280549050613721565b8173ffffffffffffffffffffffffffffffffffffffff16600282815481106129a157fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614612a0357612a03610982600283815481106129db57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461373e565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110612a7e57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110612ab157fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190612b309082614f41565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60118590556012805463ffffffff8087167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000092831617909255601385905560148054848416640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9487169190931617929092161790556040517f613157dbb0e920deab8ad6ddd3805e87cbf57344b9fe780f1764790ec789754290612c2c9087908790879087908790615573565b60405180910390a15050505050565b606063b56d2df060e01b826040516024016128a5919061522f565b803414158015612c6557503415155b15610e4c57610e4c610982823461375b565b6000828152600a602052604081205481908190612caa9073ffffffffffffffffffffffffffffffffffffffff1686611d76565b602001516bffffffffffffffffffffffff169050612cce848263ffffffff61215416565b601254909350612cf990612cec9063ffffffff16620f424086613778565b829063ffffffff61286e16565b9150509250929050565b612d0b614ee9565b612d14836122ea565b9050612d3e611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61286e16565b612d768261379a565b6000612d8583836000806130a5565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208784529091529020909150612dc1906122ea565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600660209081526040808320888452825291829020845181549286015195909301517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921667ffffffffffffffff909316929092177fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff16680100000000000000006bffffffffffffffffffffffff95861602179092167401000000000000000000000000000000000000000093909216929092021790558015612f3c57612ea6838261380e565b612eae610e04565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612ee89291906152a8565b602060405180830381600087803b158015612f0257600080fd5b505af1158015612f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f3a919081019061508e565b505b61118d83613856565b6000806000612f606001600c5461215490919063ffffffff16565b9050612f6a614f09565b50600084815260156020908152604080832084845282528083208151606080820184528254825260018084015483870152600293840154838601528787526016865295849020845160a0810186528154815296810154958701959095529184015492850192909252600383015490840152600490910154608083015290612ff2908290613229565b9350806040015192505050915091565b600080826130125783915061303b565b61302663ffffffff8616620f424086613863565b9150613038848363ffffffff61215416565b90505b935093915050565b61304b613899565b42600d556001600c55565b61305e6138ae565b620d2f00620dbba068056bc75e2d63100000600260036127e68585858585612b78565b806bffffffffffffffffffffffff81168114610bef57610bef610982600284613913565b600c546000906130b3614ee9565b5073ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083208984528252918290208251606081018452905467ffffffffffffffff81168083526bffffffffffffffffffffffff6801000000000000000083048116948401949094527401000000000000000000000000000000000000000090910490921692810192909252821415613154576000925050506131ea565b61316081838787613930565b81519093506000906131839067ffffffffffffffff16600163ffffffff61286e16565b90506131c16131b48984602001516bffffffffffffffffffffffff16856000015167ffffffffffffffff16856139b3565b859063ffffffff61286e16565b93506131e46131b48984604001516bffffffffffffffffffffffff1684876139b3565b93505050505b949350505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b815160009061323757610ea8565b8151835160408401516020860151606086015160145461326d95949392919063ffffffff80821691640100000000900416613a4c565b608083015183519192506000916132899163ffffffff61215416565b905081811015613297578091505b5092915050565b6000806132a9614f2a565b506000858152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff1690820181905261330d908686613002565b909350915082156133ca57613320610e04565b81516040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092169163a9059cbb916133769187906004016152a8565b602060405180830381600087803b15801561339057600080fd5b505af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133c8919081019061508e565b505b81156133e5576133da8683613b0f565b6133e5868386613b50565b50935093915050565b606063b65a25b960e01b826040516024016128a5919061522f565b606063e946c1bb60e01b8484846040516024016134289392919061538b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063a6bcde4760e01b83836040516024016120c792919061537d565b8067ffffffffffffffff81168114610bef57610bef610982600184613913565b8051825460408301516020909301516bffffffffffffffffffffffff90811668010000000000000000027fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff91909416740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff9094167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090931692909217929092161716179055565b6060631de45ad160e01b83836040516024016120c7929190615250565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016128a5919061522f565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff16610e4c57610e4c610982826000613c39565b613653614ee9565b61365c836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff16604082015261118d83826134eb565b6136ab614ee9565b6136b4836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b1460011690565b60606382ded78560e01b83836040516024016120c79291906152a8565b60606322df959760e01b848484604051602401613428939291906153f7565b606063e9f8377160e01b83836040516024016120c792919061537d565b606063140a84db60e01b83836040516024016120c7929190615250565b60606331d7a50560e01b83836040516024016120c792919061537d565b60006131ea8361378e868563ffffffff613c5616565b9063ffffffff613c8716565b600c546000906137b190600163ffffffff61215416565b90506137bb614f09565b50600082815260156020908152604080832084845282529182902082516060810184528154808252600183015493820193909352600290910154928101929092521561118d5761118d6109828484613cb1565b6000828152600b602052604090205461382d908263ffffffff61215416565b6000838152600b602052604090205560175461384f908263ffffffff61215416565b6017555050565b610e4c8160006001613b50565b60006131ea8361378e61387d82600163ffffffff61215416565b61388d888763ffffffff613c5616565b9063ffffffff61286e16565b600d5415611b4557611b456109826000613cce565b601154158015906138c6575060125463ffffffff1615155b80156138d3575060135415155b80156138e6575060145463ffffffff1615155b80156139015750601454640100000000900463ffffffff1615155b15611b4557611b456109826001613cce565b606063c996af7b60e01b83836040516024016120c79291906153ad565b600082158061393d575081155b1561394a575060006131ea565b600061395d85600163ffffffff61215416565b865167ffffffffffffffff16101561397957856040015161397f565b85602001515b6bffffffffffffffffffffffff1690508061399e5760009150506131ea565b6139a9848483613778565b9695505050505050565b60008315806139c157508183145b156139ce575060006131ea565b818310613a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117249061541e565b613a0f614f65565b613a198685613d0d565b9050613a23614f65565b613a2d8785613d0d565b9050611d3d81600001518260200151846000015185602001518a613e2b565b600080613a598888613eb7565b90506000613a678787613eb7565b9050811580613a74575080155b15613a85575060009150611d3d9050565b600081831315613a9e57613a998284613f09565b613aa8565b613aa88383613f09565b9050613ad1613acc613ab983613f28565b8863ffffffff168863ffffffff166145ca565b6145d9565b905081831315613aea57613ae58282613f09565b613af4565b613af48282614bc3565b9050613b00818c614bef565b9b9a5050505050505050505050565b6000828152600b6020526040902054613b2e908263ffffffff61286e16565b6000838152600b602052604090205560175461384f908263ffffffff61286e16565b6000838152600f6020526040902054600c5480821415613b7157505061118d565b613b79614f65565b506000858152600e602090815260408083208584528252918290208251808401909352805483526001015490820152613bb0614f65565b613bb982614c31565b15613bf257613bd2826000015183602001518888614c3a565b60208301819052818352613be69190614c9c565b60208301528152613bfd565b602081018590528581525b6000878152600e6020908152604080832086845282528083208451815593820151600190940193909355978152600f9097529095205550505050565b6060639ae94f0160e01b83836040516024016120c792919061536d565b600082613c6557506000610ea8565b82820282848281613c7257fe5b0414610ea557610ea561098260018686613409565b600081613c9d57613c9d61098260038585613409565b6000828481613ca857fe5b04949350505050565b6060635caa0b0560e01b83836040516024016120c792919061537d565b60607f0b02d77300000000000000000000000000000000000000000000000000000000826001811115613cfd57fe5b6040516024016128a591906155df565b613d15614f65565b506000828152600e602090815260408083208484528252918290208251808401909352805483526001015490820152613d4d81614c31565b15613d5757610ea8565b6000613d6a83600163ffffffff61215416565b6000858152600e60209081526040808320848452825291829020825180840190935280548352600101549082015292509050613da582614c31565b15613db05750610ea8565b6000848152600f602052604090205483811015613e0d576000858152600e6020908152604080832084845282529182902082518084019093528054835260010154908201529250613e0083614c31565b15613e0d5750610ea89050565b50506040805180820190915260008152600160208201529392505050565b600081613e3a57506000613eae565b83613e5a57613e538561378e848963ffffffff613c5616565b9050613eae565b6000613e7f613e6f868863ffffffff613c5616565b61229b898763ffffffff613c5616565b90506000613e93828663ffffffff613c8716565b9050613ea98761378e868463ffffffff613c5616565b925050505b95945050505050565b600080831215613ecf57613ecf610982600185614cc5565b6000821215613ee657613ee6610982600184614cc5565b610ea5613f03846f80000000000000000000000000000000614d06565b83614d59565b6000610ea5613f03846f80000000000000000000000000000000614d06565b60006f80000000000000000000000000000000821315613f5057613f50610982600184614dda565b60008213613f6657613f66610982600084614dda565b6f80000000000000000000000000000000821415613f8657506000610bef565b640733048c5a8213613fb957507fffffffffffffffffffffffffffffffe010000000000000000000000000000000610bef565b60008060006a01c8464f761647600000008513614018577ffffffffffffffffffffffffffffffff000000000000000000000000000000000909301926a01c8464f761647600000006f8000000000000000000000000000000086020594505b6cf1aaddd7742e900000000000008513614076577ffffffffffffffffffffffffffffffff800000000000000000000000000000000909301926cf1aaddd7742e900000000000006f8000000000000000000000000000000086020594505b6e0afe10820813d7800000000000000085136140d8577ffffffffffffffffffffffffffffffffc00000000000000000000000000000000909301926e0afe10820813d780000000000000006f8000000000000000000000000000000086020594505b6f02582ab704279ec00000000000000000851361413c577ffffffffffffffffffffffffffffffffe00000000000000000000000000000000909301926f02582ab704279ec000000000000000006f8000000000000000000000000000000086020594505b6f1152aaa3bf81cc00000000000000000085136141a0577fffffffffffffffffffffffffffffffff00000000000000000000000000000000909301926f1152aaa3bf81cc0000000000000000006f8000000000000000000000000000000086020594505b6f2f16ac6c59de700000000000000000008513614204577fffffffffffffffffffffffffffffffff80000000000000000000000000000000909301926f2f16ac6c59de700000000000000000006f8000000000000000000000000000000086020594505b6f4da2cbf1be58280000000000000000008513614268577fffffffffffffffffffffffffffffffffc0000000000000000000000000000000909301926f4da2cbf1be58280000000000000000006f8000000000000000000000000000000086020594505b6f63afbe7ab2082c00000000000000000085136142cc577fffffffffffffffffffffffffffffffffe0000000000000000000000000000000909301926f63afbe7ab2082c0000000000000000006f8000000000000000000000000000000086020594505b6f70f5a893b608861e1f58934f97aea57d8513614330577ffffffffffffffffffffffffffffffffff0000000000000000000000000000000909301926f70f5a893b608861e1f58934f97aea57d6f8000000000000000000000000000000086020594505b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000850192508291506f80000000000000000000000000000000828002059050700100000000000000000000000000000000838103830205840193506f80000000000000000000000000000000818302816143a657fe5b059150700200000000000000000000000000000000836faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa038302816143d757fe5b05840193506f80000000000000000000000000000000818302816143f757fe5b059150700300000000000000000000000000000000836f999999999999999999999999999999990383028161442857fe5b05840193506f800000000000000000000000000000008183028161444857fe5b059150700400000000000000000000000000000000836f924924924924924924924924924924920383028161447957fe5b05840193506f800000000000000000000000000000008183028161449957fe5b059150700500000000000000000000000000000000836f8e38e38e38e38e38e38e38e38e38e38e038302816144ca57fe5b05840193506f80000000000000000000000000000000818302816144ea57fe5b059150700600000000000000000000000000000000836f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b0383028161451b57fe5b05840193506f800000000000000000000000000000008183028161453b57fe5b059150700700000000000000000000000000000000836f89d89d89d89d89d89d89d89d89d89d890383028161456c57fe5b05840193506f800000000000000000000000000000008183028161458c57fe5b059150700800000000000000000000000000000000836f88888888888888888888888888888888038302816145bd57fe5b0584019350505050919050565b60006131ea613f038585614d06565b60007fffffffffffffffffffffffffffffffe01000000000000000000000000000000082121561460b57506000610bef565b8161462757506f80000000000000000000000000000000610bef565b600082131561463e5761463e610982600184614dda565b6f800000000000000000000000000000006f1000000000000000000000000000000083078080028290056710e1b3be415a0000810293909301929091818302059050806705a0913f6b1e000002830192506f80000000000000000000000000000000828202816146aa57fe5b05905080670168244fdac7800002830192506f80000000000000000000000000000000828202816146d757fe5b05905080664807432bc1800002830192506f800000000000000000000000000000008282028161470357fe5b05905080660c0135dca0400002830192506f800000000000000000000000000000008282028161472f57fe5b059050806601b707b1cdc00002830192506f800000000000000000000000000000008282028161475b57fe5b059050806536e0f639b80002830192506f800000000000000000000000000000008282028161478657fe5b05905080650618fee9f80002830192506f80000000000000000000000000000000828202816147b157fe5b05905080649c197dcc0002830192506f80000000000000000000000000000000828202816147db57fe5b05905080640e30dce40002830192506f800000000000000000000000000000008282028161480557fe5b0590508064012ebd130002830192506f800000000000000000000000000000008282028161482f57fe5b059050806317499f0002830192506f800000000000000000000000000000008282028161485857fe5b059050806301a9d48002830192506f800000000000000000000000000000008282028161488157fe5b05905080621c638002830192506f80000000000000000000000000000000828202816148a957fe5b059050806201c63802830192506f80000000000000000000000000000000828202816148d157fe5b05905080611ab802830192506f80000000000000000000000000000000828202816148f857fe5b0590508061017c02830192506f800000000000000000000000000000008282028161491f57fe5b05905080601402830192506f800000000000000000000000000000008282028161494557fe5b600095909503946721c3677c82b400009190059384010582016f80000000000000000000000000000000019290507010000000000000000000000000000000008416156149b4577243cbaf42a000812488fc5c220ad7b97bf6e99e6cf1aaddd7742e56d32fb9f9974484020592505b7008000000000000000000000000000000008416156149f6577105d27a9f51c31b7c2f8038212a05747799916e0afe10820813d65dfe6a33c07f738f84020592505b700400000000000000000000000000000000841615614a3857701b4c902e273a58678d6d3bfdb93db96d026f02582ab704279e8efd15e0265855c47a84020592505b700200000000000000000000000000000000841615614a7a577003b1cc971a9bb5b9867477440d6d1577506f1152aaa3bf81cb9fdb76eae12d02957184020592505b700100000000000000000000000000000000841615614abc5770015bf0a8b1457695355fb8ac404e7a79e36f2f16ac6c59de6f8d5d6f63c1482a7c8684020592505b6f80000000000000000000000000000000841615614afc576fd3094c70f034de4b96ff7d5b6f99fcd86f4da2cbf1be5827f9eb3ad1aa9866ebb384020592505b6f40000000000000000000000000000000841615614b3c576fa45af1e1f40c333b3de1db4dd55f29a76f63afbe7ab2082ba1a0ae5e4eb1b479dc84020592505b6f20000000000000000000000000000000841615614b7c576f910b022db7ae67ce76b441c27035c6a16f70f5a893b608861e1f58934f97aea57d84020592505b6f10000000000000000000000000000000841615614bbc576f88415abbe9a76bead8d00cf112e4d4a86f783eafef1c0a8f3978c7f81824d62ebf84020592505b5050919050565b60006f80000000000000000000000000000000614be08484614d06565b81614be757fe5b059392505050565b600080821215614c0757614c07610982600184614cc5565b6000614c138484614d06565b905060008113614c27576000915050610ea8565b607f1c9392505050565b60200151151590565b60008085614c4c575082905081614c93565b83614c5b575084905083614c93565b614c7e614c6e858763ffffffff613c5616565b61388d888663ffffffff613c5616565b9150614c90858463ffffffff613c5616565b90505b94509492505050565b600080614cba84846f80000000000000000000000000000000614e09565b915091509250929050565b60607fbd79545f00000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b836040516024016120c79291906155ed565b6000821580614d13575081155b15614d2057506000610ea8565b5081810281838281614d2e57fe5b05141580614d45575082828281614d4157fe5b0514155b15610ea857610ea861098260018585614e77565b600081614d6f57614d6f61098260028585614e77565b7f800000000000000000000000000000000000000000000000000000000000000083148015614dbd5750817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff145b15614dd157614dd161098260038585614e77565b818381614be757fe5b60607fed2f26a100000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b60008082851180614e1957508284115b15614e6e57600084861015614e2e5784614e30565b855b9050614e42818563ffffffff613c8716565b9050614e54868263ffffffff613c8716565b9250614e66858263ffffffff613c8716565b91505061303b565b50929391925050565b60607f8c12dfe700000000000000000000000000000000000000000000000000000000846003811115614ea657fe5b848460405160240161342893929190615600565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b60405180606001604052806000815260200160008152602001600081525090565b604080518082019091526000808252602082015290565b81548183558181111561118d5760008381526020902061118d918101908301614f7f565b604051806040016040528060008152602001600081525090565b610b5791905b80821115614f995760008155600101614f85565b5090565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ea857600080fd5b60006040828403121561238a578081fd5b600060208284031215614fe3578081fd5b610ea58383614f9d565b600080600060608486031215615001578182fd5b833561500c81615625565b9250602084013561501c81615625565b929592945050506040919091013590565b6000806040838503121561503f578182fd5b6150498484614f9d565b946020939093013593505050565b60008060408385031215615069578182fd5b6150738484614f9d565b9150602083013561508381615655565b809150509250929050565b60006020828403121561509f578081fd5b8151610ea581615647565b6000602082840312156150bb578081fd5b5035919050565b600080604083850312156150d4578182fd5b82359150602083013561508381615625565b600080604083850312156150f8578182fd5b50508035926020909101359150565b60008060408385031215615119578182fd5b82359150602083013563ffffffff81168114615083578182fd5b600060208284031215615144578081fd5b8135610ea581615655565b600080600060a08486031215615163578283fd5b61516d8585614fc1565b925061517c8560408601614fc1565b9150608084013590509250925092565b60006020828403121561519d578081fd5b5051919050565b600080600080600060a086880312156151bb578283fd5b8535945060208601356151cd81615662565b93506040860135925060608601356151e481615662565b915060808601356151f481615662565b809150509295509295909350565b60008060408385031215615214578182fd5b823561521f81615662565b9150602083013561508381615647565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561531c57835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016152e8565b509095945050505050565b901515815260200190565b90815260200190565b92835273ffffffffffffffffffffffffffffffffffffffff91909116602083015263ffffffff16604082015260600190565b9182521515602082015260400190565b918252602082015260400190565b606081016004851061539957fe5b938152602081019290925260409091015290565b60408101600384106153bb57fe5b9281526020015290565b604081016153d28461561b565b92815273ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b606081016154048561561b565b938152602081019290925263ffffffff1660409091015290565b60208082526013908201527f43525f494e54455256414c5f494e56414c494400000000000000000000000000604082015260600190565b60208082526014908201527f574554485f5452414e534645525f4641494c4544000000000000000000000000604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b815173ffffffffffffffffffffffffffffffffffffffff16815260209182015163ffffffff169181019190915260400190565b815167ffffffffffffffff1681526020808301516bffffffffffffffffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b948552602085019390935260408401919091526060830152608082015260a00190565b94855263ffffffff938416602086015260408501929092528216606084015216608082015260a00190565b92835260ff918216602084015216604082015260600190565b63ffffffff91909116815260200190565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b60ff929092168252602082015260400190565b60ff9390931683526020830191909152604082015260600190565b60028110610e4c57fe5b73ffffffffffffffffffffffffffffffffffffffff81168114610e4c57600080fd5b8015158114610e4c57600080fd5b60028110610e4c57600080fd5b63ffffffff81168114610e4c57600080fdfea365627a7a72315820aaa74c9eed38f6d75114c73ae847a986db473c91ccb1cf6041795e71c08e39206c6578706572696d656e74616cf564736f6c634300050c0040" }, "deployedBytecode": { - "object": "0x6080604052600436106103295760003560e01c80638da5cb5b116101a5578063bb7ef7e0116100ec578063e8eeb3f811610095578063f18765321161006f578063f1876532146108bf578063f252b7a1146108df578063f2fde38b146108ff578063ff691b111461091f57610329565b8063e8eeb3f814610875578063e907f0031461088a578063ee99205c146108aa57610329565b8063e0ee036e116100c6578063e0ee036e1461082b578063e1c7392a14610840578063e804d0a41461085557610329565b8063bb7ef7e0146107c9578063c18c9141146107e9578063d39de6e91461080957610329565b8063a694fc3a1161014e578063b3e3337911610128578063b3e3337914610769578063b510879f14610789578063b9181611146107a957610329565b8063a694fc3a1461071f578063b05315241461073f578063b2baa33e1461075457610329565b8063a26171e21161017f578063a26171e2146106e2578063a3b4a327146106f7578063a657e5791461070a57610329565b80638da5cb5b1461068d5780639ad26744146106a25780639c3ccc82146106c257610329565b80634bcc3f6711610274578063624a72321161021d57806370712939116101f757806370712939146106165780637667180814610636578063816667961461064b5780638a2e271a1461066d57610329565b8063624a7232146105cc57806363403801146105e157806368a7d6cd146105f657610329565b80635bd4ab731161024e5780635bd4ab73146105595780635d91121d146105865780635e615a6b146105a657610329565b80634bcc3f67146104f7578063587da0231461052457806358f6c7e31461053957610329565b80633c277fc5116102d657806344a6958b116102b057806344a6958b1461048a57806346b97959146104aa578063494503d4146104d757610329565b80633c277fc51461041b5780633e4ad7321461043d57806342f1181e1461046a57610329565b80632a94c279116103075780632a94c2791461039b5780632e17de78146103ca57806338229d93146103ea57610329565b806301e28d841461032e5780630b9663db146103505780631e7ff8f61461037b575b600080fd5b34801561033a57600080fd5b5061034e610349366004614fd2565b61093f565b005b34801561035c57600080fd5b50610365610a0d565b6040516103729190615332565b60405180910390f35b34801561038757600080fd5b50610365610396366004614fd2565b610b5a565b3480156103a757600080fd5b506103bb6103b63660046150e6565b610bf4565b6040516103729392919061551f565b3480156103d657600080fd5b5061034e6103e53660046150aa565b610c20565b3480156103f657600080fd5b5061040a6104053660046150aa565b610dd5565b604051610372959493929190615550565b34801561042757600080fd5b50610430610e04565b604051610372919061522f565b34801561044957600080fd5b5061045d6104583660046150aa565b610e1c565b60405161037291906154e0565b34801561047657600080fd5b5061034e610485366004614fd2565b610e3b565b34801561049657600080fd5b5061045d6104a5366004615057565b610e4f565b3480156104b657600080fd5b506104ca6104c53660046150aa565b610eae565b604051610372919061548c565b3480156104e357600080fd5b506104306104f23660046150aa565b610ef9565b34801561050357600080fd5b506105176105123660046150aa565b610f2d565b60405161037291906154ad565b34801561053057600080fd5b50610365610f8f565b34801561054557600080fd5b5061034e61055436600461514f565b610f95565b34801561056557600080fd5b50610579610574366004614fd2565b611192565b6040516103729190615327565b34801561059257600080fd5b5061034e6105a1366004615107565b6111a7565b3480156105b257600080fd5b506105bb611270565b604051610372959493929190615573565b3480156105d857600080fd5b50610430611299565b3480156105ed57600080fd5b506103656112b1565b34801561060257600080fd5b50610365610611366004615202565b6112b7565b34801561062257600080fd5b5061034e610631366004614fd2565b6113f0565b34801561064257600080fd5b506103656114a5565b34801561065757600080fd5b506106606114ab565b60405161037291906155b7565b34801561067957600080fd5b5061034e610688366004614fd2565b6114b7565b34801561069957600080fd5b50610430611579565b3480156106ae57600080fd5b5061034e6106bd36600461502d565b611595565b3480156106ce57600080fd5b5061034e6106dd3660046151a4565b6115a7565b3480156106ee57600080fd5b50610365611621565b61034e610705366004614fed565b611627565b34801561071657600080fd5b50610365611877565b34801561072b57600080fd5b5061034e61073a3660046150aa565b61187d565b34801561074b57600080fd5b50610365611992565b34801561076057600080fd5b50610365611998565b34801561077557600080fd5b5061034e6107843660046150aa565b6119b6565b34801561079557600080fd5b5061034e6107a43660046150aa565b6119f6565b3480156107b557600080fd5b506105796107c4366004614fd2565b611a00565b3480156107d557600080fd5b506103656107e43660046150aa565b611a15565b3480156107f557600080fd5b506103656108043660046150aa565b611aa0565b34801561081557600080fd5b5061081e611ab2565b60405161037291906152ce565b34801561083757600080fd5b50610660611b21565b34801561084c57600080fd5b5061034e611b2d565b34801561086157600080fd5b5061045d610870366004615133565b611b47565b34801561088157600080fd5b50610660611c97565b34801561089657600080fd5b506103656108a53660046150c2565b611cab565b3480156108b657600080fd5b50610430611d48565b3480156108cb57600080fd5b506103656108da366004614fd2565b611d64565b3480156108eb57600080fd5b5061045d6108fa36600461502d565b611d76565b34801561090b57600080fd5b5061034e61091a366004614fd2565b611db7565b34801561092b57600080fd5b5061034e61093a3660046150aa565b611e5a565b610947612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16610987576109876109826001836120aa565b61214c565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb90610a0290839061522f565b60405180910390a150565b600c5460009081610a2582600163ffffffff61215416565b6000818152601660205260409020600101549091508015610a4d57610a4d6109828383612173565b610a55612190565b610a5d612203565b600084815260166020526040902055610a74614eba565b50600083815260166020908152604091829020825160a08101845281548082526001830154938201849052600283015482860181905260038401546060840181905260049094015460808401529451919488947fbb4a26fa0ace13ee4da343896c20eaa44a618fb9071fdd8c2e2c960a4583189d94610af69491939291615535565b60405180910390a2610b066122a7565b6020810151610b4d57805160405185917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291610b449160009161537d565b60405180910390a25b6020015193505050505b90565b6000610b64611299565b73ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610b9c919061522f565b60206040518083038186803b158015610bb457600080fd5b505afa158015610bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bec919081019061518c565b90505b919050565b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b33610c29614ee9565b73ffffffffffffffffffffffffffffffffffffffff821660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610c76906122ea565b90506000610ca882602001516bffffffffffffffffffffffff1683604001516bffffffffffffffffffffffff16612390565b905080841115610cbf57610cbf61098285836123a6565b73ffffffffffffffffffffffffffffffffffffffff831660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610d0d90856123c3565b610d15611299565b73ffffffffffffffffffffffffffffffffffffffff16639470b0bd84866040518363ffffffff1660e01b8152600401610d4f9291906152a8565b600060405180830381600087803b158015610d6957600080fd5b505af1158015610d7d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd85604051610dc79190615332565b60405180910390a250505050565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b610e24614ee9565b6000828152600760205260409020610bec906122ea565b610e4361244a565b610e4c81612491565b50565b610e57614ee9565b610ea560056000846001811115610e6a57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff8816825290925290206122ea565b90505b92915050565b610eb6614f09565b506000908152601560209081526040808320600c548452825291829020825160608101845281548152600182015492810192909252600201549181019190915290565b60028181548110610f0657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610f35614f2a565b506000908152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff169082015290565b600d5481565b3381610fa1575061118d565b6000610fb06020860186615133565b6001811115610fbb57fe5b148015610fdf57506000610fd26020850185615133565b6001811115610fdd57fe5b145b15610fea575061118d565b6001610ff96020860186615133565b600181111561100457fe5b141561101957611019846020013582846125c2565b60016110286020850185615133565b600181111561103357fe5b1415611048576110488360200135828461265b565b600060058161105a6020880188615133565b600181111561106557fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff86168252835290812092509060059082906110af90880188615133565b60018111156110ba57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff87168252909252902090506110fd8282866126f4565b60208086013590870180359073ffffffffffffffffffffffffffffffffffffffff8616907f7d3ad1dcf03b9027064d1d9a474a69e0cecc31324c541d3eb9b5e6fa2f106c8d90889061114f908c615133565b600181111561115a57fe5b61116760208c018c615133565b600181111561117257fe5b6040516111819392919061559e565b60405180910390a45050505b505050565b60106020526000908152604090205460ff1681565b816111b1816127ed565b6000838152600a602052604090205474010000000000000000000000000000000000000000900463ffffffff166111e9848285612826565b6000848152600a60205260409081902080547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8716021790555184907f8ea2a7a959bd25f226b7b0a4393613f7fdcaa8404e8bad96aa52dc1c1459016790610dc790849087906155c8565b601154601254601354601454929363ffffffff9283169391928281169264010000000090041690565b73ba7f8b5fb1b19c1211c5d49550fcd149177a5eaf90565b60115481565b60085460009033906112d090600163ffffffff61286e16565b600881905591506112e582620f424086612826565b6112ed614f2a565b5060408051808201825273ffffffffffffffffffffffffffffffffffffffff838116825263ffffffff87811660208085019182526000888152600a9091528590208451815492517fffffffffffffffffffffffff00000000000000000000000000000000000000009093169416939093177fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000919092160217905590517fcec6fc86ea644053f6edff1160dfe3fa5c61e7a5ef9f873f145bb03a0bd319e7906113d19085908590899061533b565b60405180910390a183156113e8576113e8836119b6565b505092915050565b6113f861244a565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16611431576114316109828261288a565b60005b6002548110156114a1578173ffffffffffffffffffffffffffffffffffffffff166002828154811061146257fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611499576114948282612929565b6114a1565b600101611434565b5050565b600c5481565b60145463ffffffff1681565b6114bf612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16156114fb576114fb6109826000836120aa565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e190610a0290839061522f565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61159d61244a565b6114a18282612929565b6115af612087565b6115bc8585858585612b78565b3073ffffffffffffffffffffffffffffffffffffffff1663c6f3a4276040518163ffffffff1660e01b815260040160006040518083038186803b15801561160257600080fd5b505afa158015611616573d6000803e3d6000fd5b505050505050505050565b60135481565b3360009081526010602052604090205460ff1661164a5761164a61098233612c3b565b61165381612c56565b3461172d57611660610e04565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd8330846040518463ffffffff1660e01b815260040161169c93929190615277565b602060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116ee919081019061508e565b61172d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172490615455565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600960205260409020548061175e575061118d565b600061176982610e1c565b602001516bffffffffffffffffffffffff16905060135481101561178e57505061118d565b600c5460008381526015602090815260408083208484528252808320601690925290912081548061183d576000806117c68888612c77565b6002870182905560018701819055600386015491935091506117ee908263ffffffff61286e16565b60038501556001808501546118089163ffffffff61286e16565b6001850155604051889087907f14b098103235344975b17508c2391721cc9ac3f3fa2b56c7ff46f8480dfd074f90600090a350505b61184d818863ffffffff61286e16565b83556002820154611864908863ffffffff61286e16565b8260020181905550505050505050505050565b60085481565b33611886611299565b73ffffffffffffffffffffffffffffffffffffffff166315cc36f282846040518363ffffffff1660e01b81526004016118c09291906152a8565b600060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff811660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604090206119409083612d03565b8073ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a836040516119869190615332565b60405180910390a25050565b60175481565b60006119b1601154600d5461286e90919063ffffffff16565b905090565b3360008181526009602052604080822084905551839183917f5640833634fce74eb9211d1209a91dd5a1c8c6a751696bff9323b4db67f815139190a35050565b610e4c8133612d6d565b60016020526000908152604090205460ff1681565b6000611a1f614f2a565b506000828152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611a8385612f45565b91509150611a9683602001518383613002565b5095945050505050565b600b6020526000908152604090205481565b60606002805480602002602001604051908101604052809291908181526020018280548015611b1757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611aec575b5050505050905090565b60125463ffffffff1681565b611b35612087565b611b3d613043565b611b45613056565b565b611b4f614ee9565b60016000526004602052611b827fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe056122ea565b90506000826001811115611b9257fe5b1415610bef576000611ba2611299565b73ffffffffffffffffffffffffffffffffffffffff16639706e0c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611be757600080fd5b505afa158015611bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c1f919081019061518c565b9050611c4e611c4983602001516bffffffffffffffffffffffff168361215490919063ffffffff16565b613081565b6bffffffffffffffffffffffff90811660208401526040830151611c7e91611c499184911663ffffffff61215416565b6bffffffffffffffffffffffff16604083015250919050565b601454640100000000900463ffffffff1681565b6000611cb5614f2a565b506000838152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611d1986612f45565b915091506000611d2e84602001518484613002565b915050611d3d878783856130a5565b979650505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b611d7e614ee9565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208584529091529020610ea5906122ea565b611dbf61244a565b73ffffffffffffffffffffffffffffffffffffffff8116611dea57611de56109826131f2565b610e4c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600c546000611e7082600163ffffffff61215416565b9050611e7a614eba565b50600081815260166020908152604091829020825160a08101845281548152600182015492810183905260028201549381019390935260038101546060840152600401546080830152611ecf57505050610e4c565b611ed7614f09565b5060008481526015602090815260408083208584528252918290208251606081018452815480825260018301549382019390935260029091015492810192909252611f255750505050610e4c565b6000858152601560209081526040808320868452909152812081815560018101829055600201819055611f588284613229565b9050600080611f6c8884866040015161329e565b9150915087877ff1116b309178aa62dcb6bf8c3b8bc2321724907c7ebf52192d14c8ce3aa9194c8484604051611fa392919061537d565b60405180910390a36000611fbd838363ffffffff61286e16565b6080870151909150611fd5908263ffffffff61286e16565b6080870181905260008881526016602090815260409091206004019190915586015161200890600163ffffffff61215416565b602080880182815260008a8152601690925260409091206001019190915551611616576080860151865188917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291612066908263ffffffff61215416565b60405161207492919061537d565b60405180910390a2505050505050505050565b3360009081526001602052604090205460ff16611b4557611b45610982336133ee565b606063b9588e4360e01b83836040516024016120c79291906153c5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b805160208201fd5b60008282111561216d5761216d61098260028585613409565b50900390565b606063614b800a60e01b83836040516024016120c792919061537d565b30318015610e4c576121a0610e04565b73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156121e757600080fd5b505af11580156121fb573d6000803e3d6000fd5b505050505050565b60006119b1601754612213610e04565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161224b919061522f565b60206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061229b919081019061518c565b9063ffffffff61215416565b4260006122b2611998565b9050818111156122c9576122c961098282846134ae565b600c546000906122e090600163ffffffff61286e16565b600c555050600d55565b6122f2614ee9565b5060408051606081018252825467ffffffffffffffff81168083526bffffffffffffffffffffffff680100000000000000008304811660208501527401000000000000000000000000000000000000000090920490911692820192909252600c54909181111561238a57612365816134cb565b67ffffffffffffffff16825260408201516bffffffffffffffffffffffff1660208301525b50919050565b600081831061239f5781610ea5565b5090919050565b60606384c8b7c960e01b83836040516024016120c792919061537d565b6123cb614ee9565b6123d4836122ea565b90506123fe611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61215416565b6bffffffffffffffffffffffff16602082015261118d83826134eb565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b4557600054611b459061098290339073ffffffffffffffffffffffffffffffffffffffff166135a5565b73ffffffffffffffffffffffffffffffffffffffff81166124b7576124b76109826135c2565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156124f1576124f1610982826135f9565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6125cb83613614565b6125d58383612d6d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600660209081526040808320868452909152902061260f908261364b565b6000838152600760205260409020612627908261364b565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe058261364b565b61266483613614565b61266e8383612d6d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260066020908152604080832086845290915290206126a890826136a3565b60008381526007602052604090206126c090826136a3565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe05826136a3565b6126fe83836136de565b156127085761118d565b612710614ee9565b612719846122ea565b9050612723614ee9565b61272c846122ea565b905081604001516bffffffffffffffffffffffff16831115612767576127676109828484604001516bffffffffffffffffffffffff166123a6565b604082015161278e90611c49906bffffffffffffffffffffffff168563ffffffff61215416565b6bffffffffffffffffffffffff9081166040808501919091528201516127bf91611c4991168563ffffffff61286e16565b6bffffffffffffffffffffffff1660408201526127dc85836134eb565b6127e684826134eb565b5050505050565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff163381146114a1576114a161098233846136e5565b620f424063ffffffff8216111561284b5761284661098260008584613702565b61118d565b8163ffffffff168163ffffffff16111561118d5761118d61098260018584613702565b600082820183811015610ea557610ea561098260008686613409565b606063eb5108a260e01b826040516024016128a5919061522f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16612962576129626109828361288a565b600254811061297d5761297d61098282600280549050613721565b8173ffffffffffffffffffffffffffffffffffffffff16600282815481106129a157fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614612a0357612a03610982600283815481106129db57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461373e565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110612a7e57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110612ab157fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190612b309082614f41565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60118590556012805463ffffffff8087167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000092831617909255601385905560148054848416640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9487169190931617929092161790556040517f613157dbb0e920deab8ad6ddd3805e87cbf57344b9fe780f1764790ec789754290612c2c9087908790879087908790615573565b60405180910390a15050505050565b606063b56d2df060e01b826040516024016128a5919061522f565b803414158015612c6557503415155b15610e4c57610e4c610982823461375b565b6000828152600a602052604081205481908190612caa9073ffffffffffffffffffffffffffffffffffffffff1686611d76565b602001516bffffffffffffffffffffffff169050612cce848263ffffffff61215416565b601254909350612cf990612cec9063ffffffff16620f424086613778565b829063ffffffff61286e16565b9150509250929050565b612d0b614ee9565b612d14836122ea565b9050612d3e611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61286e16565b612d768261379a565b6000612d8583836000806130a5565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208784529091529020909150612dc1906122ea565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600660209081526040808320888452825291829020845181549286015195909301517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921667ffffffffffffffff909316929092177fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff16680100000000000000006bffffffffffffffffffffffff95861602179092167401000000000000000000000000000000000000000093909216929092021790558015612f3c57612ea6838261380e565b612eae610e04565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612ee89291906152a8565b602060405180830381600087803b158015612f0257600080fd5b505af1158015612f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f3a919081019061508e565b505b61118d83613856565b6000806000612f606001600c5461215490919063ffffffff16565b9050612f6a614f09565b50600084815260156020908152604080832084845282528083208151606080820184528254825260018084015483870152600293840154838601528787526016865295849020845160a0810186528154815296810154958701959095529184015492850192909252600383015490840152600490910154608083015290612ff2908290613229565b9350806040015192505050915091565b600080826130125783915061303b565b61302663ffffffff8616620f424086613863565b9150613038848363ffffffff61215416565b90505b935093915050565b61304b613899565b42600d556001600c55565b61305e6138ae565b620d2f00620dbba068056bc75e2d63100000600260036127e68585858585612b78565b806bffffffffffffffffffffffff81168114610bef57610bef610982600284613913565b600c546000906130b3614ee9565b5073ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083208984528252918290208251606081018452905467ffffffffffffffff81168083526bffffffffffffffffffffffff6801000000000000000083048116948401949094527401000000000000000000000000000000000000000090910490921692810192909252821415613154576000925050506131ea565b61316081838787613930565b81519093506000906131839067ffffffffffffffff16600163ffffffff61286e16565b90506131c16131b48984602001516bffffffffffffffffffffffff16856000015167ffffffffffffffff16856139b3565b859063ffffffff61286e16565b93506131e46131b48984604001516bffffffffffffffffffffffff1684876139b3565b93505050505b949350505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b815160009061323757610ea8565b8151835160408401516020860151606086015160145461326d95949392919063ffffffff80821691640100000000900416613a4c565b608083015183519192506000916132899163ffffffff61215416565b905081811015613297578091505b5092915050565b6000806132a9614f2a565b506000858152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff1690820181905261330d908686613002565b909350915082156133ca57613320610e04565b81516040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092169163a9059cbb916133769187906004016152a8565b602060405180830381600087803b15801561339057600080fd5b505af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133c8919081019061508e565b505b81156133e5576133da8683613b0f565b6133e5868386613b50565b50935093915050565b606063b65a25b960e01b826040516024016128a5919061522f565b606063e946c1bb60e01b8484846040516024016134289392919061538b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063a6bcde4760e01b83836040516024016120c792919061537d565b8067ffffffffffffffff81168114610bef57610bef610982600184613913565b8051825460408301516020909301516bffffffffffffffffffffffff90811668010000000000000000027fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff91909416740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff9094167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090931692909217929092161716179055565b6060631de45ad160e01b83836040516024016120c7929190615250565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016128a5919061522f565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff16610e4c57610e4c610982826000613c39565b613653614ee9565b61365c836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff16604082015261118d83826134eb565b6136ab614ee9565b6136b4836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b1460011690565b60606382ded78560e01b83836040516024016120c79291906152a8565b60606322df959760e01b848484604051602401613428939291906153f7565b606063e9f8377160e01b83836040516024016120c792919061537d565b606063140a84db60e01b83836040516024016120c7929190615250565b60606331d7a50560e01b83836040516024016120c792919061537d565b60006131ea8361378e868563ffffffff613c5616565b9063ffffffff613c8716565b600c546000906137b190600163ffffffff61215416565b90506137bb614f09565b50600082815260156020908152604080832084845282529182902082516060810184528154808252600183015493820193909352600290910154928101929092521561118d5761118d6109828484613cb1565b6000828152600b602052604090205461382d908263ffffffff61215416565b6000838152600b602052604090205560175461384f908263ffffffff61215416565b6017555050565b610e4c8160006001613b50565b60006131ea8361378e61387d82600163ffffffff61215416565b61388d888763ffffffff613c5616565b9063ffffffff61286e16565b600d5415611b4557611b456109826000613cce565b601154158015906138c6575060125463ffffffff1615155b80156138d3575060135415155b80156138e6575060145463ffffffff1615155b80156139015750601454640100000000900463ffffffff1615155b15611b4557611b456109826001613cce565b606063c996af7b60e01b83836040516024016120c79291906153ad565b600082158061393d575081155b1561394a575060006131ea565b600061395d85600163ffffffff61215416565b865167ffffffffffffffff16101561397957856040015161397f565b85602001515b6bffffffffffffffffffffffff1690508061399e5760009150506131ea565b6139a9848483613778565b9695505050505050565b60008315806139c157508183145b156139ce575060006131ea565b818310613a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117249061541e565b613a0f614f65565b613a198685613d0d565b9050613a23614f65565b613a2d8785613d0d565b9050611d3d81600001518260200151846000015185602001518a613e2b565b600080613a598888613eb7565b90506000613a678787613eb7565b9050811580613a74575080155b15613a85575060009150611d3d9050565b600081831315613a9e57613a998284613f09565b613aa8565b613aa88383613f09565b9050613ad1613acc613ab983613f28565b8863ffffffff168863ffffffff166145ca565b6145d9565b905081831315613aea57613ae58282613f09565b613af4565b613af48282614bc3565b9050613b00818c614bef565b9b9a5050505050505050505050565b6000828152600b6020526040902054613b2e908263ffffffff61286e16565b6000838152600b602052604090205560175461384f908263ffffffff61286e16565b6000838152600f6020526040902054600c5480821415613b7157505061118d565b613b79614f65565b506000858152600e602090815260408083208584528252918290208251808401909352805483526001015490820152613bb0614f65565b613bb982614c31565b15613bf257613bd2826000015183602001518888614c3a565b60208301819052818352613be69190614c9c565b60208301528152613bfd565b602081018590528581525b6000878152600e6020908152604080832086845282528083208451815593820151600190940193909355978152600f9097529095205550505050565b6060639ae94f0160e01b83836040516024016120c792919061536d565b600082613c6557506000610ea8565b82820282848281613c7257fe5b0414610ea557610ea561098260018686613409565b600081613c9d57613c9d61098260038585613409565b6000828481613ca857fe5b04949350505050565b6060635caa0b0560e01b83836040516024016120c792919061537d565b60607f0b02d77300000000000000000000000000000000000000000000000000000000826001811115613cfd57fe5b6040516024016128a591906155df565b613d15614f65565b506000828152600e602090815260408083208484528252918290208251808401909352805483526001015490820152613d4d81614c31565b15613d5757610ea8565b6000613d6a83600163ffffffff61215416565b6000858152600e60209081526040808320848452825291829020825180840190935280548352600101549082015292509050613da582614c31565b15613db05750610ea8565b6000848152600f602052604090205483811015613e0d576000858152600e6020908152604080832084845282529182902082518084019093528054835260010154908201529250613e0083614c31565b15613e0d5750610ea89050565b50506040805180820190915260008152600160208201529392505050565b600081613e3a57506000613eae565b83613e5a57613e538561378e848963ffffffff613c5616565b9050613eae565b6000613e7f613e6f868863ffffffff613c5616565b61229b898763ffffffff613c5616565b90506000613e93828663ffffffff613c8716565b9050613ea98761378e868463ffffffff613c5616565b925050505b95945050505050565b600080831215613ecf57613ecf610982600185614cc5565b6000821215613ee657613ee6610982600184614cc5565b610ea5613f03846f80000000000000000000000000000000614d06565b83614d59565b6000610ea5613f03846f80000000000000000000000000000000614d06565b60006f80000000000000000000000000000000821315613f5057613f50610982600184614dda565b60008213613f6657613f66610982600084614dda565b6f80000000000000000000000000000000821415613f8657506000610bef565b640733048c5a8213613fb957507fffffffffffffffffffffffffffffffe010000000000000000000000000000000610bef565b60008060006a01c8464f761647600000008513614018577ffffffffffffffffffffffffffffffff000000000000000000000000000000000909301926a01c8464f761647600000006f8000000000000000000000000000000086020594505b6cf1aaddd7742e900000000000008513614076577ffffffffffffffffffffffffffffffff800000000000000000000000000000000909301926cf1aaddd7742e900000000000006f8000000000000000000000000000000086020594505b6e0afe10820813d7800000000000000085136140d8577ffffffffffffffffffffffffffffffffc00000000000000000000000000000000909301926e0afe10820813d780000000000000006f8000000000000000000000000000000086020594505b6f02582ab704279ec00000000000000000851361413c577ffffffffffffffffffffffffffffffffe00000000000000000000000000000000909301926f02582ab704279ec000000000000000006f8000000000000000000000000000000086020594505b6f1152aaa3bf81cc00000000000000000085136141a0577fffffffffffffffffffffffffffffffff00000000000000000000000000000000909301926f1152aaa3bf81cc0000000000000000006f8000000000000000000000000000000086020594505b6f2f16ac6c59de700000000000000000008513614204577fffffffffffffffffffffffffffffffff80000000000000000000000000000000909301926f2f16ac6c59de700000000000000000006f8000000000000000000000000000000086020594505b6f4da2cbf1be58280000000000000000008513614268577fffffffffffffffffffffffffffffffffc0000000000000000000000000000000909301926f4da2cbf1be58280000000000000000006f8000000000000000000000000000000086020594505b6f63afbe7ab2082c00000000000000000085136142cc577fffffffffffffffffffffffffffffffffe0000000000000000000000000000000909301926f63afbe7ab2082c0000000000000000006f8000000000000000000000000000000086020594505b6f70f5a893b608861e1f58934f97aea57d8513614330577ffffffffffffffffffffffffffffffffff0000000000000000000000000000000909301926f70f5a893b608861e1f58934f97aea57d6f8000000000000000000000000000000086020594505b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000850192508291506f80000000000000000000000000000000828002059050700100000000000000000000000000000000838103830205840193506f80000000000000000000000000000000818302816143a657fe5b059150700200000000000000000000000000000000836faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa038302816143d757fe5b05840193506f80000000000000000000000000000000818302816143f757fe5b059150700300000000000000000000000000000000836f999999999999999999999999999999990383028161442857fe5b05840193506f800000000000000000000000000000008183028161444857fe5b059150700400000000000000000000000000000000836f924924924924924924924924924924920383028161447957fe5b05840193506f800000000000000000000000000000008183028161449957fe5b059150700500000000000000000000000000000000836f8e38e38e38e38e38e38e38e38e38e38e038302816144ca57fe5b05840193506f80000000000000000000000000000000818302816144ea57fe5b059150700600000000000000000000000000000000836f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b0383028161451b57fe5b05840193506f800000000000000000000000000000008183028161453b57fe5b059150700700000000000000000000000000000000836f89d89d89d89d89d89d89d89d89d89d890383028161456c57fe5b05840193506f800000000000000000000000000000008183028161458c57fe5b059150700800000000000000000000000000000000836f88888888888888888888888888888888038302816145bd57fe5b0584019350505050919050565b60006131ea613f038585614d06565b60007fffffffffffffffffffffffffffffffe01000000000000000000000000000000082121561460b57506000610bef565b8161462757506f80000000000000000000000000000000610bef565b600082131561463e5761463e610982600184614dda565b6f800000000000000000000000000000006f1000000000000000000000000000000083078080028290056710e1b3be415a0000810293909301929091818302059050806705a0913f6b1e000002830192506f80000000000000000000000000000000828202816146aa57fe5b05905080670168244fdac7800002830192506f80000000000000000000000000000000828202816146d757fe5b05905080664807432bc1800002830192506f800000000000000000000000000000008282028161470357fe5b05905080660c0135dca0400002830192506f800000000000000000000000000000008282028161472f57fe5b059050806601b707b1cdc00002830192506f800000000000000000000000000000008282028161475b57fe5b059050806536e0f639b80002830192506f800000000000000000000000000000008282028161478657fe5b05905080650618fee9f80002830192506f80000000000000000000000000000000828202816147b157fe5b05905080649c197dcc0002830192506f80000000000000000000000000000000828202816147db57fe5b05905080640e30dce40002830192506f800000000000000000000000000000008282028161480557fe5b0590508064012ebd130002830192506f800000000000000000000000000000008282028161482f57fe5b059050806317499f0002830192506f800000000000000000000000000000008282028161485857fe5b059050806301a9d48002830192506f800000000000000000000000000000008282028161488157fe5b05905080621c638002830192506f80000000000000000000000000000000828202816148a957fe5b059050806201c63802830192506f80000000000000000000000000000000828202816148d157fe5b05905080611ab802830192506f80000000000000000000000000000000828202816148f857fe5b0590508061017c02830192506f800000000000000000000000000000008282028161491f57fe5b05905080601402830192506f800000000000000000000000000000008282028161494557fe5b600095909503946721c3677c82b400009190059384010582016f80000000000000000000000000000000019290507010000000000000000000000000000000008416156149b4577243cbaf42a000812488fc5c220ad7b97bf6e99e6cf1aaddd7742e56d32fb9f9974484020592505b7008000000000000000000000000000000008416156149f6577105d27a9f51c31b7c2f8038212a05747799916e0afe10820813d65dfe6a33c07f738f84020592505b700400000000000000000000000000000000841615614a3857701b4c902e273a58678d6d3bfdb93db96d026f02582ab704279e8efd15e0265855c47a84020592505b700200000000000000000000000000000000841615614a7a577003b1cc971a9bb5b9867477440d6d1577506f1152aaa3bf81cb9fdb76eae12d02957184020592505b700100000000000000000000000000000000841615614abc5770015bf0a8b1457695355fb8ac404e7a79e36f2f16ac6c59de6f8d5d6f63c1482a7c8684020592505b6f80000000000000000000000000000000841615614afc576fd3094c70f034de4b96ff7d5b6f99fcd86f4da2cbf1be5827f9eb3ad1aa9866ebb384020592505b6f40000000000000000000000000000000841615614b3c576fa45af1e1f40c333b3de1db4dd55f29a76f63afbe7ab2082ba1a0ae5e4eb1b479dc84020592505b6f20000000000000000000000000000000841615614b7c576f910b022db7ae67ce76b441c27035c6a16f70f5a893b608861e1f58934f97aea57d84020592505b6f10000000000000000000000000000000841615614bbc576f88415abbe9a76bead8d00cf112e4d4a86f783eafef1c0a8f3978c7f81824d62ebf84020592505b5050919050565b60006f80000000000000000000000000000000614be08484614d06565b81614be757fe5b059392505050565b600080821215614c0757614c07610982600184614cc5565b6000614c138484614d06565b905060008113614c27576000915050610ea8565b607f1c9392505050565b60200151151590565b60008085614c4c575082905081614c93565b83614c5b575084905083614c93565b614c7e614c6e858763ffffffff613c5616565b61388d888663ffffffff613c5616565b9150614c90858463ffffffff613c5616565b90505b94509492505050565b600080614cba84846f80000000000000000000000000000000614e09565b915091509250929050565b60607fbd79545f00000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b836040516024016120c79291906155ed565b6000821580614d13575081155b15614d2057506000610ea8565b5081810281838281614d2e57fe5b05141580614d45575082828281614d4157fe5b0514155b15610ea857610ea861098260018585614e77565b600081614d6f57614d6f61098260028585614e77565b7f800000000000000000000000000000000000000000000000000000000000000083148015614dbd5750817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff145b15614dd157614dd161098260038585614e77565b818381614be757fe5b60607fed2f26a100000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b60008082851180614e1957508284115b15614e6e57600084861015614e2e5784614e30565b855b9050614e42818563ffffffff613c8716565b9050614e54868263ffffffff613c8716565b9250614e66858263ffffffff613c8716565b91505061303b565b50929391925050565b60607f8c12dfe700000000000000000000000000000000000000000000000000000000846003811115614ea657fe5b848460405160240161342893929190615600565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b60405180606001604052806000815260200160008152602001600081525090565b604080518082019091526000808252602082015290565b81548183558181111561118d5760008381526020902061118d918101908301614f7f565b604051806040016040528060008152602001600081525090565b610b5791905b80821115614f995760008155600101614f85565b5090565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ea857600080fd5b60006040828403121561238a578081fd5b600060208284031215614fe3578081fd5b610ea58383614f9d565b600080600060608486031215615001578182fd5b833561500c81615625565b9250602084013561501c81615625565b929592945050506040919091013590565b6000806040838503121561503f578182fd5b6150498484614f9d565b946020939093013593505050565b60008060408385031215615069578182fd5b6150738484614f9d565b9150602083013561508381615655565b809150509250929050565b60006020828403121561509f578081fd5b8151610ea581615647565b6000602082840312156150bb578081fd5b5035919050565b600080604083850312156150d4578182fd5b82359150602083013561508381615625565b600080604083850312156150f8578182fd5b50508035926020909101359150565b60008060408385031215615119578182fd5b82359150602083013563ffffffff81168114615083578182fd5b600060208284031215615144578081fd5b8135610ea581615655565b600080600060a08486031215615163578283fd5b61516d8585614fc1565b925061517c8560408601614fc1565b9150608084013590509250925092565b60006020828403121561519d578081fd5b5051919050565b600080600080600060a086880312156151bb578283fd5b8535945060208601356151cd81615662565b93506040860135925060608601356151e481615662565b915060808601356151f481615662565b809150509295509295909350565b60008060408385031215615214578182fd5b823561521f81615662565b9150602083013561508381615647565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561531c57835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016152e8565b509095945050505050565b901515815260200190565b90815260200190565b92835273ffffffffffffffffffffffffffffffffffffffff91909116602083015263ffffffff16604082015260600190565b9182521515602082015260400190565b918252602082015260400190565b606081016004851061539957fe5b938152602081019290925260409091015290565b60408101600384106153bb57fe5b9281526020015290565b604081016153d28461561b565b92815273ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b606081016154048561561b565b938152602081019290925263ffffffff1660409091015290565b60208082526013908201527f43525f494e54455256414c5f494e56414c494400000000000000000000000000604082015260600190565b60208082526014908201527f574554485f5452414e534645525f4641494c4544000000000000000000000000604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b815173ffffffffffffffffffffffffffffffffffffffff16815260209182015163ffffffff169181019190915260400190565b815167ffffffffffffffff1681526020808301516bffffffffffffffffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b948552602085019390935260408401919091526060830152608082015260a00190565b94855263ffffffff938416602086015260408501929092528216606084015216608082015260a00190565b92835260ff918216602084015216604082015260600190565b63ffffffff91909116815260200190565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b60ff929092168252602082015260400190565b60ff9390931683526020830191909152604082015260600190565b60028110610e4c57fe5b73ffffffffffffffffffffffffffffffffffffffff81168114610e4c57600080fd5b8015158114610e4c57600080fd5b60028110610e4c57600080fd5b63ffffffff81168114610e4c57600080fdfea365627a7a72315820352718cf5f2c91e8851fff746b6f2d10f8b5907f32fd611445054d1ea922cbe66c6578706572696d656e74616cf564736f6c634300050c0040" + "object": "0x6080604052600436106103295760003560e01c80638da5cb5b116101a5578063bb7ef7e0116100ec578063e8eeb3f811610095578063f18765321161006f578063f1876532146108bf578063f252b7a1146108df578063f2fde38b146108ff578063ff691b111461091f57610329565b8063e8eeb3f814610875578063e907f0031461088a578063ee99205c146108aa57610329565b8063e0ee036e116100c6578063e0ee036e1461082b578063e1c7392a14610840578063e804d0a41461085557610329565b8063bb7ef7e0146107c9578063c18c9141146107e9578063d39de6e91461080957610329565b8063a694fc3a1161014e578063b3e3337911610128578063b3e3337914610769578063b510879f14610789578063b9181611146107a957610329565b8063a694fc3a1461071f578063b05315241461073f578063b2baa33e1461075457610329565b8063a26171e21161017f578063a26171e2146106e2578063a3b4a327146106f7578063a657e5791461070a57610329565b80638da5cb5b1461068d5780639ad26744146106a25780639c3ccc82146106c257610329565b80634bcc3f6711610274578063624a72321161021d57806370712939116101f757806370712939146106165780637667180814610636578063816667961461064b5780638a2e271a1461066d57610329565b8063624a7232146105cc57806363403801146105e157806368a7d6cd146105f657610329565b80635bd4ab731161024e5780635bd4ab73146105595780635d91121d146105865780635e615a6b146105a657610329565b80634bcc3f67146104f7578063587da0231461052457806358f6c7e31461053957610329565b80633c277fc5116102d657806344a6958b116102b057806344a6958b1461048a57806346b97959146104aa578063494503d4146104d757610329565b80633c277fc51461041b5780633e4ad7321461043d57806342f1181e1461046a57610329565b80632a94c279116103075780632a94c2791461039b5780632e17de78146103ca57806338229d93146103ea57610329565b806301e28d841461032e5780630b9663db146103505780631e7ff8f61461037b575b600080fd5b34801561033a57600080fd5b5061034e610349366004614fd2565b61093f565b005b34801561035c57600080fd5b50610365610a0d565b6040516103729190615332565b60405180910390f35b34801561038757600080fd5b50610365610396366004614fd2565b610b5a565b3480156103a757600080fd5b506103bb6103b63660046150e6565b610bf4565b6040516103729392919061551f565b3480156103d657600080fd5b5061034e6103e53660046150aa565b610c20565b3480156103f657600080fd5b5061040a6104053660046150aa565b610dd5565b604051610372959493929190615550565b34801561042757600080fd5b50610430610e04565b604051610372919061522f565b34801561044957600080fd5b5061045d6104583660046150aa565b610e1c565b60405161037291906154e0565b34801561047657600080fd5b5061034e610485366004614fd2565b610e3b565b34801561049657600080fd5b5061045d6104a5366004615057565b610e4f565b3480156104b657600080fd5b506104ca6104c53660046150aa565b610eae565b604051610372919061548c565b3480156104e357600080fd5b506104306104f23660046150aa565b610ef9565b34801561050357600080fd5b506105176105123660046150aa565b610f2d565b60405161037291906154ad565b34801561053057600080fd5b50610365610f8f565b34801561054557600080fd5b5061034e61055436600461514f565b610f95565b34801561056557600080fd5b50610579610574366004614fd2565b611192565b6040516103729190615327565b34801561059257600080fd5b5061034e6105a1366004615107565b6111a7565b3480156105b257600080fd5b506105bb611270565b604051610372959493929190615573565b3480156105d857600080fd5b50610430611299565b3480156105ed57600080fd5b506103656112b1565b34801561060257600080fd5b50610365610611366004615202565b6112b7565b34801561062257600080fd5b5061034e610631366004614fd2565b6113f0565b34801561064257600080fd5b506103656114a5565b34801561065757600080fd5b506106606114ab565b60405161037291906155b7565b34801561067957600080fd5b5061034e610688366004614fd2565b6114b7565b34801561069957600080fd5b50610430611579565b3480156106ae57600080fd5b5061034e6106bd36600461502d565b611595565b3480156106ce57600080fd5b5061034e6106dd3660046151a4565b6115a7565b3480156106ee57600080fd5b50610365611621565b61034e610705366004614fed565b611627565b34801561071657600080fd5b50610365611877565b34801561072b57600080fd5b5061034e61073a3660046150aa565b61187d565b34801561074b57600080fd5b50610365611992565b34801561076057600080fd5b50610365611998565b34801561077557600080fd5b5061034e6107843660046150aa565b6119b6565b34801561079557600080fd5b5061034e6107a43660046150aa565b6119f6565b3480156107b557600080fd5b506105796107c4366004614fd2565b611a00565b3480156107d557600080fd5b506103656107e43660046150aa565b611a15565b3480156107f557600080fd5b506103656108043660046150aa565b611aa0565b34801561081557600080fd5b5061081e611ab2565b60405161037291906152ce565b34801561083757600080fd5b50610660611b21565b34801561084c57600080fd5b5061034e611b2d565b34801561086157600080fd5b5061045d610870366004615133565b611b47565b34801561088157600080fd5b50610660611c97565b34801561089657600080fd5b506103656108a53660046150c2565b611cab565b3480156108b657600080fd5b50610430611d48565b3480156108cb57600080fd5b506103656108da366004614fd2565b611d64565b3480156108eb57600080fd5b5061045d6108fa36600461502d565b611d76565b34801561090b57600080fd5b5061034e61091a366004614fd2565b611db7565b34801561092b57600080fd5b5061034e61093a3660046150aa565b611e5a565b610947612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16610987576109876109826001836120aa565b61214c565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517ff50d0d312d501878616eb5e78ebf3ed6dcd3955aaef8165af9c6b057cc4832fb90610a0290839061522f565b60405180910390a150565b600c5460009081610a2582600163ffffffff61215416565b6000818152601660205260409020600101549091508015610a4d57610a4d6109828383612173565b610a55612190565b610a5d612203565b600084815260166020526040902055610a74614eba565b50600083815260166020908152604091829020825160a08101845281548082526001830154938201849052600283015482860181905260038401546060840181905260049094015460808401529451919488947fbb4a26fa0ace13ee4da343896c20eaa44a618fb9071fdd8c2e2c960a4583189d94610af69491939291615535565b60405180910390a2610b066122a7565b6020810151610b4d57805160405185917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291610b449160009161537d565b60405180910390a25b6020015193505050505b90565b6000610b64611299565b73ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610b9c919061522f565b60206040518083038186803b158015610bb457600080fd5b505afa158015610bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bec919081019061518c565b90505b919050565b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b33610c29614ee9565b73ffffffffffffffffffffffffffffffffffffffff821660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610c76906122ea565b90506000610ca882602001516bffffffffffffffffffffffff1683604001516bffffffffffffffffffffffff16612390565b905080841115610cbf57610cbf61098285836123a6565b73ffffffffffffffffffffffffffffffffffffffff831660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc60205260409020610d0d90856123c3565b610d15611299565b73ffffffffffffffffffffffffffffffffffffffff16639470b0bd84866040518363ffffffff1660e01b8152600401610d4f9291906152a8565b600060405180830381600087803b158015610d6957600080fd5b505af1158015610d7d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd85604051610dc79190615332565b60405180910390a250505050565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290565b610e24614ee9565b6000828152600760205260409020610bec906122ea565b610e4361244a565b610e4c81612491565b50565b610e57614ee9565b610ea560056000846001811115610e6a57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff8816825290925290206122ea565b90505b92915050565b610eb6614f09565b506000908152601560209081526040808320600c548452825291829020825160608101845281548152600182015492810192909252600201549181019190915290565b60028181548110610f0657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610f35614f2a565b506000908152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff169082015290565b600d5481565b3381610fa1575061118d565b6000610fb06020860186615133565b6001811115610fbb57fe5b148015610fdf57506000610fd26020850185615133565b6001811115610fdd57fe5b145b15610fea575061118d565b6001610ff96020860186615133565b600181111561100457fe5b141561101957611019846020013582846125c2565b60016110286020850185615133565b600181111561103357fe5b1415611048576110488360200135828461265b565b600060058161105a6020880188615133565b600181111561106557fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff86168252835290812092509060059082906110af90880188615133565b60018111156110ba57fe5b60ff1681526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff87168252909252902090506110fd8282866126f4565b60208086013590870180359073ffffffffffffffffffffffffffffffffffffffff8616907f7d3ad1dcf03b9027064d1d9a474a69e0cecc31324c541d3eb9b5e6fa2f106c8d90889061114f908c615133565b600181111561115a57fe5b61116760208c018c615133565b600181111561117257fe5b6040516111819392919061559e565b60405180910390a45050505b505050565b60106020526000908152604090205460ff1681565b816111b1816127ed565b6000838152600a602052604090205474010000000000000000000000000000000000000000900463ffffffff166111e9848285612826565b6000848152600a60205260409081902080547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000063ffffffff8716021790555184907f8ea2a7a959bd25f226b7b0a4393613f7fdcaa8404e8bad96aa52dc1c1459016790610dc790849087906155c8565b601154601254601354601454929363ffffffff9283169391928281169264010000000090041690565b73ba7f8b5fb1b19c1211c5d49550fcd149177a5eaf90565b60115481565b60085460009033906112d090600163ffffffff61286e16565b600881905591506112e582620f424086612826565b6112ed614f2a565b5060408051808201825273ffffffffffffffffffffffffffffffffffffffff838116825263ffffffff87811660208085019182526000888152600a9091528590208451815492517fffffffffffffffffffffffff00000000000000000000000000000000000000009093169416939093177fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000919092160217905590517fcec6fc86ea644053f6edff1160dfe3fa5c61e7a5ef9f873f145bb03a0bd319e7906113d19085908590899061533b565b60405180910390a183156113e8576113e8836119b6565b505092915050565b6113f861244a565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16611431576114316109828261288a565b60005b6002548110156114a1578173ffffffffffffffffffffffffffffffffffffffff166002828154811061146257fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611499576114948282612929565b6114a1565b600101611434565b5050565b600c5481565b60145463ffffffff1681565b6114bf612087565b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16156114fb576114fb6109826000836120aa565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601060205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f3e535d1ab441ef41c268fd9b52b478aee02d693c5ca2a84b5d26b89e0922e5e190610a0290839061522f565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61159d61244a565b6114a18282612929565b6115af612087565b6115bc8585858585612b78565b3073ffffffffffffffffffffffffffffffffffffffff1663c6f3a4276040518163ffffffff1660e01b815260040160006040518083038186803b15801561160257600080fd5b505afa158015611616573d6000803e3d6000fd5b505050505050505050565b60135481565b3360009081526010602052604090205460ff1661164a5761164a61098233612c3b565b61165381612c56565b3461172d57611660610e04565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd8330846040518463ffffffff1660e01b815260040161169c93929190615277565b602060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116ee919081019061508e565b61172d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172490615455565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600960205260409020548061175e575061118d565b600061176982610e1c565b602001516bffffffffffffffffffffffff16905060135481101561178e57505061118d565b600c5460008381526015602090815260408083208484528252808320601690925290912081548061183d576000806117c68888612c77565b6002870182905560018701819055600386015491935091506117ee908263ffffffff61286e16565b60038501556001808501546118089163ffffffff61286e16565b6001850155604051889087907f14b098103235344975b17508c2391721cc9ac3f3fa2b56c7ff46f8480dfd074f90600090a350505b61184d818863ffffffff61286e16565b83556002820154611864908863ffffffff61286e16565b8260020181905550505050505050505050565b60085481565b33611886611299565b73ffffffffffffffffffffffffffffffffffffffff166315cc36f282846040518363ffffffff1660e01b81526004016118c09291906152a8565b600060405180830381600087803b1580156118da57600080fd5b505af11580156118ee573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff811660009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604090206119409083612d03565b8073ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a836040516119869190615332565b60405180910390a25050565b60175481565b60006119b1601154600d5461286e90919063ffffffff16565b905090565b3360008181526009602052604080822084905551839183917f5640833634fce74eb9211d1209a91dd5a1c8c6a751696bff9323b4db67f815139190a35050565b610e4c8133612d6d565b60016020526000908152604090205460ff1681565b6000611a1f614f2a565b506000828152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611a8385612f45565b91509150611a9683602001518383613002565b5095945050505050565b600b6020526000908152604090205481565b60606002805480602002602001604051908101604052809291908181526020018280548015611b1757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611aec575b5050505050905090565b60125463ffffffff1681565b611b35612087565b611b3d613043565b611b45613056565b565b611b4f614ee9565b60016000526004602052611b827fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe056122ea565b90506000826001811115611b9257fe5b1415610bef576000611ba2611299565b73ffffffffffffffffffffffffffffffffffffffff16639706e0c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611be757600080fd5b505afa158015611bfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c1f919081019061518c565b9050611c4e611c4983602001516bffffffffffffffffffffffff168361215490919063ffffffff16565b613081565b6bffffffffffffffffffffffff90811660208401526040830151611c7e91611c499184911663ffffffff61215416565b6bffffffffffffffffffffffff16604083015250919050565b601454640100000000900463ffffffff1681565b6000611cb5614f2a565b506000838152600a6020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000900463ffffffff16918101919091529080611d1986612f45565b915091506000611d2e84602001518484613002565b915050611d3d878783856130a5565b979650505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b611d7e614ee9565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208584529091529020610ea5906122ea565b611dbf61244a565b73ffffffffffffffffffffffffffffffffffffffff8116611dea57611de56109826131f2565b610e4c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600c546000611e7082600163ffffffff61215416565b9050611e7a614eba565b50600081815260166020908152604091829020825160a08101845281548152600182015492810183905260028201549381019390935260038101546060840152600401546080830152611ecf57505050610e4c565b611ed7614f09565b5060008481526015602090815260408083208584528252918290208251606081018452815480825260018301549382019390935260029091015492810192909252611f255750505050610e4c565b6000858152601560209081526040808320868452909152812081815560018101829055600201819055611f588284613229565b9050600080611f6c8884866040015161329e565b9150915087877ff1116b309178aa62dcb6bf8c3b8bc2321724907c7ebf52192d14c8ce3aa9194c8484604051611fa392919061537d565b60405180910390a36000611fbd838363ffffffff61286e16565b6080870151909150611fd5908263ffffffff61286e16565b6080870181905260008881526016602090815260409091206004019190915586015161200890600163ffffffff61215416565b602080880182815260008a8152601690925260409091206001019190915551611616576080860151865188917fb463d19ecf455be65365092cf8e1db6934a0334cf8cd532ddf9964d01f36b5b291612066908263ffffffff61215416565b60405161207492919061537d565b60405180910390a2505050505050505050565b3360009081526001602052604090205460ff16611b4557611b45610982336133ee565b606063b9588e4360e01b83836040516024016120c79291906153c5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b805160208201fd5b60008282111561216d5761216d61098260028585613409565b50900390565b606063614b800a60e01b83836040516024016120c792919061537d565b30318015610e4c576121a0610e04565b73ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156121e757600080fd5b505af11580156121fb573d6000803e3d6000fd5b505050505050565b60006119b1601754612213610e04565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161224b919061522f565b60206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061229b919081019061518c565b9063ffffffff61215416565b4260006122b2611998565b9050818111156122c9576122c961098282846134ae565b600c546000906122e090600163ffffffff61286e16565b600c555050600d55565b6122f2614ee9565b5060408051606081018252825467ffffffffffffffff81168083526bffffffffffffffffffffffff680100000000000000008304811660208501527401000000000000000000000000000000000000000090920490911692820192909252600c54909181111561238a57612365816134cb565b67ffffffffffffffff16825260408201516bffffffffffffffffffffffff1660208301525b50919050565b600081831061239f5781610ea5565b5090919050565b60606384c8b7c960e01b83836040516024016120c792919061537d565b6123cb614ee9565b6123d4836122ea565b90506123fe611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61215416565b6bffffffffffffffffffffffff16602082015261118d83826134eb565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b4557600054611b459061098290339073ffffffffffffffffffffffffffffffffffffffff166135a5565b73ffffffffffffffffffffffffffffffffffffffff81166124b7576124b76109826135c2565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16156124f1576124f1610982826135f9565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b6125cb83613614565b6125d58383612d6d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600660209081526040808320868452909152902061260f908261364b565b6000838152600760205260409020612627908261364b565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe058261364b565b61266483613614565b61266e8383612d6d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260066020908152604080832086845290915290206126a890826136a3565b60008381526007602052604090206126c090826136a3565b6001600052600460205261118d7fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe05826136a3565b6126fe83836136de565b156127085761118d565b612710614ee9565b612719846122ea565b9050612723614ee9565b61272c846122ea565b905081604001516bffffffffffffffffffffffff16831115612767576127676109828484604001516bffffffffffffffffffffffff166123a6565b604082015161278e90611c49906bffffffffffffffffffffffff168563ffffffff61215416565b6bffffffffffffffffffffffff9081166040808501919091528201516127bf91611c4991168563ffffffff61286e16565b6bffffffffffffffffffffffff1660408201526127dc85836134eb565b6127e684826134eb565b5050505050565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff163381146114a1576114a161098233846136e5565b620f424063ffffffff8216111561284b5761284661098260008584613702565b61118d565b8163ffffffff168163ffffffff16111561118d5761118d61098260018584613702565b600082820183811015610ea557610ea561098260008686613409565b606063eb5108a260e01b826040516024016128a5919061522f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16612962576129626109828361288a565b600254811061297d5761297d61098282600280549050613721565b8173ffffffffffffffffffffffffffffffffffffffff16600282815481106129a157fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614612a0357612a03610982600283815481106129db57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461373e565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110612a7e57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff9092169183908110612ab157fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190612b309082614f41565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60118590556012805463ffffffff8087167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000092831617909255601385905560148054848416640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9487169190931617929092161790556040517f613157dbb0e920deab8ad6ddd3805e87cbf57344b9fe780f1764790ec789754290612c2c9087908790879087908790615573565b60405180910390a15050505050565b606063b56d2df060e01b826040516024016128a5919061522f565b803414158015612c6557503415155b15610e4c57610e4c610982823461375b565b6000828152600a602052604081205481908190612caa9073ffffffffffffffffffffffffffffffffffffffff1686611d76565b602001516bffffffffffffffffffffffff169050612cce848263ffffffff61215416565b601254909350612cf990612cec9063ffffffff16620f424086613778565b829063ffffffff61286e16565b9150509250929050565b612d0b614ee9565b612d14836122ea565b9050612d3e611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b6bffffffffffffffffffffffff9081166040830152602082015161242d91611c4991168463ffffffff61286e16565b612d768261379a565b6000612d8583836000806130a5565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083208784529091529020909150612dc1906122ea565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600660209081526040808320888452825291829020845181549286015195909301517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921667ffffffffffffffff909316929092177fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff16680100000000000000006bffffffffffffffffffffffff95861602179092167401000000000000000000000000000000000000000093909216929092021790558015612f3c57612ea6838261380e565b612eae610e04565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612ee89291906152a8565b602060405180830381600087803b158015612f0257600080fd5b505af1158015612f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f3a919081019061508e565b505b61118d83613856565b6000806000612f606001600c5461215490919063ffffffff16565b9050612f6a614f09565b50600084815260156020908152604080832084845282528083208151606080820184528254825260018084015483870152600293840154838601528787526016865295849020845160a0810186528154815296810154958701959095529184015492850192909252600383015490840152600490910154608083015290612ff2908290613229565b9350806040015192505050915091565b600080826130125783915061303b565b61302663ffffffff8616620f424086613863565b9150613038848363ffffffff61215416565b90505b935093915050565b61304b613899565b42600d556001600c55565b61305e6138ae565b620d2f00620dbba068056bc75e2d63100000600260036127e68585858585612b78565b806bffffffffffffffffffffffff81168114610bef57610bef610982600284613913565b600c546000906130b3614ee9565b5073ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083208984528252918290208251606081018452905467ffffffffffffffff81168083526bffffffffffffffffffffffff6801000000000000000083048116948401949094527401000000000000000000000000000000000000000090910490921692810192909252821415613154576000925050506131ea565b61316081838787613930565b81519093506000906131839067ffffffffffffffff16600163ffffffff61286e16565b90506131c16131b48984602001516bffffffffffffffffffffffff16856000015167ffffffffffffffff16856139b3565b859063ffffffff61286e16565b93506131e46131b48984604001516bffffffffffffffffffffffff1684876139b3565b93505050505b949350505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b815160009061323757610ea8565b8151835160408401516020860151606086015160145461326d95949392919063ffffffff80821691640100000000900416613a4c565b608083015183519192506000916132899163ffffffff61215416565b905081811015613297578091505b5092915050565b6000806132a9614f2a565b506000858152600a602090815260409182902082518084019093525473ffffffffffffffffffffffffffffffffffffffff8116835274010000000000000000000000000000000000000000900463ffffffff1690820181905261330d908686613002565b909350915082156133ca57613320610e04565b81516040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092169163a9059cbb916133769187906004016152a8565b602060405180830381600087803b15801561339057600080fd5b505af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133c8919081019061508e565b505b81156133e5576133da8683613b0f565b6133e5868386613b50565b50935093915050565b606063b65a25b960e01b826040516024016128a5919061522f565b606063e946c1bb60e01b8484846040516024016134289392919061538b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b606063a6bcde4760e01b83836040516024016120c792919061537d565b8067ffffffffffffffff81168114610bef57610bef610982600184613913565b8051825460408301516020909301516bffffffffffffffffffffffff90811668010000000000000000027fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff91909416740100000000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff9094167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090931692909217929092161716179055565b6060631de45ad160e01b83836040516024016120c7929190615250565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b826040516024016128a5919061522f565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff16610e4c57610e4c610982826000613c39565b613653614ee9565b61365c836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661215490919063ffffffff16565b6bffffffffffffffffffffffff16604082015261118d83826134eb565b6136ab614ee9565b6136b4836122ea565b9050613686611c498383604001516bffffffffffffffffffffffff1661286e90919063ffffffff16565b1460011690565b60606382ded78560e01b83836040516024016120c79291906152a8565b60606322df959760e01b848484604051602401613428939291906153f7565b606063e9f8377160e01b83836040516024016120c792919061537d565b606063140a84db60e01b83836040516024016120c7929190615250565b60606331d7a50560e01b83836040516024016120c792919061537d565b60006131ea8361378e868563ffffffff613c5616565b9063ffffffff613c8716565b600c546000906137b190600163ffffffff61215416565b90506137bb614f09565b50600082815260156020908152604080832084845282529182902082516060810184528154808252600183015493820193909352600290910154928101929092521561118d5761118d6109828484613cb1565b6000828152600b602052604090205461382d908263ffffffff61215416565b6000838152600b602052604090205560175461384f908263ffffffff61215416565b6017555050565b610e4c8160006001613b50565b60006131ea8361378e61387d82600163ffffffff61215416565b61388d888763ffffffff613c5616565b9063ffffffff61286e16565b600d5415611b4557611b456109826000613cce565b601154158015906138c6575060125463ffffffff1615155b80156138d3575060135415155b80156138e6575060145463ffffffff1615155b80156139015750601454640100000000900463ffffffff1615155b15611b4557611b456109826001613cce565b606063c996af7b60e01b83836040516024016120c79291906153ad565b600082158061393d575081155b1561394a575060006131ea565b600061395d85600163ffffffff61215416565b865167ffffffffffffffff16101561397957856040015161397f565b85602001515b6bffffffffffffffffffffffff1690508061399e5760009150506131ea565b6139a9848483613778565b9695505050505050565b60008315806139c157508183145b156139ce575060006131ea565b818310613a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117249061541e565b613a0f614f65565b613a198685613d0d565b9050613a23614f65565b613a2d8785613d0d565b9050611d3d81600001518260200151846000015185602001518a613e2b565b600080613a598888613eb7565b90506000613a678787613eb7565b9050811580613a74575080155b15613a85575060009150611d3d9050565b600081831315613a9e57613a998284613f09565b613aa8565b613aa88383613f09565b9050613ad1613acc613ab983613f28565b8863ffffffff168863ffffffff166145ca565b6145d9565b905081831315613aea57613ae58282613f09565b613af4565b613af48282614bc3565b9050613b00818c614bef565b9b9a5050505050505050505050565b6000828152600b6020526040902054613b2e908263ffffffff61286e16565b6000838152600b602052604090205560175461384f908263ffffffff61286e16565b6000838152600f6020526040902054600c5480821415613b7157505061118d565b613b79614f65565b506000858152600e602090815260408083208584528252918290208251808401909352805483526001015490820152613bb0614f65565b613bb982614c31565b15613bf257613bd2826000015183602001518888614c3a565b60208301819052818352613be69190614c9c565b60208301528152613bfd565b602081018590528581525b6000878152600e6020908152604080832086845282528083208451815593820151600190940193909355978152600f9097529095205550505050565b6060639ae94f0160e01b83836040516024016120c792919061536d565b600082613c6557506000610ea8565b82820282848281613c7257fe5b0414610ea557610ea561098260018686613409565b600081613c9d57613c9d61098260038585613409565b6000828481613ca857fe5b04949350505050565b6060635caa0b0560e01b83836040516024016120c792919061537d565b60607f0b02d77300000000000000000000000000000000000000000000000000000000826001811115613cfd57fe5b6040516024016128a591906155df565b613d15614f65565b506000828152600e602090815260408083208484528252918290208251808401909352805483526001015490820152613d4d81614c31565b15613d5757610ea8565b6000613d6a83600163ffffffff61215416565b6000858152600e60209081526040808320848452825291829020825180840190935280548352600101549082015292509050613da582614c31565b15613db05750610ea8565b6000848152600f602052604090205483811015613e0d576000858152600e6020908152604080832084845282529182902082518084019093528054835260010154908201529250613e0083614c31565b15613e0d5750610ea89050565b50506040805180820190915260008152600160208201529392505050565b600081613e3a57506000613eae565b83613e5a57613e538561378e848963ffffffff613c5616565b9050613eae565b6000613e7f613e6f868863ffffffff613c5616565b61229b898763ffffffff613c5616565b90506000613e93828663ffffffff613c8716565b9050613ea98761378e868463ffffffff613c5616565b925050505b95945050505050565b600080831215613ecf57613ecf610982600185614cc5565b6000821215613ee657613ee6610982600184614cc5565b610ea5613f03846f80000000000000000000000000000000614d06565b83614d59565b6000610ea5613f03846f80000000000000000000000000000000614d06565b60006f80000000000000000000000000000000821315613f5057613f50610982600184614dda565b60008213613f6657613f66610982600084614dda565b6f80000000000000000000000000000000821415613f8657506000610bef565b640733048c5a8213613fb957507fffffffffffffffffffffffffffffffe010000000000000000000000000000000610bef565b60008060006a01c8464f761647600000008513614018577ffffffffffffffffffffffffffffffff000000000000000000000000000000000909301926a01c8464f761647600000006f8000000000000000000000000000000086020594505b6cf1aaddd7742e900000000000008513614076577ffffffffffffffffffffffffffffffff800000000000000000000000000000000909301926cf1aaddd7742e900000000000006f8000000000000000000000000000000086020594505b6e0afe10820813d7800000000000000085136140d8577ffffffffffffffffffffffffffffffffc00000000000000000000000000000000909301926e0afe10820813d780000000000000006f8000000000000000000000000000000086020594505b6f02582ab704279ec00000000000000000851361413c577ffffffffffffffffffffffffffffffffe00000000000000000000000000000000909301926f02582ab704279ec000000000000000006f8000000000000000000000000000000086020594505b6f1152aaa3bf81cc00000000000000000085136141a0577fffffffffffffffffffffffffffffffff00000000000000000000000000000000909301926f1152aaa3bf81cc0000000000000000006f8000000000000000000000000000000086020594505b6f2f16ac6c59de700000000000000000008513614204577fffffffffffffffffffffffffffffffff80000000000000000000000000000000909301926f2f16ac6c59de700000000000000000006f8000000000000000000000000000000086020594505b6f4da2cbf1be58280000000000000000008513614268577fffffffffffffffffffffffffffffffffc0000000000000000000000000000000909301926f4da2cbf1be58280000000000000000006f8000000000000000000000000000000086020594505b6f63afbe7ab2082c00000000000000000085136142cc577fffffffffffffffffffffffffffffffffe0000000000000000000000000000000909301926f63afbe7ab2082c0000000000000000006f8000000000000000000000000000000086020594505b6f70f5a893b608861e1f58934f97aea57d8513614330577ffffffffffffffffffffffffffffffffff0000000000000000000000000000000909301926f70f5a893b608861e1f58934f97aea57d6f8000000000000000000000000000000086020594505b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000850192508291506f80000000000000000000000000000000828002059050700100000000000000000000000000000000838103830205840193506f80000000000000000000000000000000818302816143a657fe5b059150700200000000000000000000000000000000836faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa038302816143d757fe5b05840193506f80000000000000000000000000000000818302816143f757fe5b059150700300000000000000000000000000000000836f999999999999999999999999999999990383028161442857fe5b05840193506f800000000000000000000000000000008183028161444857fe5b059150700400000000000000000000000000000000836f924924924924924924924924924924920383028161447957fe5b05840193506f800000000000000000000000000000008183028161449957fe5b059150700500000000000000000000000000000000836f8e38e38e38e38e38e38e38e38e38e38e038302816144ca57fe5b05840193506f80000000000000000000000000000000818302816144ea57fe5b059150700600000000000000000000000000000000836f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b0383028161451b57fe5b05840193506f800000000000000000000000000000008183028161453b57fe5b059150700700000000000000000000000000000000836f89d89d89d89d89d89d89d89d89d89d890383028161456c57fe5b05840193506f800000000000000000000000000000008183028161458c57fe5b059150700800000000000000000000000000000000836f88888888888888888888888888888888038302816145bd57fe5b0584019350505050919050565b60006131ea613f038585614d06565b60007fffffffffffffffffffffffffffffffe01000000000000000000000000000000082121561460b57506000610bef565b8161462757506f80000000000000000000000000000000610bef565b600082131561463e5761463e610982600184614dda565b6f800000000000000000000000000000006f1000000000000000000000000000000083078080028290056710e1b3be415a0000810293909301929091818302059050806705a0913f6b1e000002830192506f80000000000000000000000000000000828202816146aa57fe5b05905080670168244fdac7800002830192506f80000000000000000000000000000000828202816146d757fe5b05905080664807432bc1800002830192506f800000000000000000000000000000008282028161470357fe5b05905080660c0135dca0400002830192506f800000000000000000000000000000008282028161472f57fe5b059050806601b707b1cdc00002830192506f800000000000000000000000000000008282028161475b57fe5b059050806536e0f639b80002830192506f800000000000000000000000000000008282028161478657fe5b05905080650618fee9f80002830192506f80000000000000000000000000000000828202816147b157fe5b05905080649c197dcc0002830192506f80000000000000000000000000000000828202816147db57fe5b05905080640e30dce40002830192506f800000000000000000000000000000008282028161480557fe5b0590508064012ebd130002830192506f800000000000000000000000000000008282028161482f57fe5b059050806317499f0002830192506f800000000000000000000000000000008282028161485857fe5b059050806301a9d48002830192506f800000000000000000000000000000008282028161488157fe5b05905080621c638002830192506f80000000000000000000000000000000828202816148a957fe5b059050806201c63802830192506f80000000000000000000000000000000828202816148d157fe5b05905080611ab802830192506f80000000000000000000000000000000828202816148f857fe5b0590508061017c02830192506f800000000000000000000000000000008282028161491f57fe5b05905080601402830192506f800000000000000000000000000000008282028161494557fe5b600095909503946721c3677c82b400009190059384010582016f80000000000000000000000000000000019290507010000000000000000000000000000000008416156149b4577243cbaf42a000812488fc5c220ad7b97bf6e99e6cf1aaddd7742e56d32fb9f9974484020592505b7008000000000000000000000000000000008416156149f6577105d27a9f51c31b7c2f8038212a05747799916e0afe10820813d65dfe6a33c07f738f84020592505b700400000000000000000000000000000000841615614a3857701b4c902e273a58678d6d3bfdb93db96d026f02582ab704279e8efd15e0265855c47a84020592505b700200000000000000000000000000000000841615614a7a577003b1cc971a9bb5b9867477440d6d1577506f1152aaa3bf81cb9fdb76eae12d02957184020592505b700100000000000000000000000000000000841615614abc5770015bf0a8b1457695355fb8ac404e7a79e36f2f16ac6c59de6f8d5d6f63c1482a7c8684020592505b6f80000000000000000000000000000000841615614afc576fd3094c70f034de4b96ff7d5b6f99fcd86f4da2cbf1be5827f9eb3ad1aa9866ebb384020592505b6f40000000000000000000000000000000841615614b3c576fa45af1e1f40c333b3de1db4dd55f29a76f63afbe7ab2082ba1a0ae5e4eb1b479dc84020592505b6f20000000000000000000000000000000841615614b7c576f910b022db7ae67ce76b441c27035c6a16f70f5a893b608861e1f58934f97aea57d84020592505b6f10000000000000000000000000000000841615614bbc576f88415abbe9a76bead8d00cf112e4d4a86f783eafef1c0a8f3978c7f81824d62ebf84020592505b5050919050565b60006f80000000000000000000000000000000614be08484614d06565b81614be757fe5b059392505050565b600080821215614c0757614c07610982600184614cc5565b6000614c138484614d06565b905060008113614c27576000915050610ea8565b607f1c9392505050565b60200151151590565b60008085614c4c575082905081614c93565b83614c5b575084905083614c93565b614c7e614c6e858763ffffffff613c5616565b61388d888663ffffffff613c5616565b9150614c90858463ffffffff613c5616565b90505b94509492505050565b600080614cba84846f80000000000000000000000000000000614e09565b915091509250929050565b60607fbd79545f00000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b836040516024016120c79291906155ed565b6000821580614d13575081155b15614d2057506000610ea8565b5081810281838281614d2e57fe5b05141580614d45575082828281614d4157fe5b0514155b15610ea857610ea861098260018585614e77565b600081614d6f57614d6f61098260028585614e77565b7f800000000000000000000000000000000000000000000000000000000000000083148015614dbd5750817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff145b15614dd157614dd161098260038585614e77565b818381614be757fe5b60607fed2f26a100000000000000000000000000000000000000000000000000000000836001811115614cf457fe5b60008082851180614e1957508284115b15614e6e57600084861015614e2e5784614e30565b855b9050614e42818563ffffffff613c8716565b9050614e54868263ffffffff613c8716565b9250614e66858263ffffffff613c8716565b91505061303b565b50929391925050565b60607f8c12dfe700000000000000000000000000000000000000000000000000000000846003811115614ea657fe5b848460405160240161342893929190615600565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b60405180606001604052806000815260200160008152602001600081525090565b604080518082019091526000808252602082015290565b81548183558181111561118d5760008381526020902061118d918101908301614f7f565b604051806040016040528060008152602001600081525090565b610b5791905b80821115614f995760008155600101614f85565b5090565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ea857600080fd5b60006040828403121561238a578081fd5b600060208284031215614fe3578081fd5b610ea58383614f9d565b600080600060608486031215615001578182fd5b833561500c81615625565b9250602084013561501c81615625565b929592945050506040919091013590565b6000806040838503121561503f578182fd5b6150498484614f9d565b946020939093013593505050565b60008060408385031215615069578182fd5b6150738484614f9d565b9150602083013561508381615655565b809150509250929050565b60006020828403121561509f578081fd5b8151610ea581615647565b6000602082840312156150bb578081fd5b5035919050565b600080604083850312156150d4578182fd5b82359150602083013561508381615625565b600080604083850312156150f8578182fd5b50508035926020909101359150565b60008060408385031215615119578182fd5b82359150602083013563ffffffff81168114615083578182fd5b600060208284031215615144578081fd5b8135610ea581615655565b600080600060a08486031215615163578283fd5b61516d8585614fc1565b925061517c8560408601614fc1565b9150608084013590509250925092565b60006020828403121561519d578081fd5b5051919050565b600080600080600060a086880312156151bb578283fd5b8535945060208601356151cd81615662565b93506040860135925060608601356151e481615662565b915060808601356151f481615662565b809150509295509295909350565b60008060408385031215615214578182fd5b823561521f81615662565b9150602083013561508381615647565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561531c57835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016152e8565b509095945050505050565b901515815260200190565b90815260200190565b92835273ffffffffffffffffffffffffffffffffffffffff91909116602083015263ffffffff16604082015260600190565b9182521515602082015260400190565b918252602082015260400190565b606081016004851061539957fe5b938152602081019290925260409091015290565b60408101600384106153bb57fe5b9281526020015290565b604081016153d28461561b565b92815273ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b606081016154048561561b565b938152602081019290925263ffffffff1660409091015290565b60208082526013908201527f43525f494e54455256414c5f494e56414c494400000000000000000000000000604082015260600190565b60208082526014908201527f574554485f5452414e534645525f4641494c4544000000000000000000000000604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b815173ffffffffffffffffffffffffffffffffffffffff16815260209182015163ffffffff169181019190915260400190565b815167ffffffffffffffff1681526020808301516bffffffffffffffffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b948552602085019390935260408401919091526060830152608082015260a00190565b94855263ffffffff938416602086015260408501929092528216606084015216608082015260a00190565b92835260ff918216602084015216604082015260600190565b63ffffffff91909116815260200190565b63ffffffff92831681529116602082015260400190565b60ff91909116815260200190565b60ff929092168252602082015260400190565b60ff9390931683526020830191909152604082015260600190565b60028110610e4c57fe5b73ffffffffffffffffffffffffffffffffffffffff81168114610e4c57600080fd5b8015158114610e4c57600080fd5b60028110610e4c57600080fd5b63ffffffff81168114610e4c57600080fdfea365627a7a72315820aaa74c9eed38f6d75114c73ae847a986db473c91ccb1cf6041795e71c08e39206c6578706572696d656e74616cf564736f6c634300050c0040" } } }, diff --git a/packages/contract-artifacts/artifacts/StakingProxy.json b/packages/contract-artifacts/artifacts/StakingProxy.json index ae92ed7e2f..487d6f3c87 100644 --- a/packages/contract-artifacts/artifacts/StakingProxy.json +++ b/packages/contract-artifacts/artifacts/StakingProxy.json @@ -358,10 +358,10 @@ }, "evm": { "bytecode": { - "object": "0x60806040523480156200001157600080fd5b5060405162001f0c38038062001f0c83398101604081905262000034916200071a565b600080546001600160a01b031916339081179091556200005d906001600160e01b036200008e16565b62000071816001600160e01b036200019116565b620000873360006001600160e01b03620002b716565b50620007d0565b6001600160a01b038116620000c757620000c7620000b66200046060201b620012e01760201c565b6200049860201b620005db1760201c565b6001600160a01b03811660009081526001602052604090205460ff1615620001035762000103620000b682620004a060201b620013171760201c565b6001600160a01b0381166000818152600160208190526040808320805460ff19168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b03191684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600380546001600160a01b0319166001600160a01b0383161790556040517f048368388f801041f7690185c4e28b6f3505c740c47be8ac104b55df666bfc8490620001de90839062000786565b60405180910390a160035460408051600481526024810182526020810180516001600160e01b03167fe1c7392a0000000000000000000000000000000000000000000000000000000017905290516000926060926001600160a01b03909116916200024a91906200074a565b600060405180830381855af49150503d806000811462000287576040519150601f19603f3d011682016040523d82523d6000602084013e6200028c565b606091505b5091509150816200029f57805160208201fd5b620002b26001600160e01b036200050e16565b505050565b6001600160a01b03821660009081526001602052604090205460ff16620002f257620002f2620000b683620005e960201b62000ebf1760201c565b60025481106200031c576200031c620000b6826002805490506200060660201b620013321760201c565b816001600160a01b0316600282815481106200033457fe5b6000918252602090912001546001600160a01b0316146200038d576200038d620000b6600283815481106200036557fe5b600091825260209182902001546001600160a01b03169085906200134f62000677821b17901c565b6001600160a01b0382166000908152600160205260409020805460ff19169055600280546000198101908110620003c057fe5b600091825260209091200154600280546001600160a01b039092169183908110620003e757fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600280546000190190620004259082620006d8565b5060405133906001600160a01b038416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60408051808201909152600481527f57654fe40000000000000000000000000000000000000000000000000000000060208201525b90565b805160208201fd5b606063de16f1a060e01b82604051602401620004bd919062000786565b60408051601f198184030181529190526020810180516001600160e01b03167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6011546206978081108062000525575062278d0081115b15620005465762000546620000b660046200069660201b620011ad1760201c565b60145463ffffffff6401000000008204811691168110806200056c575063ffffffff8116155b156200058d576200058d620000b660006200069660201b620011ad1760201c565b601254620f424063ffffffff9091161115620005be57620005be620000b660016200069660201b620011ad1760201c565b60026013541015620005e557620005e5620000b660036200069660201b620011ad1760201c565b5050565b606063eb5108a260e01b82604051602401620004bd919062000786565b606063e9f8377160e01b838360405160240162000625929190620007b4565b60408051601f198184030181529190526020810180516001600160e01b03167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b606063140a84db60e01b8383604051602401620006259291906200079a565b60607ffc45bd1100000000000000000000000000000000000000000000000000000000826004811115620006c657fe5b604051602401620004bd9190620007c2565b815481835581811115620002b257600083815260209020620002b29181019083016200049591905b8082111562000716576000815560010162000700565b5090565b6000602082840312156200072c578081fd5b81516001600160a01b038116811462000743578182fd5b9392505050565b60008251815b818110156200076c576020818601810151858301520162000750565b818111156200077b5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b918252602082015260400190565b60ff91909116815260200190565b61172c80620007e06000396000f3fe6080604052600436106101ac5760003560e01c80638da5cb5b116100ec578063c6f3a4271161008a578063e8eeb3f811610064578063e8eeb3f814610539578063ee99205c1461054e578063f187653214610563578063f2fde38b14610583576101ac565b8063c6f3a427146104ed578063d39de6e914610502578063e0ee036e14610524576101ac565b8063a657e579116100c6578063a657e57914610483578063b053152414610498578063b9181611146104ad578063c18c9141146104cd576101ac565b80638da5cb5b146104395780639ad267441461044e578063a26171e21461046e576101ac565b80635bd4ab7311610159578063707129391161013357806370712939146103b557806376671808146103d557806381666796146103ea578063856a65eb1461040c576101ac565b80635bd4ab7314610353578063634038011461038057806366615d5614610395576101ac565b806342f1181e1161018a57806342f1181e146102e4578063494503d414610304578063587da02314610331576101ac565b80632a94c2791461026457806337b006a61461029c57806338229d93146102b3575b60035473ffffffffffffffffffffffffffffffffffffffff16806101da576101da6101d56105a3565b6105db565b600060608273ffffffffffffffffffffffffffffffffffffffff166000366040516102069291906114be565b600060405180830381855af49150503d8060008114610241576040519150601f19603f3d011682016040523d82523d6000602084013e610246565b606091505b5091509150816000811461025c57815182602001f35b815182602001fd5b34801561027057600080fd5b5061028461027f36600461149d565b6105e3565b60405161029393929190611661565b60405180910390f35b3480156102a857600080fd5b506102b161060f565b005b3480156102bf57600080fd5b506102d36102ce366004611485565b61066a565b604051610293959493929190611677565b3480156102f057600080fd5b506102b16102ff3660046113cd565b610699565b34801561031057600080fd5b5061032461031f366004611485565b6106ad565b60405161029391906114ea565b34801561033d57600080fd5b506103466106e1565b604051610293919061164a565b34801561035f57600080fd5b5061037361036e3660046113cd565b6106e7565b604051610293919061163f565b34801561038c57600080fd5b506103466106fc565b3480156103a157600080fd5b506102b16103b03660046113cd565b610702565b3480156103c157600080fd5b506102b16103d03660046113cd565b610713565b3480156103e157600080fd5b506103466107c8565b3480156103f657600080fd5b506103ff6107ce565b604051610293919061169a565b34801561041857600080fd5b5061042c610427366004611419565b6107da565b604051610293919061158b565b34801561044557600080fd5b50610324610967565b34801561045a57600080fd5b506102b16104693660046113ef565b610983565b34801561047a57600080fd5b50610346610995565b34801561048f57600080fd5b5061034661099b565b3480156104a457600080fd5b506103466109a1565b3480156104b957600080fd5b506103736104c83660046113cd565b6109a7565b3480156104d957600080fd5b506103466104e8366004611485565b6109bc565b3480156104f957600080fd5b506102b16109ce565b34801561050e57600080fd5b50610517610a67565b6040516102939190611532565b34801561053057600080fd5b506103ff610ad6565b34801561054557600080fd5b506103ff610ae2565b34801561055a57600080fd5b50610324610af6565b34801561056f57600080fd5b5061034661057e3660046113cd565b610b12565b34801561058f57600080fd5b506102b161059e3660046113cd565b610b24565b60408051808201909152600481527f6eff82850000000000000000000000000000000000000000000000000000000060208201525b90565b805160208201fd5b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b610617610bc7565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040517f6caedcb22a5c22c8ebd0caf751fec1228a6e006e6ee37169321e02d31ecc818390600090a1565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b6106a1610bec565b6106aa81610c33565b50565b600281815481106106ba57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600d5481565b60106020526000908152604090205460ff1681565b60115481565b61070a610bc7565b6106aa81610d64565b61071b610bec565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16610754576107546101d582610ebf565b60005b6002548110156107c4578173ffffffffffffffffffffffffffffffffffffffff166002828154811061078557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156107bc576107b78282610f5e565b6107c4565b600101610757565b5050565b600c5481565b60145463ffffffff1681565b6040805182815260208084028201019091526060906000908290849081801561081757816020015b60608152602001906001900390816108025790505b5060035490945073ffffffffffffffffffffffffffffffffffffffff1680610844576108446101d56105a3565b60005b82811461095b578173ffffffffffffffffffffffffffffffffffffffff1688888381811061087157fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126108ab57600080fd5b9091016020810191503567ffffffffffffffff8111156108ca57600080fd5b368190038213156108da57600080fd5b6040516108e89291906114be565b600060405180830381855af49150503d8060008114610923576040519150601f19603f3d011682016040523d82523d6000602084013e610928565b606091505b5090955093508461093b57835184602001fd5b8386828151811061094857fe5b6020908102919091010152600101610847565b50505050505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61098b610bec565b6107c48282610f5e565b60135481565b60085481565b60175481565b60016020526000908152604090205460ff1681565b600b6020526000908152604090205481565b601154620697808110806109e4575062278d0081115b156109f6576109f66101d560046111ad565b60145463ffffffff640100000000820481169116811080610a1b575063ffffffff8116155b15610a2d57610a2d6101d560006111ad565b601254620f424063ffffffff9091161115610a4f57610a4f6101d560016111ad565b600260135410156107c4576107c46101d560036111ad565b60606002805480602002602001604051908101604052809291908181526020018280548015610acc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610aa1575b5050505050905090565b60125463ffffffff1681565b601454640100000000900463ffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b610b2c610bec565b73ffffffffffffffffffffffffffffffffffffffff8116610b5757610b526101d56111ec565b6106aa565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b3360009081526001602052604090205460ff16610bea57610bea6101d533611223565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bea57600054610bea906101d590339073ffffffffffffffffffffffffffffffffffffffff1661123e565b73ffffffffffffffffffffffffffffffffffffffff8116610c5957610c596101d56112e0565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610c9357610c936101d582611317565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556040517f048368388f801041f7690185c4e28b6f3505c740c47be8ac104b55df666bfc8490610dd49083906114ea565b60405180910390a160035460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1c7392a00000000000000000000000000000000000000000000000000000000179052905160009260609273ffffffffffffffffffffffffffffffffffffffff90911691610e6091906114ce565b600060405180830381855af49150503d8060008114610e9b576040519150601f19603f3d011682016040523d82523d6000602084013e610ea0565b606091505b509150915081610eb257805160208201fd5b610eba6109ce565b505050565b606063eb5108a260e01b82604051602401610eda91906114ea565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610f9757610f976101d583610ebf565b6002548110610fb257610fb26101d582600280549050611332565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610fd657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614611038576110386101d56002838154811061101057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461134f565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106110b357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110e657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611165908261136c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60607ffc45bd11000000000000000000000000000000000000000000000000000000008260048111156111dc57fe5b604051602401610eda91906116ab565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b606063b65a25b960e01b82604051602401610eda91906114ea565b6060631de45ad160e01b838360405160240161125b92919061150b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b82604051602401610eda91906114ea565b606063e9f8377160e01b838360405160240161125b929190611653565b606063140a84db60e01b838360405160240161125b92919061150b565b815481835581811115610eba57600083815260209020610eba9181019083016105d891905b808211156113a55760008155600101611391565b5090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461096157600080fd5b6000602082840312156113de578081fd5b6113e883836113a9565b9392505050565b60008060408385031215611401578081fd5b61140b84846113a9565b946020939093013593505050565b6000806020838503121561142b578182fd5b823567ffffffffffffffff80821115611442578384fd5b81850186601f820112611453578485fd5b8035925081831115611463578485fd5b8660208085028301011115611476578485fd5b60200196919550909350505050565b600060208284031215611496578081fd5b5035919050565b600080604083850312156114af578182fd5b50508035926020909101359150565b6000828483379101908152919050565b600082516114e08184602087016116b9565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561158057835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161154c565b509095945050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611632577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526115f5818989018a85016116b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016959095018601945092850192908501906001016115b0565b5092979650505050505050565b901515815260200190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b948552602085019390935260408401919091526060830152608082015260a00190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b60005b838110156116d45781810151838201526020016116bc565b838111156116e3576000848401525b5050505056fea365627a7a7231582003a7ab09dc5f117d2ce80223a6c3d71e653458084b714201cda124931a1b9bb66c6578706572696d656e74616cf564736f6c634300050c0040" + "object": "0x60806040523480156200001157600080fd5b5060405162001f0c38038062001f0c83398101604081905262000034916200071a565b600080546001600160a01b031916339081179091556200005d906001600160e01b036200008e16565b62000071816001600160e01b036200019116565b620000873360006001600160e01b03620002b716565b50620007d0565b6001600160a01b038116620000c757620000c7620000b66200046060201b620012e01760201c565b6200049860201b620005db1760201c565b6001600160a01b03811660009081526001602052604090205460ff1615620001035762000103620000b682620004a060201b620013171760201c565b6001600160a01b0381166000818152600160208190526040808320805460ff19168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b03191684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600380546001600160a01b0319166001600160a01b0383161790556040517f048368388f801041f7690185c4e28b6f3505c740c47be8ac104b55df666bfc8490620001de90839062000786565b60405180910390a160035460408051600481526024810182526020810180516001600160e01b03167fe1c7392a0000000000000000000000000000000000000000000000000000000017905290516000926060926001600160a01b03909116916200024a91906200074a565b600060405180830381855af49150503d806000811462000287576040519150601f19603f3d011682016040523d82523d6000602084013e6200028c565b606091505b5091509150816200029f57805160208201fd5b620002b26001600160e01b036200050e16565b505050565b6001600160a01b03821660009081526001602052604090205460ff16620002f257620002f2620000b683620005e960201b62000ebf1760201c565b60025481106200031c576200031c620000b6826002805490506200060660201b620013321760201c565b816001600160a01b0316600282815481106200033457fe5b6000918252602090912001546001600160a01b0316146200038d576200038d620000b6600283815481106200036557fe5b600091825260209182902001546001600160a01b03169085906200134f62000677821b17901c565b6001600160a01b0382166000908152600160205260409020805460ff19169055600280546000198101908110620003c057fe5b600091825260209091200154600280546001600160a01b039092169183908110620003e757fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600280546000190190620004259082620006d8565b5060405133906001600160a01b038416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60408051808201909152600481527f57654fe40000000000000000000000000000000000000000000000000000000060208201525b90565b805160208201fd5b606063de16f1a060e01b82604051602401620004bd919062000786565b60408051601f198184030181529190526020810180516001600160e01b03167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6011546206978081108062000525575062278d0081115b15620005465762000546620000b660046200069660201b620011ad1760201c565b60145463ffffffff6401000000008204811691168110806200056c575063ffffffff8116155b156200058d576200058d620000b660006200069660201b620011ad1760201c565b601254620f424063ffffffff9091161115620005be57620005be620000b660016200069660201b620011ad1760201c565b60026013541015620005e557620005e5620000b660036200069660201b620011ad1760201c565b5050565b606063eb5108a260e01b82604051602401620004bd919062000786565b606063e9f8377160e01b838360405160240162000625929190620007b4565b60408051601f198184030181529190526020810180516001600160e01b03167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b606063140a84db60e01b8383604051602401620006259291906200079a565b60607ffc45bd1100000000000000000000000000000000000000000000000000000000826004811115620006c657fe5b604051602401620004bd9190620007c2565b815481835581811115620002b257600083815260209020620002b29181019083016200049591905b8082111562000716576000815560010162000700565b5090565b6000602082840312156200072c578081fd5b81516001600160a01b038116811462000743578182fd5b9392505050565b60008251815b818110156200076c576020818601810151858301520162000750565b818111156200077b5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b918252602082015260400190565b60ff91909116815260200190565b61172c80620007e06000396000f3fe6080604052600436106101ac5760003560e01c80638da5cb5b116100ec578063c6f3a4271161008a578063e8eeb3f811610064578063e8eeb3f814610539578063ee99205c1461054e578063f187653214610563578063f2fde38b14610583576101ac565b8063c6f3a427146104ed578063d39de6e914610502578063e0ee036e14610524576101ac565b8063a657e579116100c6578063a657e57914610483578063b053152414610498578063b9181611146104ad578063c18c9141146104cd576101ac565b80638da5cb5b146104395780639ad267441461044e578063a26171e21461046e576101ac565b80635bd4ab7311610159578063707129391161013357806370712939146103b557806376671808146103d557806381666796146103ea578063856a65eb1461040c576101ac565b80635bd4ab7314610353578063634038011461038057806366615d5614610395576101ac565b806342f1181e1161018a57806342f1181e146102e4578063494503d414610304578063587da02314610331576101ac565b80632a94c2791461026457806337b006a61461029c57806338229d93146102b3575b60035473ffffffffffffffffffffffffffffffffffffffff16806101da576101da6101d56105a3565b6105db565b600060608273ffffffffffffffffffffffffffffffffffffffff166000366040516102069291906114be565b600060405180830381855af49150503d8060008114610241576040519150601f19603f3d011682016040523d82523d6000602084013e610246565b606091505b5091509150816000811461025c57815182602001f35b815182602001fd5b34801561027057600080fd5b5061028461027f36600461149d565b6105e3565b60405161029393929190611661565b60405180910390f35b3480156102a857600080fd5b506102b161060f565b005b3480156102bf57600080fd5b506102d36102ce366004611485565b61066a565b604051610293959493929190611677565b3480156102f057600080fd5b506102b16102ff3660046113cd565b610699565b34801561031057600080fd5b5061032461031f366004611485565b6106ad565b60405161029391906114ea565b34801561033d57600080fd5b506103466106e1565b604051610293919061164a565b34801561035f57600080fd5b5061037361036e3660046113cd565b6106e7565b604051610293919061163f565b34801561038c57600080fd5b506103466106fc565b3480156103a157600080fd5b506102b16103b03660046113cd565b610702565b3480156103c157600080fd5b506102b16103d03660046113cd565b610713565b3480156103e157600080fd5b506103466107c8565b3480156103f657600080fd5b506103ff6107ce565b604051610293919061169a565b34801561041857600080fd5b5061042c610427366004611419565b6107da565b604051610293919061158b565b34801561044557600080fd5b50610324610967565b34801561045a57600080fd5b506102b16104693660046113ef565b610983565b34801561047a57600080fd5b50610346610995565b34801561048f57600080fd5b5061034661099b565b3480156104a457600080fd5b506103466109a1565b3480156104b957600080fd5b506103736104c83660046113cd565b6109a7565b3480156104d957600080fd5b506103466104e8366004611485565b6109bc565b3480156104f957600080fd5b506102b16109ce565b34801561050e57600080fd5b50610517610a67565b6040516102939190611532565b34801561053057600080fd5b506103ff610ad6565b34801561054557600080fd5b506103ff610ae2565b34801561055a57600080fd5b50610324610af6565b34801561056f57600080fd5b5061034661057e3660046113cd565b610b12565b34801561058f57600080fd5b506102b161059e3660046113cd565b610b24565b60408051808201909152600481527f6eff82850000000000000000000000000000000000000000000000000000000060208201525b90565b805160208201fd5b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b610617610bc7565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040517f6caedcb22a5c22c8ebd0caf751fec1228a6e006e6ee37169321e02d31ecc818390600090a1565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b6106a1610bec565b6106aa81610c33565b50565b600281815481106106ba57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600d5481565b60106020526000908152604090205460ff1681565b60115481565b61070a610bc7565b6106aa81610d64565b61071b610bec565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16610754576107546101d582610ebf565b60005b6002548110156107c4578173ffffffffffffffffffffffffffffffffffffffff166002828154811061078557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156107bc576107b78282610f5e565b6107c4565b600101610757565b5050565b600c5481565b60145463ffffffff1681565b6040805182815260208084028201019091526060906000908290849081801561081757816020015b60608152602001906001900390816108025790505b5060035490945073ffffffffffffffffffffffffffffffffffffffff1680610844576108446101d56105a3565b60005b82811461095b578173ffffffffffffffffffffffffffffffffffffffff1688888381811061087157fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126108ab57600080fd5b9091016020810191503567ffffffffffffffff8111156108ca57600080fd5b368190038213156108da57600080fd5b6040516108e89291906114be565b600060405180830381855af49150503d8060008114610923576040519150601f19603f3d011682016040523d82523d6000602084013e610928565b606091505b5090955093508461093b57835184602001fd5b8386828151811061094857fe5b6020908102919091010152600101610847565b50505050505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61098b610bec565b6107c48282610f5e565b60135481565b60085481565b60175481565b60016020526000908152604090205460ff1681565b600b6020526000908152604090205481565b601154620697808110806109e4575062278d0081115b156109f6576109f66101d560046111ad565b60145463ffffffff640100000000820481169116811080610a1b575063ffffffff8116155b15610a2d57610a2d6101d560006111ad565b601254620f424063ffffffff9091161115610a4f57610a4f6101d560016111ad565b600260135410156107c4576107c46101d560036111ad565b60606002805480602002602001604051908101604052809291908181526020018280548015610acc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610aa1575b5050505050905090565b60125463ffffffff1681565b601454640100000000900463ffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b610b2c610bec565b73ffffffffffffffffffffffffffffffffffffffff8116610b5757610b526101d56111ec565b6106aa565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b3360009081526001602052604090205460ff16610bea57610bea6101d533611223565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bea57600054610bea906101d590339073ffffffffffffffffffffffffffffffffffffffff1661123e565b73ffffffffffffffffffffffffffffffffffffffff8116610c5957610c596101d56112e0565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610c9357610c936101d582611317565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556040517f048368388f801041f7690185c4e28b6f3505c740c47be8ac104b55df666bfc8490610dd49083906114ea565b60405180910390a160035460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1c7392a00000000000000000000000000000000000000000000000000000000179052905160009260609273ffffffffffffffffffffffffffffffffffffffff90911691610e6091906114ce565b600060405180830381855af49150503d8060008114610e9b576040519150601f19603f3d011682016040523d82523d6000602084013e610ea0565b606091505b509150915081610eb257805160208201fd5b610eba6109ce565b505050565b606063eb5108a260e01b82604051602401610eda91906114ea565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610f9757610f976101d583610ebf565b6002548110610fb257610fb26101d582600280549050611332565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610fd657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614611038576110386101d56002838154811061101057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461134f565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106110b357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110e657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611165908261136c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60607ffc45bd11000000000000000000000000000000000000000000000000000000008260048111156111dc57fe5b604051602401610eda91906116ab565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b606063b65a25b960e01b82604051602401610eda91906114ea565b6060631de45ad160e01b838360405160240161125b92919061150b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b82604051602401610eda91906114ea565b606063e9f8377160e01b838360405160240161125b929190611653565b606063140a84db60e01b838360405160240161125b92919061150b565b815481835581811115610eba57600083815260209020610eba9181019083016105d891905b808211156113a55760008155600101611391565b5090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461096157600080fd5b6000602082840312156113de578081fd5b6113e883836113a9565b9392505050565b60008060408385031215611401578081fd5b61140b84846113a9565b946020939093013593505050565b6000806020838503121561142b578182fd5b823567ffffffffffffffff80821115611442578384fd5b81850186601f820112611453578485fd5b8035925081831115611463578485fd5b8660208085028301011115611476578485fd5b60200196919550909350505050565b600060208284031215611496578081fd5b5035919050565b600080604083850312156114af578182fd5b50508035926020909101359150565b6000828483379101908152919050565b600082516114e08184602087016116b9565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561158057835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161154c565b509095945050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611632577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526115f5818989018a85016116b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016959095018601945092850192908501906001016115b0565b5092979650505050505050565b901515815260200190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b948552602085019390935260408401919091526060830152608082015260a00190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b60005b838110156116d45781810151838201526020016116bc565b838111156116e3576000848401525b5050505056fea365627a7a72315820264f7de7ca58238f45ed13ef6ac03be5e92f85e59eed756acfcdecdfe18a73df6c6578706572696d656e74616cf564736f6c634300050c0040" }, "deployedBytecode": { - "object": "0x6080604052600436106101ac5760003560e01c80638da5cb5b116100ec578063c6f3a4271161008a578063e8eeb3f811610064578063e8eeb3f814610539578063ee99205c1461054e578063f187653214610563578063f2fde38b14610583576101ac565b8063c6f3a427146104ed578063d39de6e914610502578063e0ee036e14610524576101ac565b8063a657e579116100c6578063a657e57914610483578063b053152414610498578063b9181611146104ad578063c18c9141146104cd576101ac565b80638da5cb5b146104395780639ad267441461044e578063a26171e21461046e576101ac565b80635bd4ab7311610159578063707129391161013357806370712939146103b557806376671808146103d557806381666796146103ea578063856a65eb1461040c576101ac565b80635bd4ab7314610353578063634038011461038057806366615d5614610395576101ac565b806342f1181e1161018a57806342f1181e146102e4578063494503d414610304578063587da02314610331576101ac565b80632a94c2791461026457806337b006a61461029c57806338229d93146102b3575b60035473ffffffffffffffffffffffffffffffffffffffff16806101da576101da6101d56105a3565b6105db565b600060608273ffffffffffffffffffffffffffffffffffffffff166000366040516102069291906114be565b600060405180830381855af49150503d8060008114610241576040519150601f19603f3d011682016040523d82523d6000602084013e610246565b606091505b5091509150816000811461025c57815182602001f35b815182602001fd5b34801561027057600080fd5b5061028461027f36600461149d565b6105e3565b60405161029393929190611661565b60405180910390f35b3480156102a857600080fd5b506102b161060f565b005b3480156102bf57600080fd5b506102d36102ce366004611485565b61066a565b604051610293959493929190611677565b3480156102f057600080fd5b506102b16102ff3660046113cd565b610699565b34801561031057600080fd5b5061032461031f366004611485565b6106ad565b60405161029391906114ea565b34801561033d57600080fd5b506103466106e1565b604051610293919061164a565b34801561035f57600080fd5b5061037361036e3660046113cd565b6106e7565b604051610293919061163f565b34801561038c57600080fd5b506103466106fc565b3480156103a157600080fd5b506102b16103b03660046113cd565b610702565b3480156103c157600080fd5b506102b16103d03660046113cd565b610713565b3480156103e157600080fd5b506103466107c8565b3480156103f657600080fd5b506103ff6107ce565b604051610293919061169a565b34801561041857600080fd5b5061042c610427366004611419565b6107da565b604051610293919061158b565b34801561044557600080fd5b50610324610967565b34801561045a57600080fd5b506102b16104693660046113ef565b610983565b34801561047a57600080fd5b50610346610995565b34801561048f57600080fd5b5061034661099b565b3480156104a457600080fd5b506103466109a1565b3480156104b957600080fd5b506103736104c83660046113cd565b6109a7565b3480156104d957600080fd5b506103466104e8366004611485565b6109bc565b3480156104f957600080fd5b506102b16109ce565b34801561050e57600080fd5b50610517610a67565b6040516102939190611532565b34801561053057600080fd5b506103ff610ad6565b34801561054557600080fd5b506103ff610ae2565b34801561055a57600080fd5b50610324610af6565b34801561056f57600080fd5b5061034661057e3660046113cd565b610b12565b34801561058f57600080fd5b506102b161059e3660046113cd565b610b24565b60408051808201909152600481527f6eff82850000000000000000000000000000000000000000000000000000000060208201525b90565b805160208201fd5b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b610617610bc7565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040517f6caedcb22a5c22c8ebd0caf751fec1228a6e006e6ee37169321e02d31ecc818390600090a1565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b6106a1610bec565b6106aa81610c33565b50565b600281815481106106ba57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600d5481565b60106020526000908152604090205460ff1681565b60115481565b61070a610bc7565b6106aa81610d64565b61071b610bec565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16610754576107546101d582610ebf565b60005b6002548110156107c4578173ffffffffffffffffffffffffffffffffffffffff166002828154811061078557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156107bc576107b78282610f5e565b6107c4565b600101610757565b5050565b600c5481565b60145463ffffffff1681565b6040805182815260208084028201019091526060906000908290849081801561081757816020015b60608152602001906001900390816108025790505b5060035490945073ffffffffffffffffffffffffffffffffffffffff1680610844576108446101d56105a3565b60005b82811461095b578173ffffffffffffffffffffffffffffffffffffffff1688888381811061087157fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126108ab57600080fd5b9091016020810191503567ffffffffffffffff8111156108ca57600080fd5b368190038213156108da57600080fd5b6040516108e89291906114be565b600060405180830381855af49150503d8060008114610923576040519150601f19603f3d011682016040523d82523d6000602084013e610928565b606091505b5090955093508461093b57835184602001fd5b8386828151811061094857fe5b6020908102919091010152600101610847565b50505050505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61098b610bec565b6107c48282610f5e565b60135481565b60085481565b60175481565b60016020526000908152604090205460ff1681565b600b6020526000908152604090205481565b601154620697808110806109e4575062278d0081115b156109f6576109f66101d560046111ad565b60145463ffffffff640100000000820481169116811080610a1b575063ffffffff8116155b15610a2d57610a2d6101d560006111ad565b601254620f424063ffffffff9091161115610a4f57610a4f6101d560016111ad565b600260135410156107c4576107c46101d560036111ad565b60606002805480602002602001604051908101604052809291908181526020018280548015610acc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610aa1575b5050505050905090565b60125463ffffffff1681565b601454640100000000900463ffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b610b2c610bec565b73ffffffffffffffffffffffffffffffffffffffff8116610b5757610b526101d56111ec565b6106aa565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b3360009081526001602052604090205460ff16610bea57610bea6101d533611223565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bea57600054610bea906101d590339073ffffffffffffffffffffffffffffffffffffffff1661123e565b73ffffffffffffffffffffffffffffffffffffffff8116610c5957610c596101d56112e0565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610c9357610c936101d582611317565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556040517f048368388f801041f7690185c4e28b6f3505c740c47be8ac104b55df666bfc8490610dd49083906114ea565b60405180910390a160035460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1c7392a00000000000000000000000000000000000000000000000000000000179052905160009260609273ffffffffffffffffffffffffffffffffffffffff90911691610e6091906114ce565b600060405180830381855af49150503d8060008114610e9b576040519150601f19603f3d011682016040523d82523d6000602084013e610ea0565b606091505b509150915081610eb257805160208201fd5b610eba6109ce565b505050565b606063eb5108a260e01b82604051602401610eda91906114ea565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610f9757610f976101d583610ebf565b6002548110610fb257610fb26101d582600280549050611332565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610fd657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614611038576110386101d56002838154811061101057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461134f565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106110b357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110e657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611165908261136c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60607ffc45bd11000000000000000000000000000000000000000000000000000000008260048111156111dc57fe5b604051602401610eda91906116ab565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b606063b65a25b960e01b82604051602401610eda91906114ea565b6060631de45ad160e01b838360405160240161125b92919061150b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b82604051602401610eda91906114ea565b606063e9f8377160e01b838360405160240161125b929190611653565b606063140a84db60e01b838360405160240161125b92919061150b565b815481835581811115610eba57600083815260209020610eba9181019083016105d891905b808211156113a55760008155600101611391565b5090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461096157600080fd5b6000602082840312156113de578081fd5b6113e883836113a9565b9392505050565b60008060408385031215611401578081fd5b61140b84846113a9565b946020939093013593505050565b6000806020838503121561142b578182fd5b823567ffffffffffffffff80821115611442578384fd5b81850186601f820112611453578485fd5b8035925081831115611463578485fd5b8660208085028301011115611476578485fd5b60200196919550909350505050565b600060208284031215611496578081fd5b5035919050565b600080604083850312156114af578182fd5b50508035926020909101359150565b6000828483379101908152919050565b600082516114e08184602087016116b9565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561158057835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161154c565b509095945050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611632577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526115f5818989018a85016116b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016959095018601945092850192908501906001016115b0565b5092979650505050505050565b901515815260200190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b948552602085019390935260408401919091526060830152608082015260a00190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b60005b838110156116d45781810151838201526020016116bc565b838111156116e3576000848401525b5050505056fea365627a7a7231582003a7ab09dc5f117d2ce80223a6c3d71e653458084b714201cda124931a1b9bb66c6578706572696d656e74616cf564736f6c634300050c0040" + "object": "0x6080604052600436106101ac5760003560e01c80638da5cb5b116100ec578063c6f3a4271161008a578063e8eeb3f811610064578063e8eeb3f814610539578063ee99205c1461054e578063f187653214610563578063f2fde38b14610583576101ac565b8063c6f3a427146104ed578063d39de6e914610502578063e0ee036e14610524576101ac565b8063a657e579116100c6578063a657e57914610483578063b053152414610498578063b9181611146104ad578063c18c9141146104cd576101ac565b80638da5cb5b146104395780639ad267441461044e578063a26171e21461046e576101ac565b80635bd4ab7311610159578063707129391161013357806370712939146103b557806376671808146103d557806381666796146103ea578063856a65eb1461040c576101ac565b80635bd4ab7314610353578063634038011461038057806366615d5614610395576101ac565b806342f1181e1161018a57806342f1181e146102e4578063494503d414610304578063587da02314610331576101ac565b80632a94c2791461026457806337b006a61461029c57806338229d93146102b3575b60035473ffffffffffffffffffffffffffffffffffffffff16806101da576101da6101d56105a3565b6105db565b600060608273ffffffffffffffffffffffffffffffffffffffff166000366040516102069291906114be565b600060405180830381855af49150503d8060008114610241576040519150601f19603f3d011682016040523d82523d6000602084013e610246565b606091505b5091509150816000811461025c57815182602001f35b815182602001fd5b34801561027057600080fd5b5061028461027f36600461149d565b6105e3565b60405161029393929190611661565b60405180910390f35b3480156102a857600080fd5b506102b161060f565b005b3480156102bf57600080fd5b506102d36102ce366004611485565b61066a565b604051610293959493929190611677565b3480156102f057600080fd5b506102b16102ff3660046113cd565b610699565b34801561031057600080fd5b5061032461031f366004611485565b6106ad565b60405161029391906114ea565b34801561033d57600080fd5b506103466106e1565b604051610293919061164a565b34801561035f57600080fd5b5061037361036e3660046113cd565b6106e7565b604051610293919061163f565b34801561038c57600080fd5b506103466106fc565b3480156103a157600080fd5b506102b16103b03660046113cd565b610702565b3480156103c157600080fd5b506102b16103d03660046113cd565b610713565b3480156103e157600080fd5b506103466107c8565b3480156103f657600080fd5b506103ff6107ce565b604051610293919061169a565b34801561041857600080fd5b5061042c610427366004611419565b6107da565b604051610293919061158b565b34801561044557600080fd5b50610324610967565b34801561045a57600080fd5b506102b16104693660046113ef565b610983565b34801561047a57600080fd5b50610346610995565b34801561048f57600080fd5b5061034661099b565b3480156104a457600080fd5b506103466109a1565b3480156104b957600080fd5b506103736104c83660046113cd565b6109a7565b3480156104d957600080fd5b506103466104e8366004611485565b6109bc565b3480156104f957600080fd5b506102b16109ce565b34801561050e57600080fd5b50610517610a67565b6040516102939190611532565b34801561053057600080fd5b506103ff610ad6565b34801561054557600080fd5b506103ff610ae2565b34801561055a57600080fd5b50610324610af6565b34801561056f57600080fd5b5061034661057e3660046113cd565b610b12565b34801561058f57600080fd5b506102b161059e3660046113cd565b610b24565b60408051808201909152600481527f6eff82850000000000000000000000000000000000000000000000000000000060208201525b90565b805160208201fd5b601560209081526000928352604080842090915290825290208054600182015460029092015490919083565b610617610bc7565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040517f6caedcb22a5c22c8ebd0caf751fec1228a6e006e6ee37169321e02d31ecc818390600090a1565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b6106a1610bec565b6106aa81610c33565b50565b600281815481106106ba57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600d5481565b60106020526000908152604090205460ff1681565b60115481565b61070a610bc7565b6106aa81610d64565b61071b610bec565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff16610754576107546101d582610ebf565b60005b6002548110156107c4578173ffffffffffffffffffffffffffffffffffffffff166002828154811061078557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156107bc576107b78282610f5e565b6107c4565b600101610757565b5050565b600c5481565b60145463ffffffff1681565b6040805182815260208084028201019091526060906000908290849081801561081757816020015b60608152602001906001900390816108025790505b5060035490945073ffffffffffffffffffffffffffffffffffffffff1680610844576108446101d56105a3565b60005b82811461095b578173ffffffffffffffffffffffffffffffffffffffff1688888381811061087157fe5b6020028201905080357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1368490030181126108ab57600080fd5b9091016020810191503567ffffffffffffffff8111156108ca57600080fd5b368190038213156108da57600080fd5b6040516108e89291906114be565b600060405180830381855af49150503d8060008114610923576040519150601f19603f3d011682016040523d82523d6000602084013e610928565b606091505b5090955093508461093b57835184602001fd5b8386828151811061094857fe5b6020908102919091010152600101610847565b50505050505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61098b610bec565b6107c48282610f5e565b60135481565b60085481565b60175481565b60016020526000908152604090205460ff1681565b600b6020526000908152604090205481565b601154620697808110806109e4575062278d0081115b156109f6576109f66101d560046111ad565b60145463ffffffff640100000000820481169116811080610a1b575063ffffffff8116155b15610a2d57610a2d6101d560006111ad565b601254620f424063ffffffff9091161115610a4f57610a4f6101d560016111ad565b600260135410156107c4576107c46101d560036111ad565b60606002805480602002602001604051908101604052809291908181526020018280548015610acc57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610aa1575b5050505050905090565b60125463ffffffff1681565b601454640100000000900463ffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60096020526000908152604090205481565b610b2c610bec565b73ffffffffffffffffffffffffffffffffffffffff8116610b5757610b526101d56111ec565b6106aa565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b3360009081526001602052604090205460ff16610bea57610bea6101d533611223565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bea57600054610bea906101d590339073ffffffffffffffffffffffffffffffffffffffff1661123e565b73ffffffffffffffffffffffffffffffffffffffff8116610c5957610c596101d56112e0565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610c9357610c936101d582611317565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790556040517f048368388f801041f7690185c4e28b6f3505c740c47be8ac104b55df666bfc8490610dd49083906114ea565b60405180910390a160035460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe1c7392a00000000000000000000000000000000000000000000000000000000179052905160009260609273ffffffffffffffffffffffffffffffffffffffff90911691610e6091906114ce565b600060405180830381855af49150503d8060008114610e9b576040519150601f19603f3d011682016040523d82523d6000602084013e610ea0565b606091505b509150915081610eb257805160208201fd5b610eba6109ce565b505050565b606063eb5108a260e01b82604051602401610eda91906114ea565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610f9757610f976101d583610ebf565b6002548110610fb257610fb26101d582600280549050611332565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610fd657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614611038576110386101d56002838154811061101057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461134f565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106110b357fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff90921691839081106110e657fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190611165908261136c565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b60607ffc45bd11000000000000000000000000000000000000000000000000000000008260048111156111dc57fe5b604051602401610eda91906116ab565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b606063b65a25b960e01b82604051602401610eda91906114ea565b6060631de45ad160e01b838360405160240161125b92919061150b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b606063de16f1a060e01b82604051602401610eda91906114ea565b606063e9f8377160e01b838360405160240161125b929190611653565b606063140a84db60e01b838360405160240161125b92919061150b565b815481835581811115610eba57600083815260209020610eba9181019083016105d891905b808211156113a55760008155600101611391565b5090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461096157600080fd5b6000602082840312156113de578081fd5b6113e883836113a9565b9392505050565b60008060408385031215611401578081fd5b61140b84846113a9565b946020939093013593505050565b6000806020838503121561142b578182fd5b823567ffffffffffffffff80821115611442578384fd5b81850186601f820112611453578485fd5b8035925081831115611463578485fd5b8660208085028301011115611476578485fd5b60200196919550909350505050565b600060208284031215611496578081fd5b5035919050565b600080604083850312156114af578182fd5b50508035926020909101359150565b6000828483379101908152919050565b600082516114e08184602087016116b9565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b602080825282518282018190526000918401906040840190835b8181101561158057835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161154c565b509095945050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611632577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452815180518087526115f5818989018a85016116b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016959095018601945092850192908501906001016115b0565b5092979650505050505050565b901515815260200190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b948552602085019390935260408401919091526060830152608082015260a00190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b60005b838110156116d45781810151838201526020016116bc565b838111156116e3576000848401525b5050505056fea365627a7a72315820264f7de7ca58238f45ed13ef6ac03be5e92f85e59eed756acfcdecdfe18a73df6c6578706572696d656e74616cf564736f6c634300050c0040" } } }, diff --git a/packages/contract-artifacts/artifacts/StaticCallProxy.json b/packages/contract-artifacts/artifacts/StaticCallProxy.json index bd934f7072..47bdc53bda 100644 --- a/packages/contract-artifacts/artifacts/StaticCallProxy.json +++ b/packages/contract-artifacts/artifacts/StaticCallProxy.json @@ -46,16 +46,16 @@ }, "evm": { "bytecode": { - "object": "0x608060405234801561001057600080fd5b50610505806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a85e59e41461003b578063ae25532e146100d3575b600080fd5b6100d16004803603608081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610110565b005b6100db6103a5565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6000606060006101656004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6103c5169050565b806020019051606081101561017957600080fd5b8151602083018051604051929492938301929190846401000000008211156101a057600080fd5b9083019060208201858111156101b557600080fd5b82516401000000008111828201881017156101cf57600080fd5b82525081516020918201929091019080838360005b838110156101fc5781810151838201526020016101e4565b50505050905090810190601f1680156102295780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050925092509250600060608473ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b602083106102ac57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161026f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461030c576040519150601f19603f3d011682016040523d82523d6000602084013e610311565b606091505b50915091508161032357805160208201fd5b8051602082012083811461039857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f554e45585045435445445f5354415449435f43414c4c5f524553554c54000000604482015290519081900360640190fd5b5050505050505050505050565b600060405180806104b06021913960210190506040518091039020905090565b6060818311156103e3576103e36103de60008585610408565b6104a7565b83518211156103fc576103fc6103de6001848751610408565b50819003910190815290565b6060632800659560e01b8484846040516024018084600781111561042857fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe53746174696343616c6c28616464726573732c62797465732c6279746573333229a265627a7a72315820810f2cccbd051a63dec5e6c05ccc9a965c4ae8a93e1c2d15b511b833529dfa1064736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50610505806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a85e59e41461003b578063ae25532e146100d3575b600080fd5b6100d16004803603608081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610110565b005b6100db6103a5565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6000606060006101656004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6103c5169050565b806020019051606081101561017957600080fd5b8151602083018051604051929492938301929190846401000000008211156101a057600080fd5b9083019060208201858111156101b557600080fd5b82516401000000008111828201881017156101cf57600080fd5b82525081516020918201929091019080838360005b838110156101fc5781810151838201526020016101e4565b50505050905090810190601f1680156102295780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050925092509250600060608473ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b602083106102ac57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161026f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461030c576040519150601f19603f3d011682016040523d82523d6000602084013e610311565b606091505b50915091508161032357805160208201fd5b8051602082012083811461039857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f554e45585045435445445f5354415449435f43414c4c5f524553554c54000000604482015290519081900360640190fd5b5050505050505050505050565b600060405180806104b06021913960210190506040518091039020905090565b6060818311156103e3576103e36103de60008585610408565b6104a7565b83518211156103fc576103fc6103de6001848751610408565b50819003910190815290565b6060632800659560e01b8484846040516024018084600781111561042857fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe53746174696343616c6c28616464726573732c62797465732c6279746573333229a265627a7a72315820e0bbdfc729189e053bb150f25953e9cbba2143f29cb7441e1605fc05a7d4b2e464736f6c63430005110032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063a85e59e41461003b578063ae25532e146100d3575b600080fd5b6100d16004803603608081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610110565b005b6100db6103a5565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6000606060006101656004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6103c5169050565b806020019051606081101561017957600080fd5b8151602083018051604051929492938301929190846401000000008211156101a057600080fd5b9083019060208201858111156101b557600080fd5b82516401000000008111828201881017156101cf57600080fd5b82525081516020918201929091019080838360005b838110156101fc5781810151838201526020016101e4565b50505050905090810190601f1680156102295780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050925092509250600060608473ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b602083106102ac57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161026f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461030c576040519150601f19603f3d011682016040523d82523d6000602084013e610311565b606091505b50915091508161032357805160208201fd5b8051602082012083811461039857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f554e45585045435445445f5354415449435f43414c4c5f524553554c54000000604482015290519081900360640190fd5b5050505050505050505050565b600060405180806104b06021913960210190506040518091039020905090565b6060818311156103e3576103e36103de60008585610408565b6104a7565b83518211156103fc576103fc6103de6001848751610408565b50819003910190815290565b6060632800659560e01b8484846040516024018084600781111561042857fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe53746174696343616c6c28616464726573732c62797465732c6279746573333229a265627a7a72315820810f2cccbd051a63dec5e6c05ccc9a965c4ae8a93e1c2d15b511b833529dfa1064736f6c63430005100032" + "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063a85e59e41461003b578063ae25532e146100d3575b600080fd5b6100d16004803603608081101561005157600080fd5b81019060208101813564010000000081111561006c57600080fd5b82018360208201111561007e57600080fd5b803590602001918460018302840111640100000000831117156100a057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610110565b005b6100db6103a5565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6000606060006101656004898990508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505063ffffffff6103c5169050565b806020019051606081101561017957600080fd5b8151602083018051604051929492938301929190846401000000008211156101a057600080fd5b9083019060208201858111156101b557600080fd5b82516401000000008111828201881017156101cf57600080fd5b82525081516020918201929091019080838360005b838110156101fc5781810151838201526020016101e4565b50505050905090810190601f1680156102295780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050925092509250600060608473ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b602083106102ac57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161026f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461030c576040519150601f19603f3d011682016040523d82523d6000602084013e610311565b606091505b50915091508161032357805160208201fd5b8051602082012083811461039857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f554e45585045435445445f5354415449435f43414c4c5f524553554c54000000604482015290519081900360640190fd5b5050505050505050505050565b600060405180806104b06021913960210190506040518091039020905090565b6060818311156103e3576103e36103de60008585610408565b6104a7565b83518211156103fc576103fc6103de6001848751610408565b50819003910190815290565b6060632800659560e01b8484846040516024018084600781111561042857fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b805160208201fdfe53746174696343616c6c28616464726573732c62797465732c6279746573333229a265627a7a72315820e0bbdfc729189e053bb150f25953e9cbba2143f29cb7441e1605fc05a7d4b2e464736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "0.5.17+commit.d19bba13", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/WETH9.json b/packages/contract-artifacts/artifacts/WETH9.json index f69ec9777d..a1bebc7130 100644 --- a/packages/contract-artifacts/artifacts/WETH9.json +++ b/packages/contract-artifacts/artifacts/WETH9.json @@ -158,16 +158,16 @@ "devdoc": { "methods": {} }, "evm": { "bytecode": { - "object": "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6107f9806101246000396000f3fe6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a723158201d2ffc56fd216e25b5193800153d8fc3a68d6c94bdd8d1320a5a64ec406bf7a564736f6c63430005100032" + "object": "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6107f9806101246000396000f3fe6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a723158203cd1ca14603fcfa858fca0001d639d0e3bd2280e97e110042bb4613ca89b20c864736f6c63430005110032" }, "deployedBytecode": { - "object": "0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a723158201d2ffc56fd216e25b5193800153d8fc3a68d6c94bdd8d1320a5a64ec406bf7a564736f6c63430005100032" + "object": "0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a723158203cd1ca14603fcfa858fca0001d639d0e3bd2280e97e110042bb4613ca89b20c864736f6c63430005110032" } } }, "compiler": { "name": "solc", - "version": "soljson-v0.5.16+commit.9c3226ce.js", + "version": "soljson-v0.5.17+commit.d19bba13.js", "settings": { "optimizer": { "enabled": true, diff --git a/packages/contract-artifacts/artifacts/ZRXToken.json b/packages/contract-artifacts/artifacts/ZRXToken.json index 5397a33c59..b6606ae51f 100644 --- a/packages/contract-artifacts/artifacts/ZRXToken.json +++ b/packages/contract-artifacts/artifacts/ZRXToken.json @@ -116,10 +116,10 @@ }, "evm": { "bytecode": { - "object": "0x60606040526b033b2e3c9fd0803ce8000000600355341561001c57fe5b5b600354600160a060020a0333166000908152602081905260409020555b5b61078d8061004a6000396000f300606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a72305820da020366d75ca3a9f2ac8c2e8caa46722a6f27bae293974b944c9572e028e1790029" + "object": "0x60606040526b033b2e3c9fd0803ce8000000600355341561001c57fe5b5b600354600160a060020a0333166000908152602081905260409020555b5b61078d8061004a6000396000f300606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a72305820ed1258581d81c9784322a395f1d964704760df40d638285300bbe445e268746d0029" }, "deployedBytecode": { - "object": "0x606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a72305820da020366d75ca3a9f2ac8c2e8caa46722a6f27bae293974b944c9572e028e1790029" + "object": "0x606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a72305820ed1258581d81c9784322a395f1d964704760df40d638285300bbe445e268746d0029" } } }, diff --git a/packages/contract-artifacts/artifacts/ZrxVault.json b/packages/contract-artifacts/artifacts/ZrxVault.json index 24aaefcec3..b5247e4e9c 100644 --- a/packages/contract-artifacts/artifacts/ZrxVault.json +++ b/packages/contract-artifacts/artifacts/ZrxVault.json @@ -324,10 +324,10 @@ }, "evm": { "bytecode": { - "object": "0x60806040523480156200001157600080fd5b506040516200190238038062001902833981810160405260408110156200003757600080fd5b508051602091820151600080546001600160a01b03199081163317909155600580546001600160a01b0380861691841691909117909155600680549184169190921681179091556040805160248082019390935281518082039093018352604401905292830180516001600160e01b03167ff47261b000000000000000000000000000000000000000000000000000000000178152925191929091620000e091600791620000e9565b5050506200018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012c57805160ff19168380011785556200015c565b828001600101855582156200015c579182015b828111156200015c5782518255916020019190600101906200013f565b506200016a9291506200016e565b5090565b6200018b91905b808211156200016a576000815560010162000175565b90565b611764806200019e6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80639470b0bd116100cd578063c4d8f23711610081578063d39de6e911610066578063d39de6e9146103d1578063f2fde38b14610429578063f957ddba1461045c57610151565b8063c4d8f23714610396578063ca5b02181461039e57610151565b80639ad26744116100b25780639ad2674414610322578063b91816111461035b578063c02e5a7f1461038e57610151565b80639470b0bd146102e15780639706e0c01461031a57610151565b8063494503d4116101245780637071293911610109578063707129391461026157806370a08231146102945780638da5cb5b146102d957610151565b8063494503d4146102115780636bf3f9e51461022e57610151565b806315cc36f214610156578063266df27c1461019157806342f1181e146101ad5780634551ab31146101e0575b600080fd5b61018f6004803603604081101561016c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561048f565b005b610199610676565b604080519115158252519081900360200190f35b61018f600480360360208110156101c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610697565b6101e86106ab565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101e86004803603602081101561022757600080fd5b50356106c7565b61018f6004803603602081101561024457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106fb565b61018f6004803603602081101561027757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661077c565b6102c7600480360360208110156102aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610836565b60408051918252519081900360200190f35b6101e861085e565b61018f600480360360408110156102f757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561087a565b6102c7610894565b61018f6004803603604081101561033857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610937565b6101996004803603602081101561037157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610949565b61018f61095e565b6101e86109e2565b61018f600480360360208110156103b457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109fe565b6103d9610a87565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104155781810151838201526020016103fd565b505050509050019250505060405180910390f35b61018f6004803603602081101561043f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610af6565b6102c76004803603602081101561047257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b99565b610497610bd9565b61049f610c06565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020546104d5908263ffffffff610c3416565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a26005546040517fa85e59e400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660248301523060448301819052606483018590526080600484019081526007805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183161561010002019091160460848601819052939095169463a85e59e494909388939288929091829160a40190879080156106375780601f1061060c57610100808354040283529160200191610637565b820191906000526020600020905b81548152906001019060200180831161061a57829003601f168201915b505095505050505050600060405180830381600087803b15801561065a57600080fd5b505af115801561066e573d6000803e3d6000fd5b505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b61069f610c57565b6106a881610c9e565b50565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600281815481106106d457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610703610dcf565b6003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fb72b2a9919ffd08bc0d415d8a38b1395a40377207a9867cac2e3c10b1aa560fc9181900360200190a150565b610784610c57565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107c2576107c26107bd82610df2565b610e75565b60005b600254811015610832578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107f357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561082a576108258282610e7d565b610832565b6001016107c5565b5050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b610882610bd9565b61088a610c06565b61083282826110cc565b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b505190505b90565b61093f610c57565b6108328282610e7d565b60016020526000908152604090205460ff1681565b610966610dcf565b61096e610c06565b600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040805133815290517fdc2ba7cd6b8e3bf6f27f665a737e34fb7f72f480a597b51686332c539fab04489181900360200190a1565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610a06610dcf565b610a0e610c06565b6005805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fab1ca8eb645c27b1fa85b29ed92584109de7cc576a907cddaa0bf3f1f7f253109181900360200190a150565b60606002805480602002602001604051908101604052809291908181526020018280548015610aec57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610ac1575b5050505050905090565b610afe610c57565b73ffffffffffffffffffffffffffffffffffffffff8116610b2957610b246107bd61120d565b6106a8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610ba3611244565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054610bd383826110cc565b92915050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610c0457610c046107bd33611271565b565b60035474010000000000000000000000000000000000000000900460ff1615610c0457610c046107bd6112f4565b600082820183811015610c5057610c506107bd6000868661132b565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c0457600054610c04906107bd90339073ffffffffffffffffffffffffffffffffffffffff166113ca565b73ffffffffffffffffffffffffffffffffffffffff8116610cc457610cc46107bd611456565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610cfe57610cfe6107bd8261148d565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b3360009081526001602052604090205460ff16610c0457610c046107bd33611510565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167feb5108a200000000000000000000000000000000000000000000000000000000179052919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610eb657610eb66107bd83610df2565b6002548110610ed157610ed16107bd82600280549050611593565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610ef557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610f5757610f576107bd60028381548110610f2f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684611606565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610fd257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061100557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061108490826116e8565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054611102908263ffffffff61169216565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436492918290030190a2600654604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156111dd57600080fd5b505af11580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b50505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b60035474010000000000000000000000000000000000000000900460ff16610c0457610c046107bd6116b1565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fca1d07a200000000000000000000000000000000000000000000000000000000179052919050565b60408051808201909152600481527f7dd020ce00000000000000000000000000000000000000000000000000000000602082015290565b606063e946c1bb60e01b8484846040516024018084600381111561134b57fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde16f1a000000000000000000000000000000000000000000000000000000000179052919050565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb65a25b900000000000000000000000000000000000000000000000000000000179052919050565b604080516024810184905260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe9f837710000000000000000000000000000000000000000000000000000000017905292915050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f140a84db0000000000000000000000000000000000000000000000000000000017905292915050565b6000828211156116ab576116ab6107bd6002858561132b565b50900390565b60408051808201909152600481527f3ef081cc00000000000000000000000000000000000000000000000000000000602082015290565b81548183558181111561170c5760008381526020902061170c918101908301611711565b505050565b61093491905b8082111561172b5760008155600101611717565b509056fea265627a7a723158205da54f86de46429514dfc15695db7c1c01bc4c311c82a0d414fbcf02ab668db664736f6c634300050c0032" + "object": "0x60806040523480156200001157600080fd5b506040516200190238038062001902833981810160405260408110156200003757600080fd5b508051602091820151600080546001600160a01b03199081163317909155600580546001600160a01b0380861691841691909117909155600680549184169190921681179091556040805160248082019390935281518082039093018352604401905292830180516001600160e01b03167ff47261b000000000000000000000000000000000000000000000000000000000178152925191929091620000e091600791620000e9565b5050506200018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012c57805160ff19168380011785556200015c565b828001600101855582156200015c579182015b828111156200015c5782518255916020019190600101906200013f565b506200016a9291506200016e565b5090565b6200018b91905b808211156200016a576000815560010162000175565b90565b611764806200019e6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80639470b0bd116100cd578063c4d8f23711610081578063d39de6e911610066578063d39de6e9146103d1578063f2fde38b14610429578063f957ddba1461045c57610151565b8063c4d8f23714610396578063ca5b02181461039e57610151565b80639ad26744116100b25780639ad2674414610322578063b91816111461035b578063c02e5a7f1461038e57610151565b80639470b0bd146102e15780639706e0c01461031a57610151565b8063494503d4116101245780637071293911610109578063707129391461026157806370a08231146102945780638da5cb5b146102d957610151565b8063494503d4146102115780636bf3f9e51461022e57610151565b806315cc36f214610156578063266df27c1461019157806342f1181e146101ad5780634551ab31146101e0575b600080fd5b61018f6004803603604081101561016c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561048f565b005b610199610676565b604080519115158252519081900360200190f35b61018f600480360360208110156101c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610697565b6101e86106ab565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101e86004803603602081101561022757600080fd5b50356106c7565b61018f6004803603602081101561024457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106fb565b61018f6004803603602081101561027757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661077c565b6102c7600480360360208110156102aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610836565b60408051918252519081900360200190f35b6101e861085e565b61018f600480360360408110156102f757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561087a565b6102c7610894565b61018f6004803603604081101561033857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610937565b6101996004803603602081101561037157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610949565b61018f61095e565b6101e86109e2565b61018f600480360360208110156103b457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109fe565b6103d9610a87565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104155781810151838201526020016103fd565b505050509050019250505060405180910390f35b61018f6004803603602081101561043f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610af6565b6102c76004803603602081101561047257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b99565b610497610bd9565b61049f610c06565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020546104d5908263ffffffff610c3416565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a26005546040517fa85e59e400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660248301523060448301819052606483018590526080600484019081526007805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183161561010002019091160460848601819052939095169463a85e59e494909388939288929091829160a40190879080156106375780601f1061060c57610100808354040283529160200191610637565b820191906000526020600020905b81548152906001019060200180831161061a57829003601f168201915b505095505050505050600060405180830381600087803b15801561065a57600080fd5b505af115801561066e573d6000803e3d6000fd5b505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b61069f610c57565b6106a881610c9e565b50565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600281815481106106d457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610703610dcf565b6003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fb72b2a9919ffd08bc0d415d8a38b1395a40377207a9867cac2e3c10b1aa560fc9181900360200190a150565b610784610c57565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107c2576107c26107bd82610df2565b610e75565b60005b600254811015610832578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107f357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561082a576108258282610e7d565b610832565b6001016107c5565b5050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b610882610bd9565b61088a610c06565b61083282826110cc565b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b505190505b90565b61093f610c57565b6108328282610e7d565b60016020526000908152604090205460ff1681565b610966610dcf565b61096e610c06565b600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040805133815290517fdc2ba7cd6b8e3bf6f27f665a737e34fb7f72f480a597b51686332c539fab04489181900360200190a1565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610a06610dcf565b610a0e610c06565b6005805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fab1ca8eb645c27b1fa85b29ed92584109de7cc576a907cddaa0bf3f1f7f253109181900360200190a150565b60606002805480602002602001604051908101604052809291908181526020018280548015610aec57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610ac1575b5050505050905090565b610afe610c57565b73ffffffffffffffffffffffffffffffffffffffff8116610b2957610b246107bd61120d565b6106a8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610ba3611244565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054610bd383826110cc565b92915050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610c0457610c046107bd33611271565b565b60035474010000000000000000000000000000000000000000900460ff1615610c0457610c046107bd6112f4565b600082820183811015610c5057610c506107bd6000868661132b565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c0457600054610c04906107bd90339073ffffffffffffffffffffffffffffffffffffffff166113ca565b73ffffffffffffffffffffffffffffffffffffffff8116610cc457610cc46107bd611456565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610cfe57610cfe6107bd8261148d565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b3360009081526001602052604090205460ff16610c0457610c046107bd33611510565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167feb5108a200000000000000000000000000000000000000000000000000000000179052919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610eb657610eb66107bd83610df2565b6002548110610ed157610ed16107bd82600280549050611593565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610ef557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610f5757610f576107bd60028381548110610f2f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684611606565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610fd257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061100557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061108490826116e8565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054611102908263ffffffff61169216565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436492918290030190a2600654604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156111dd57600080fd5b505af11580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b50505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b60035474010000000000000000000000000000000000000000900460ff16610c0457610c046107bd6116b1565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fca1d07a200000000000000000000000000000000000000000000000000000000179052919050565b60408051808201909152600481527f7dd020ce00000000000000000000000000000000000000000000000000000000602082015290565b606063e946c1bb60e01b8484846040516024018084600381111561134b57fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde16f1a000000000000000000000000000000000000000000000000000000000179052919050565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb65a25b900000000000000000000000000000000000000000000000000000000179052919050565b604080516024810184905260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe9f837710000000000000000000000000000000000000000000000000000000017905292915050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f140a84db0000000000000000000000000000000000000000000000000000000017905292915050565b6000828211156116ab576116ab6107bd6002858561132b565b50900390565b60408051808201909152600481527f3ef081cc00000000000000000000000000000000000000000000000000000000602082015290565b81548183558181111561170c5760008381526020902061170c918101908301611711565b505050565b61093491905b8082111561172b5760008155600101611717565b509056fea265627a7a72315820353494a7cb0f1de5778bf6c5cd23d4d6fa4128a3ea4693352a1b54c3e353c64464736f6c634300050c0032" }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106101515760003560e01c80639470b0bd116100cd578063c4d8f23711610081578063d39de6e911610066578063d39de6e9146103d1578063f2fde38b14610429578063f957ddba1461045c57610151565b8063c4d8f23714610396578063ca5b02181461039e57610151565b80639ad26744116100b25780639ad2674414610322578063b91816111461035b578063c02e5a7f1461038e57610151565b80639470b0bd146102e15780639706e0c01461031a57610151565b8063494503d4116101245780637071293911610109578063707129391461026157806370a08231146102945780638da5cb5b146102d957610151565b8063494503d4146102115780636bf3f9e51461022e57610151565b806315cc36f214610156578063266df27c1461019157806342f1181e146101ad5780634551ab31146101e0575b600080fd5b61018f6004803603604081101561016c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561048f565b005b610199610676565b604080519115158252519081900360200190f35b61018f600480360360208110156101c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610697565b6101e86106ab565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101e86004803603602081101561022757600080fd5b50356106c7565b61018f6004803603602081101561024457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106fb565b61018f6004803603602081101561027757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661077c565b6102c7600480360360208110156102aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610836565b60408051918252519081900360200190f35b6101e861085e565b61018f600480360360408110156102f757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561087a565b6102c7610894565b61018f6004803603604081101561033857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610937565b6101996004803603602081101561037157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610949565b61018f61095e565b6101e86109e2565b61018f600480360360208110156103b457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109fe565b6103d9610a87565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104155781810151838201526020016103fd565b505050509050019250505060405180910390f35b61018f6004803603602081101561043f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610af6565b6102c76004803603602081101561047257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b99565b610497610bd9565b61049f610c06565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020546104d5908263ffffffff610c3416565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a26005546040517fa85e59e400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660248301523060448301819052606483018590526080600484019081526007805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183161561010002019091160460848601819052939095169463a85e59e494909388939288929091829160a40190879080156106375780601f1061060c57610100808354040283529160200191610637565b820191906000526020600020905b81548152906001019060200180831161061a57829003601f168201915b505095505050505050600060405180830381600087803b15801561065a57600080fd5b505af115801561066e573d6000803e3d6000fd5b505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b61069f610c57565b6106a881610c9e565b50565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600281815481106106d457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610703610dcf565b6003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fb72b2a9919ffd08bc0d415d8a38b1395a40377207a9867cac2e3c10b1aa560fc9181900360200190a150565b610784610c57565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107c2576107c26107bd82610df2565b610e75565b60005b600254811015610832578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107f357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561082a576108258282610e7d565b610832565b6001016107c5565b5050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b610882610bd9565b61088a610c06565b61083282826110cc565b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b505190505b90565b61093f610c57565b6108328282610e7d565b60016020526000908152604090205460ff1681565b610966610dcf565b61096e610c06565b600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040805133815290517fdc2ba7cd6b8e3bf6f27f665a737e34fb7f72f480a597b51686332c539fab04489181900360200190a1565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610a06610dcf565b610a0e610c06565b6005805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fab1ca8eb645c27b1fa85b29ed92584109de7cc576a907cddaa0bf3f1f7f253109181900360200190a150565b60606002805480602002602001604051908101604052809291908181526020018280548015610aec57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610ac1575b5050505050905090565b610afe610c57565b73ffffffffffffffffffffffffffffffffffffffff8116610b2957610b246107bd61120d565b6106a8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610ba3611244565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054610bd383826110cc565b92915050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610c0457610c046107bd33611271565b565b60035474010000000000000000000000000000000000000000900460ff1615610c0457610c046107bd6112f4565b600082820183811015610c5057610c506107bd6000868661132b565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c0457600054610c04906107bd90339073ffffffffffffffffffffffffffffffffffffffff166113ca565b73ffffffffffffffffffffffffffffffffffffffff8116610cc457610cc46107bd611456565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610cfe57610cfe6107bd8261148d565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b3360009081526001602052604090205460ff16610c0457610c046107bd33611510565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167feb5108a200000000000000000000000000000000000000000000000000000000179052919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610eb657610eb66107bd83610df2565b6002548110610ed157610ed16107bd82600280549050611593565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610ef557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610f5757610f576107bd60028381548110610f2f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684611606565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610fd257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061100557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061108490826116e8565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054611102908263ffffffff61169216565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436492918290030190a2600654604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156111dd57600080fd5b505af11580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b50505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b60035474010000000000000000000000000000000000000000900460ff16610c0457610c046107bd6116b1565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fca1d07a200000000000000000000000000000000000000000000000000000000179052919050565b60408051808201909152600481527f7dd020ce00000000000000000000000000000000000000000000000000000000602082015290565b606063e946c1bb60e01b8484846040516024018084600381111561134b57fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde16f1a000000000000000000000000000000000000000000000000000000000179052919050565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb65a25b900000000000000000000000000000000000000000000000000000000179052919050565b604080516024810184905260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe9f837710000000000000000000000000000000000000000000000000000000017905292915050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f140a84db0000000000000000000000000000000000000000000000000000000017905292915050565b6000828211156116ab576116ab6107bd6002858561132b565b50900390565b60408051808201909152600481527f3ef081cc00000000000000000000000000000000000000000000000000000000602082015290565b81548183558181111561170c5760008381526020902061170c918101908301611711565b505050565b61093491905b8082111561172b5760008155600101611717565b509056fea265627a7a723158205da54f86de46429514dfc15695db7c1c01bc4c311c82a0d414fbcf02ab668db664736f6c634300050c0032" + "object": "0x608060405234801561001057600080fd5b50600436106101515760003560e01c80639470b0bd116100cd578063c4d8f23711610081578063d39de6e911610066578063d39de6e9146103d1578063f2fde38b14610429578063f957ddba1461045c57610151565b8063c4d8f23714610396578063ca5b02181461039e57610151565b80639ad26744116100b25780639ad2674414610322578063b91816111461035b578063c02e5a7f1461038e57610151565b80639470b0bd146102e15780639706e0c01461031a57610151565b8063494503d4116101245780637071293911610109578063707129391461026157806370a08231146102945780638da5cb5b146102d957610151565b8063494503d4146102115780636bf3f9e51461022e57610151565b806315cc36f214610156578063266df27c1461019157806342f1181e146101ad5780634551ab31146101e0575b600080fd5b61018f6004803603604081101561016c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561048f565b005b610199610676565b604080519115158252519081900360200190f35b61018f600480360360208110156101c357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610697565b6101e86106ab565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101e86004803603602081101561022757600080fd5b50356106c7565b61018f6004803603602081101561024457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106fb565b61018f6004803603602081101561027757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661077c565b6102c7600480360360208110156102aa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610836565b60408051918252519081900360200190f35b6101e861085e565b61018f600480360360408110156102f757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561087a565b6102c7610894565b61018f6004803603604081101561033857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610937565b6101996004803603602081101561037157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610949565b61018f61095e565b6101e86109e2565b61018f600480360360208110156103b457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109fe565b6103d9610a87565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104155781810151838201526020016103fd565b505050509050019250505060405180910390f35b61018f6004803603602081101561043f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610af6565b6102c76004803603602081101561047257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b99565b610497610bd9565b61049f610c06565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020546104d5908263ffffffff610c3416565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a26005546040517fa85e59e400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660248301523060448301819052606483018590526080600484019081526007805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183161561010002019091160460848601819052939095169463a85e59e494909388939288929091829160a40190879080156106375780601f1061060c57610100808354040283529160200191610637565b820191906000526020600020905b81548152906001019060200180831161061a57829003601f168201915b505095505050505050600060405180830381600087803b15801561065a57600080fd5b505af115801561066e573d6000803e3d6000fd5b505050505050565b60035474010000000000000000000000000000000000000000900460ff1681565b61069f610c57565b6106a881610c9e565b50565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600281815481106106d457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610703610dcf565b6003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fb72b2a9919ffd08bc0d415d8a38b1395a40377207a9867cac2e3c10b1aa560fc9181900360200190a150565b610784610c57565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166107c2576107c26107bd82610df2565b610e75565b60005b600254811015610832578173ffffffffffffffffffffffffffffffffffffffff16600282815481106107f357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561082a576108258282610e7d565b610832565b6001016107c5565b5050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b610882610bd9565b61088a610c06565b61083282826110cc565b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d602081101561092f57600080fd5b505190505b90565b61093f610c57565b6108328282610e7d565b60016020526000908152604090205460ff1681565b610966610dcf565b61096e610c06565b600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040805133815290517fdc2ba7cd6b8e3bf6f27f665a737e34fb7f72f480a597b51686332c539fab04489181900360200190a1565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610a06610dcf565b610a0e610c06565b6005805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fab1ca8eb645c27b1fa85b29ed92584109de7cc576a907cddaa0bf3f1f7f253109181900360200190a150565b60606002805480602002602001604051908101604052809291908181526020018280548015610aec57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610ac1575b5050505050905090565b610afe610c57565b73ffffffffffffffffffffffffffffffffffffffff8116610b2957610b246107bd61120d565b6106a8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000610ba3611244565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054610bd383826110cc565b92915050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610c0457610c046107bd33611271565b565b60035474010000000000000000000000000000000000000000900460ff1615610c0457610c046107bd6112f4565b600082820183811015610c5057610c506107bd6000868661132b565b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c0457600054610c04906107bd90339073ffffffffffffffffffffffffffffffffffffffff166113ca565b73ffffffffffffffffffffffffffffffffffffffff8116610cc457610cc46107bd611456565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff1615610cfe57610cfe6107bd8261148d565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560028054928301815583527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055513392917f3147867c59d17e8fa9d522465651d44aae0a9e38f902f3475b97e58072f0ed4c91a350565b3360009081526001602052604090205460ff16610c0457610c046107bd33611510565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167feb5108a200000000000000000000000000000000000000000000000000000000179052919050565b805160208201fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff16610eb657610eb66107bd83610df2565b6002548110610ed157610ed16107bd82600280549050611593565b8173ffffffffffffffffffffffffffffffffffffffff1660028281548110610ef557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614610f5757610f576107bd60028381548110610f2f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684611606565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610fd257fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061100557fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061108490826116e8565b50604051339073ffffffffffffffffffffffffffffffffffffffff8416907f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040902054611102908263ffffffff61169216565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260046020908152604091829020939093558051848152905191927f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436492918290030190a2600654604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156111dd57600080fd5b505af11580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b50505050565b60408051808201909152600481527fe69edc3e00000000000000000000000000000000000000000000000000000000602082015290565b60035474010000000000000000000000000000000000000000900460ff16610c0457610c046107bd6116b1565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fca1d07a200000000000000000000000000000000000000000000000000000000179052919050565b60408051808201909152600481527f7dd020ce00000000000000000000000000000000000000000000000000000000602082015290565b606063e946c1bb60e01b8484846040516024018084600381111561134b57fe5b60ff1681526020018381526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090509392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1de45ad10000000000000000000000000000000000000000000000000000000017905292915050565b60408051808201909152600481527f57654fe400000000000000000000000000000000000000000000000000000000602082015290565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fde16f1a000000000000000000000000000000000000000000000000000000000179052919050565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb65a25b900000000000000000000000000000000000000000000000000000000179052919050565b604080516024810184905260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe9f837710000000000000000000000000000000000000000000000000000000017905292915050565b6040805173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f140a84db0000000000000000000000000000000000000000000000000000000017905292915050565b6000828211156116ab576116ab6107bd6002858561132b565b50900390565b60408051808201909152600481527f3ef081cc00000000000000000000000000000000000000000000000000000000602082015290565b81548183558181111561170c5760008381526020902061170c918101908301611711565b505050565b61093491905b8082111561172b5760008155600101611717565b509056fea265627a7a72315820353494a7cb0f1de5778bf6c5cd23d4d6fa4128a3ea4693352a1b54c3e353c64464736f6c634300050c0032" } } }, diff --git a/packages/contract-artifacts/src/index.ts b/packages/contract-artifacts/src/index.ts index b2f7f93d58..85fd93702f 100644 --- a/packages/contract-artifacts/src/index.ts +++ b/packages/contract-artifacts/src/index.ts @@ -20,6 +20,7 @@ import * as IAssetProxy from '../artifacts/IAssetProxy.json'; import * as ITransformERC20 from '../artifacts/ITransformERC20.json'; import * as IValidator from '../artifacts/IValidator.json'; import * as IWallet from '../artifacts/IWallet.json'; +import * as IZeroEx from '../artifacts/IZeroEx.json'; import * as MultiAssetProxy from '../artifacts/MultiAssetProxy.json'; import * as Staking from '../artifacts/Staking.json'; import * as StakingProxy from '../artifacts/StakingProxy.json'; @@ -58,4 +59,5 @@ export { ZrxVault, ERC20BridgeSampler, ITransformERC20, + IZeroEx, }; diff --git a/packages/contract-artifacts/tsconfig.json b/packages/contract-artifacts/tsconfig.json index 944234cfd0..c6c46edb63 100644 --- a/packages/contract-artifacts/tsconfig.json +++ b/packages/contract-artifacts/tsconfig.json @@ -37,6 +37,7 @@ "./artifacts/ZrxVault.json", "./artifacts/ERC20BridgeProxy.json", "./artifacts/ERC20BridgeSampler.json", - "./artifacts/ITransformERC20.json" + "./artifacts/ITransformERC20.json", + "./artifacts/IZeroEx.json" ] } diff --git a/packages/contract-wrappers/CHANGELOG.json b/packages/contract-wrappers/CHANGELOG.json index cc74c0e948..85487ff583 100644 --- a/packages/contract-wrappers/CHANGELOG.json +++ b/packages/contract-wrappers/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "13.9.0", + "changes": [ + { + "note": "Add `IZeroEx` wrapper", + "pr": 2626 + } + ] + }, { "version": "13.8.0", "changes": [ diff --git a/packages/contract-wrappers/docs/reference.mdx b/packages/contract-wrappers/docs/reference.mdx index f8c14220ac..9b02ea5121 100644 --- a/packages/contract-wrappers/docs/reference.mdx +++ b/packages/contract-wrappers/docs/reference.mdx @@ -1,17 +1,154 @@ +# Class: ContractWrappers - -# Class: CoordinatorRegistryContract +The ContractWrappers class contains smart contract wrappers helpful when building on 0x protocol. ## Constructors -\+ **new CoordinatorRegistryContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[CoordinatorRegistryContract](#class-coordinatorregistrycontract)* +\+ **new ContractWrappers**(`supportedProvider`: [SupportedProvider](#supportedprovider), `config`: [ContractWrappersConfig](#interface-contractwrappersconfig)): *[ContractWrappers](#class-contractwrappers)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:53](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L53)* + +Instantiates a new ContractWrappers instance. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`supportedProvider` | [SupportedProvider](#supportedprovider) | The Provider instance you would like the contract-wrappers library to use for interacting with the Ethereum network. | +`config` | [ContractWrappersConfig](#interface-contractwrappersconfig) | The configuration object. Look up the type for the description. | + +**Returns:** *[ContractWrappers](#class-contractwrappers)* + +An instance of the ContractWrappers class. + +## Properties + +### contractAddresses + +• **contractAddresses**: *`ContractAddresses`* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:26](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L26)* + +An index of the default contract addresses for this chain. + +___ + +### coordinator + +• **coordinator**: *[CoordinatorContract](#class-coordinatorcontract)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:47](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L47)* + +An instance of the CoordinatorContract class containing methods for interacting with the Coordinator extension contract. + +___ + +### devUtils + +• **devUtils**: *[DevUtilsContract](#class-devutilscontract)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:43](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L43)* + +An instance of the DevUtilsContract class containing methods for interacting with the DevUtils smart contract. + +___ + +### exchange + +• **exchange**: *[ExchangeContract](#class-exchangecontract)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:30](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L30)* + +An instance of the ExchangeContract class containing methods for interacting with the 0x Exchange smart contract. + +___ + +### forwarder + +• **forwarder**: *[ForwarderContract](#class-forwardercontract)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:39](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L39)* + +An instance of the ForwarderContract class containing methods for interacting with any Forwarder smart contract. + +___ + +### staking + +• **staking**: *[StakingContract](#class-stakingcontract)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:51](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L51)* + +An instance of the StakingContract class containing methods for interacting with the Staking contracts. + +___ + +### weth9 + +• **weth9**: *[WETH9Contract](#class-weth9contract)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:35](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L35)* + +An instance of the WETH9Contract class containing methods for interacting with the +WETH9 smart contract. + +## Methods + +### getAbiDecoder + +▸ **getAbiDecoder**(): *`AbiDecoder`* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:110](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L110)* + +Get the abi decoder instance currently used by contract-wrappers + +**Returns:** *`AbiDecoder`* + +AbiDecoder instance + +___ + +### getProvider + +▸ **getProvider**(): *[SupportedProvider](#supportedprovider)* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:103](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L103)* + +Get the provider instance currently used by contract-wrappers + +**Returns:** *[SupportedProvider](#supportedprovider)* + +Web3 provider instance + +___ + +### unsubscribeAll + +▸ **unsubscribeAll**(): *void* + +*Defined in [contract-wrappers/src/contract_wrappers.ts:95](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/contract_wrappers.ts#L95)* + +Unsubscribes from all subscriptions for all contracts. + +**Returns:** *void* + +
+ +# Class: CoordinatorContract + + +## Constructors + + + +\+ **new CoordinatorContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[CoordinatorContract](#class-coordinatorcontract)* *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:465](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L465)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:962](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L962)* **Parameters:** @@ -21,9 +158,9 @@ Name | Type | Default | `supportedProvider` | [SupportedProvider](#supportedprovider) | - | `txDefaults?` | `Partial` | - | `logDecodeDependencies?` | undefined \| object | - | -`deployedBytecode` | string \| undefined | CoordinatorRegistryContract.deployedBytecode | +`deployedBytecode` | string \| undefined | CoordinatorContract.deployedBytecode | -**Returns:** *[CoordinatorRegistryContract](#class-coordinatorregistrycontract)* +**Returns:** *[CoordinatorContract](#class-coordinatorcontract)* ## Properties @@ -33,7 +170,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -43,7 +180,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -53,7 +190,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -63,7 +200,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -73,15 +210,137 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "Coordinator" + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L46)* ## Methods +### EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH + +▸ **EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:580](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L580)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### EIP712_COORDINATOR_DOMAIN_HASH + +▸ **EIP712_COORDINATOR_DOMAIN_HASH**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:600](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L600)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### EIP712_COORDINATOR_DOMAIN_NAME + +▸ **EIP712_COORDINATOR_DOMAIN_NAME**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:620](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L620)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### EIP712_COORDINATOR_DOMAIN_VERSION + +▸ **EIP712_COORDINATOR_DOMAIN_VERSION**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:640](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L640)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### EIP712_EXCHANGE_DOMAIN_HASH + +▸ **EIP712_EXCHANGE_DOMAIN_HASH**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:660](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L660)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### assertValidCoordinatorApprovals + +▸ **assertValidCoordinatorApprovals**(`transaction`: object, `txOrigin`: string, `transactionSignature`: string, `approvalSignatures`: string[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:692](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L692)* + +Validates that the 0x transaction has been approved by all of the feeRecipients +that correspond to each order in the transaction's Exchange calldata. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`transaction` | object | 0x transaction containing salt, signerAddress, and data. | +`txOrigin` | string | Required signer of Ethereum transaction calling this function. | +`transactionSignature` | string | Proof that the transaction has been signed by the signer. | +`approvalSignatures` | string[] | Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata. | + +**Returns:** *`ContractFunctionObj`* + +___ + +### decodeOrdersFromFillData + +▸ **decodeOrdersFromFillData**(`data`: string): *`ContractFunctionObj>`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:738](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L738)* + +Decodes the orders from Exchange calldata representing any fill method. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`data` | string | Exchange calldata representing a fill method. | + +**Returns:** *`ContractFunctionObj>`* + +orders The orders from the Exchange calldata. + +___ + +### executeTransaction + +▸ **executeTransaction**(`transaction`: object, `txOrigin`: string, `transactionSignature`: string, `approvalSignatures`: string[]): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:832](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L832)* + +Executes a 0x transaction that has been signed by the feeRecipients that correspond to +each order in the transaction's Exchange calldata. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`transaction` | object | 0x transaction containing salt, signerAddress, and data. | +`txOrigin` | string | Required signer of Ethereum transaction calling this function. | +`transactionSignature` | string | Proof that the transaction has been signed by the signer. | +`approvalSignatures` | string[] | Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + ### getABIDecodedReturnData ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:208](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L208)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:565](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L565)* **Type parameters:** @@ -102,7 +361,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:201](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L201)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:557](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L557)* **Type parameters:** @@ -119,23 +378,24 @@ Name | Type | ___ -### getCoordinatorEndpoint +### getCoordinatorApprovalHash -▸ **getCoordinatorEndpoint**(`coordinatorOperator`: string): *`ContractFunctionObj`* +▸ **getCoordinatorApprovalHash**(`approval`: object): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:227](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L227)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:905](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L905)* -Gets the endpoint for a Coordinator. +Calculates the EIP712 hash of the Coordinator approval mesasage using the domain +separator of this contract. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`coordinatorOperator` | string | Operator of the Coordinator endpoint. | +`approval` | object | Coordinator approval message containing the transaction hash, and transaction signature. | **Returns:** *`ContractFunctionObj`* -coordinatorEndpoint Endpoint of the Coordinator as a string. +approvalHash EIP712 hash of the Coordinator approval message with the domain separator of this contract. ___ @@ -143,7 +403,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:195](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L195)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:550](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L550)* **Parameters:** @@ -155,37 +415,11 @@ Name | Type | ___ -### getLogsAsync - -▸ **getLogsAsync**<**ArgsType**>(`eventName`: [CoordinatorRegistryEvents](#enumeration-coordinatorregistryevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:449](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L449)* - -Gets historical logs without creating a subscription - -**Type parameters:** - -▪ **ArgsType**: *[CoordinatorRegistryEventArgs](#coordinatorregistryeventargs)* - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`eventName` | [CoordinatorRegistryEvents](#enumeration-coordinatorregistryevents) | The CoordinatorRegistry contract event you would like to subscribe to. | -`blockRange` | `BlockRange` | Block range to get logs from. | -`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | - -**Returns:** *`Promise>>`* - -Array of logs that match the parameters - -___ - ### getSelector ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:215](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L215)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:573](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L573)* **Parameters:** @@ -197,79 +431,24 @@ Name | Type | ___ -### setCoordinatorEndpoint +### getSignerAddress -▸ **setCoordinatorEndpoint**(`coordinatorEndpoint`: string): *`ContractTxFunctionObj`* +▸ **getSignerAddress**(`hash`: string, `signature`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:283](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L283)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:936](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L936)* -Called by a Coordinator operator to set the endpoint of their Coordinator. +Recovers the address of a signer given a hash and signature. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`coordinatorEndpoint` | string | Endpoint of the Coordinator as a string. | +`hash` | string | Any 32 byte hash. | +`signature` | string | Proof that the hash has been signed by signer. | -**Returns:** *`ContractTxFunctionObj`* +**Returns:** *`ContractFunctionObj`* -___ - -### subscribe - -▸ **subscribe**<**ArgsType**>(`eventName`: [CoordinatorRegistryEvents](#enumeration-coordinatorregistryevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:407](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L407)* - -Subscribe to an event type emitted by the CoordinatorRegistry contract. - -**Type parameters:** - -▪ **ArgsType**: *[CoordinatorRegistryEventArgs](#coordinatorregistryeventargs)* - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`eventName` | [CoordinatorRegistryEvents](#enumeration-coordinatorregistryevents) | - | The CoordinatorRegistry contract event you would like to subscribe to. | -`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | -`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | -`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | -`blockPollingIntervalMs?` | undefined \| number | - | - | - -**Returns:** *string* - -Subscription token used later to unsubscribe - -___ - -### unsubscribe - -▸ **unsubscribe**(`subscriptionToken`: string): *void* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:432](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L432)* - -Cancel a subscription - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`subscriptionToken` | string | Subscription token returned by `subscribe()` | - -**Returns:** *void* - -___ - -### unsubscribeAll - -▸ **unsubscribeAll**(): *void* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:438](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L438)* - -Cancels all existing subscriptions - -**Returns:** *void* +signerAddress Address of the signer. ___ @@ -277,7 +456,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:131](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L131)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:177](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L177)* **Returns:** *[ContractAbi](#contractabi)* @@ -287,9 +466,9 @@ ___ ### `Static` deployAsync -▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange`: string, `chainId`: `BigNumber`): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:89](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L89)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:127](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L127)* **Parameters:** @@ -300,16 +479,18 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | +`exchange` | string | +`chainId` | `BigNumber` | -**Returns:** *`Promise`* +**Returns:** *`Promise`* ___ ### `Static` deployFrom0xArtifactAsync -▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange`: string, `chainId`: `BigNumber`): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:58](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L58)* +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:48](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L48)* **Parameters:** @@ -319,8 +500,32 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | +`exchange` | string | +`chainId` | `BigNumber` | -**Returns:** *`Promise`* +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange`: string, `chainId`: `BigNumber`): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/coordinator.ts:84](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/coordinator.ts#L84)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | +`exchange` | string | +`chainId` | `BigNumber` | + +**Returns:** *`Promise`* ___ @@ -330,7 +535,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -354,7 +559,7 @@ Name | Type | *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3929](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3929)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:3257](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L3257)* **Parameters:** @@ -376,7 +581,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -386,7 +591,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -396,7 +601,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -406,7 +611,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -416,47 +621,35 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 - -## Methods - -### decodeAssetProxyDispatchError - -▸ **decodeAssetProxyDispatchError**(`encoded`: string): *`ContractFunctionObj<[number, string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1516](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1516)* - -Decompose an ABI-encoded AssetProxyDispatchError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[number, string, string]>`* - -errorCode The error code.orderHash Hash of the order being dispatched.assetData Asset data of the order being dispatched. +Defined in base-contract/lib/src/index.d.ts:32 ___ -### decodeAssetProxyExistsError +### `Static` contractName -▸ **decodeAssetProxyExistsError**(`encoded`: string): *`ContractFunctionObj<[string, string]>`* +▪ **contractName**: *string* = "DevUtils" -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1564](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1564)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L46)* -Decompose an ABI-encoded AssetProxyExistsError. +## Methods -**Parameters:** +### EIP712_EXCHANGE_DOMAIN_HASH -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | +▸ **EIP712_EXCHANGE_DOMAIN_HASH**(): *`ContractFunctionObj`* -**Returns:** *`ContractFunctionObj<[string, string]>`* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1597](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1597)* -assetProxyId Id of asset proxy.assetProxyAddress The address of the asset proxy. +**Returns:** *`ContractFunctionObj`* + +___ + +### chaiBridgeAddress + +▸ **chaiBridgeAddress**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1617](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1617)* + +**Returns:** *`ContractFunctionObj`* ___ @@ -464,7 +657,7 @@ ___ ▸ **decodeAssetProxyId**(`assetData`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1610](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1610)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1643](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1643)* Decode AssetProxy identifier @@ -480,51 +673,11 @@ The AssetProxy identifier ___ -### decodeAssetProxyTransferError - -▸ **decodeAssetProxyTransferError**(`encoded`: string): *`ContractFunctionObj<[string, string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1653](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1653)* - -Decompose an ABI-encoded AssetProxyTransferError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, string, string]>`* - -orderHash Hash of the order being dispatched.assetData Asset data of the order being dispatched.errorData ABI-encoded revert data from the asset proxy. - -___ - -### decodeEIP1271SignatureError - -▸ **decodeEIP1271SignatureError**(`encoded`: string): *`ContractFunctionObj<[string, string, string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1701](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1701)* - -Decompose an ABI-encoded SignatureValidatorError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, string, string, string]>`* - -signerAddress The expected signer of the hash.signature The full signature bytes.errorData The revert data thrown by the validator contract. - -___ - ### decodeERC1155AssetData ▸ **decodeERC1155AssetData**(`assetData`: string): *`ContractFunctionObj<[string, string, BigNumber[], BigNumber[], string]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1750](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1750)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1675](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1675)* Decode ERC-1155 asset data from the format described in the AssetProxy contract specification. @@ -544,7 +697,7 @@ ___ ▸ **decodeERC20AssetData**(`assetData`: string): *`ContractFunctionObj<[string, string]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1802](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1802)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1713](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1713)* Decode ERC-20 asset data from the format described in the AssetProxy contract specification. @@ -556,7 +709,27 @@ Name | Type | Description | **Returns:** *`ContractFunctionObj<[string, string]>`* -The AssetProxy identifier, and the address of the ERC-20 contract hosting this asset. +The AssetProxy identifier, and the address of the ERC-20 contract hosting this asset. + +___ + +### decodeERC20BridgeAssetData + +▸ **decodeERC20BridgeAssetData**(`assetData`: string): *`ContractFunctionObj<[string, string, string, string]>`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1745](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1745)* + +Decode ERC20Bridge asset data from the format described in the AssetProxy contract specification. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`assetData` | string | AssetProxy-compliant asset data describing an ERC20Bridge asset | + +**Returns:** *`ContractFunctionObj<[string, string, string, string]>`* + +The ERC20BridgeProxy identifier, the address of the ERC20 token to transfer, the address of the bridge contract, and extra data to be passed to the bridge contract. ___ @@ -564,7 +737,7 @@ ___ ▸ **decodeERC721AssetData**(`assetData`: string): *`ContractFunctionObj<[string, string, BigNumber]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1848](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1848)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1780](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1780)* Decode ERC-721 asset data from the format described in the AssetProxy contract specification. @@ -580,71 +753,11 @@ The ERC-721 AssetProxy identifier, the address of the ERC-721 contract hosting t ___ -### decodeExchangeInvalidContextError - -▸ **decodeExchangeInvalidContextError**(`encoded`: string): *`ContractFunctionObj<[number, string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1896](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1896)* - -Decompose an ABI-encoded OrderStatusError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[number, string, string]>`* - -errorCode Error code that corresponds to invalid maker, taker, or sender.orderHash The order hash.contextAddress The maker, taker, or sender address - -___ - -### decodeFillError - -▸ **decodeFillError**(`encoded`: string): *`ContractFunctionObj<[number, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1945](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1945)* - -Decompose an ABI-encoded FillError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[number, string]>`* - -errorCode The error code.orderHash The order hash. - -___ - -### decodeIncompleteFillError - -▸ **decodeIncompleteFillError**(`encoded`: string): *`ContractFunctionObj<[number, BigNumber, BigNumber]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1988](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1988)* - -Decompose an ABI-encoded IncompleteFillError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[number, BigNumber, BigNumber]>`* - -orderHash Hash of the order being filled. - -___ - ### decodeMultiAssetData ▸ **decodeMultiAssetData**(`assetData`: string): *`ContractFunctionObj<[string, BigNumber[], string[]]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2036](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2036)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1814](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1814)* Decode multi-asset data from the format described in the AssetProxy contract specification. @@ -660,131 +773,11 @@ The Multi-Asset AssetProxy identifier, an array of the amounts of the assets to ___ -### decodeNegativeSpreadError - -▸ **decodeNegativeSpreadError**(`encoded`: string): *`ContractFunctionObj<[string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2084](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2084)* - -Decompose an ABI-encoded NegativeSpreadError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, string]>`* - -leftOrderHash Hash of the left order being matched.rightOrderHash Hash of the right order being matched. - -___ - -### decodeOrderEpochError - -▸ **decodeOrderEpochError**(`encoded`: string): *`ContractFunctionObj<[string, string, BigNumber]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2129](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2129)* - -Decompose an ABI-encoded OrderEpochError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, string, BigNumber]>`* - -makerAddress The order maker.orderSenderAddress The order sender.currentEpoch The current epoch for the maker. - -___ - -### decodeOrderStatusError - -▸ **decodeOrderStatusError**(`encoded`: string): *`ContractFunctionObj<[string, number]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2177](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2177)* - -Decompose an ABI-encoded OrderStatusError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, number]>`* - -orderHash The order hash.orderStatus The order status. - -___ - -### decodeSignatureError - -▸ **decodeSignatureError**(`encoded`: string): *`ContractFunctionObj<[number, string, string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2222](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2222)* - -Decompose an ABI-encoded SignatureError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[number, string, string, string]>`* - -errorCode The error code.signerAddress The expected signer of the hash.signature The full signature. - -___ - -### decodeSignatureValidatorNotApprovedError - -▸ **decodeSignatureValidatorNotApprovedError**(`encoded`: string): *`ContractFunctionObj<[string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2268](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2268)* - -Decompose an ABI-encoded SignatureValidatorNotApprovedError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, string]>`* - -signerAddress The expected signer of the hash.validatorAddress The expected validator. - -___ - -### decodeSignatureWalletError - -▸ **decodeSignatureWalletError**(`encoded`: string): *`ContractFunctionObj<[string, string, string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2316](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2316)* - -Decompose an ABI-encoded SignatureWalletError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, string, string, string]>`* - -errorCode The error code.signerAddress The expected signer of the hash.signature The full signature bytes.errorData The revert data thrown by the validator contract. - -___ - ### decodeStaticCallAssetData ▸ **decodeStaticCallAssetData**(`assetData`: string): *`ContractFunctionObj<[string, string, string, string]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2365](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2365)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1849](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1849)* Decode StaticCall asset data from the format described in the AssetProxy contract specification. @@ -800,51 +793,11 @@ The StaticCall AssetProxy identifier, the target address of the StaticCAll, the ___ -### decodeTransactionError - -▸ **decodeTransactionError**(`encoded`: string): *`ContractFunctionObj<[number, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2413](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2413)* - -Decompose an ABI-encoded TransactionError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[number, string]>`* - -errorCode The error code.transactionHash Hash of the transaction. - -___ - -### decodeTransactionExecutionError - -▸ **decodeTransactionExecutionError**(`encoded`: string): *`ContractFunctionObj<[string, string]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2458](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2458)* - -Decompose an ABI-encoded TransactionExecutionError. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`encoded` | string | ABI-encoded revert error. | - -**Returns:** *`ContractFunctionObj<[string, string]>`* - -transactionHash Hash of the transaction.errorData Error thrown by exeucteTransaction(). - -___ - ### decodeZeroExTransactionData ▸ **decodeZeroExTransactionData**(`transactionData`: string): *`ContractFunctionObj<[string, Array, BigNumber[], string[]]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2505](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2505)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1884](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1884)* Decodes the call data for an Exchange contract method call. @@ -860,11 +813,21 @@ The name of the function called, and the parameters it was given. For singl ___ +### dydxBridgeAddress + +▸ **dydxBridgeAddress**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1981](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1981)* + +**Returns:** *`ContractFunctionObj`* + +___ + ### encodeERC1155AssetData ▸ **encodeERC1155AssetData**(`tokenAddress`: string, `tokenIds`: `BigNumber`[], `tokenValues`: `BigNumber`[], `callbackData`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2628](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2628)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2011](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2011)* Encode ERC-1155 asset data into the format described in the AssetProxy contract specification. @@ -887,7 +850,7 @@ ___ ▸ **encodeERC20AssetData**(`tokenAddress`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2686](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2686)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2056](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2056)* Encode ERC-20 asset data into the format described in the AssetProxy contract specification. @@ -907,7 +870,7 @@ ___ ▸ **encodeERC721AssetData**(`tokenAddress`: string, `tokenId`: `BigNumber`): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2735](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2735)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2089](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2089)* Encode ERC-721 asset data into the format described in the AssetProxy specification. @@ -928,7 +891,7 @@ ___ ▸ **encodeMultiAssetData**(`amounts`: `BigNumber`[], `nestedAssetData`: string[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2787](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2787)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2123](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2123)* Encode data for multiple assets, per the AssetProxy contract specification. @@ -949,7 +912,7 @@ ___ ▸ **encodeStaticCallAssetData**(`staticCallTargetAddress`: string, `staticCallData`: string, `expectedReturnDataHash`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2841](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2841)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2159](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2159)* Encode StaticCall asset data into the format described in the AssetProxy contract specification. @@ -967,11 +930,51 @@ AssetProxy-compliant asset data describing the set of assets. ___ +### erc1155ProxyAddress + +▸ **erc1155ProxyAddress**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2195](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2195)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### erc20ProxyAddress + +▸ **erc20ProxyAddress**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2215](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2215)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### erc721ProxyAddress + +▸ **erc721ProxyAddress**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2235](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2235)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### exchangeAddress + +▸ **exchangeAddress**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2255](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2255)* + +**Returns:** *`ContractFunctionObj`* + +___ + ### getABIDecodedReturnData ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1497](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1497)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1582](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1582)* **Type parameters:** @@ -992,7 +995,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1490](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1490)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1574](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1574)* **Type parameters:** @@ -1011,9 +1014,9 @@ ___ ### getAssetProxyAllowance -▸ **getAssetProxyAllowance**(`ownerAddress`: string, `assetData`: string): *`ContractFunctionObj`* +▸ **getAssetProxyAllowance**(`ownerAddress`: string, `assetData`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2899](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2899)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2282](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2282)* Returns the number of asset(s) (described by assetData) that the corresponding AssetProxy contract is authorized to spend. When the asset data contains multiple assets (eg for Multi-Asset), the return value indicates how many complete "baskets" of those assets may be spent by all of the corresponding AssetProxy contracts. @@ -1024,7 +1027,7 @@ Name | Type | Description | `ownerAddress` | string | Owner of the assets specified by assetData. | `assetData` | string | Details of asset, encoded per the AssetProxy contract specification. | -**Returns:** *`ContractFunctionObj`* +**Returns:** *`ContractTxFunctionObj`* Number of assets (or asset baskets) that the corresponding AssetProxy is authorized to spend. @@ -1032,9 +1035,9 @@ ___ ### getBalance -▸ **getBalance**(`ownerAddress`: string, `assetData`: string): *`ContractFunctionObj`* +▸ **getBalance**(`ownerAddress`: string, `assetData`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:2961](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L2961)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2337](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2337)* Returns the owner's balance of the assets(s) specified in assetData. When the asset data contains multiple assets (eg in ERC1155 or Multi-Asset), the return value indicates how many complete "baskets" of those assets are owned by owner. @@ -1045,7 +1048,7 @@ Name | Type | Description | `ownerAddress` | string | Owner of the assets specified by assetData. | `assetData` | string | Details of asset, encoded per the AssetProxy contract specification. | -**Returns:** *`ContractFunctionObj`* +**Returns:** *`ContractTxFunctionObj`* Number of assets (or asset baskets) held by owner. @@ -1053,9 +1056,9 @@ ___ ### getBalanceAndAssetProxyAllowance -▸ **getBalanceAndAssetProxyAllowance**(`ownerAddress`: string, `assetData`: string): *`ContractFunctionObj<[BigNumber, BigNumber]>`* +▸ **getBalanceAndAssetProxyAllowance**(`ownerAddress`: string, `assetData`: string): *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3023](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3023)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2392](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2392)* Calls getBalance() and getAllowance() for assetData. @@ -1066,7 +1069,7 @@ Name | Type | Description | `ownerAddress` | string | Owner of the assets specified by assetData. | `assetData` | string | Details of asset, encoded per the AssetProxy contract specification. | -**Returns:** *`ContractFunctionObj<[BigNumber, BigNumber]>`* +**Returns:** *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* Number of assets (or asset baskets) held by owner, and number of assets (or asset baskets) that the corresponding AssetProxy is authorized to spend. @@ -1074,9 +1077,9 @@ ___ ### getBatchAssetProxyAllowances -▸ **getBatchAssetProxyAllowances**(`ownerAddress`: string, `assetData`: string[]): *`ContractFunctionObj`* +▸ **getBatchAssetProxyAllowances**(`ownerAddress`: string, `assetData`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3091](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3091)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2453](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2453)* Calls getAssetProxyAllowance() for each element of assetData. @@ -1087,7 +1090,7 @@ Name | Type | Description | `ownerAddress` | string | Owner of the assets specified by assetData. | `assetData` | string[] | Array of asset details, each encoded per the AssetProxy contract specification. | -**Returns:** *`ContractFunctionObj`* +**Returns:** *`ContractTxFunctionObj`* An array of asset allowances from getAllowance(), with each element corresponding to the same-indexed element in the assetData input. @@ -1095,9 +1098,9 @@ ___ ### getBatchBalances -▸ **getBatchBalances**(`ownerAddress`: string, `assetData`: string[]): *`ContractFunctionObj`* +▸ **getBatchBalances**(`ownerAddress`: string, `assetData`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3153](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3153)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2508](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2508)* Calls getBalance() for each element of assetData. @@ -1108,7 +1111,7 @@ Name | Type | Description | `ownerAddress` | string | Owner of the assets specified by assetData. | `assetData` | string[] | Array of asset details, each encoded per the AssetProxy contract specification. | -**Returns:** *`ContractFunctionObj`* +**Returns:** *`ContractTxFunctionObj`* Array of asset balances from getBalance(), with each element corresponding to the same-indexed element in the assetData input. @@ -1116,9 +1119,9 @@ ___ ### getBatchBalancesAndAssetProxyAllowances -▸ **getBatchBalancesAndAssetProxyAllowances**(`ownerAddress`: string, `assetData`: string[]): *`ContractFunctionObj<[BigNumber[], BigNumber[]]>`* +▸ **getBatchBalancesAndAssetProxyAllowances**(`ownerAddress`: string, `assetData`: string[]): *`ContractTxFunctionObj<[BigNumber[], BigNumber[]]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3215](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3215)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2563](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2563)* Calls getBatchBalances() and getBatchAllowances() for each element of assetData. @@ -1129,7 +1132,7 @@ Name | Type | Description | `ownerAddress` | string | Owner of the assets specified by assetData. | `assetData` | string[] | Array of asset details, each encoded per the AssetProxy contract specification. | -**Returns:** *`ContractFunctionObj<[BigNumber[], BigNumber[]]>`* +**Returns:** *`ContractTxFunctionObj<[BigNumber[], BigNumber[]]>`* An array of asset balances from getBalance(), and an array of asset allowances from getAllowance(), with each element corresponding to the same-indexed element in the assetData input. @@ -1139,7 +1142,7 @@ ___ ▸ **getEthBalances**(`addresses`: string[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3281](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3281)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2622](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2622)* Batch fetches ETH balances @@ -1159,7 +1162,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1484](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1484)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1567](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1567)* **Parameters:** @@ -1171,11 +1174,29 @@ Name | Type | ___ +### getOrderHash + +▸ **getOrderHash**(`order`: object, `chainId`: `BigNumber`, `exchange`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2643](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2643)* + +**Parameters:** + +Name | Type | +------ | ------ | +`order` | object | +`chainId` | `BigNumber` | +`exchange` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + ### getOrderRelevantState -▸ **getOrderRelevantState**(`order`: object, `signature`: string): *`ContractFunctionObj<[object, BigNumber, boolean]>`* +▸ **getOrderRelevantState**(`order`: object, `signature`: string): *`ContractTxFunctionObj<[object, BigNumber, boolean]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3337](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3337)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2699](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2699)* Fetches all order-relevant information needed to validate if the supplied order is fillable. @@ -1186,7 +1207,7 @@ Name | Type | Description | `order` | object | The order structure. | `signature` | string | Signature provided by maker that proves the order's authenticity. `0x01` can always be provided if the signature does not need to be validated. | -**Returns:** *`ContractFunctionObj<[object, BigNumber, boolean]>`* +**Returns:** *`ContractTxFunctionObj<[object, BigNumber, boolean]>`* The orderInfo (hash, status, and `takerAssetAmount` already filled for the given order), fillableTakerAssetAmount (amount of the order's `takerAssetAmount` that is fillable given all on-chain state), and isValidSignature (validity of the provided signature). NOTE: If the `takerAssetData` encodes data for multiple assets, `fillableTakerAssetAmount` will represent a "scaled" amount, meaning it must be multiplied by all the individual asset amounts within the `takerAssetData` to get the final amount of each asset that can be filled. @@ -1194,9 +1215,9 @@ ___ ### getOrderRelevantStates -▸ **getOrderRelevantStates**(`orders`: `Array`, `signatures`: string[]): *`ContractFunctionObj<[Array, BigNumber[], boolean[]]>`* +▸ **getOrderRelevantStates**(`orders`: `Array`, `signatures`: string[]): *`ContractTxFunctionObj<[Array, BigNumber[], boolean[]]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3433](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3433)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2787](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2787)* Fetches all order-relevant information needed to validate if the supplied orders are fillable. @@ -1207,7 +1228,7 @@ Name | Type | Description | `orders` | `Array` | Array of order structures. | `signatures` | string[] | Array of signatures provided by makers that prove the authenticity of the orders. `0x01` can always be provided if a signature does not need to be validated. | -**Returns:** *`ContractFunctionObj<[Array, BigNumber[], boolean[]]>`* +**Returns:** *`ContractTxFunctionObj<[Array, BigNumber[], boolean[]]>`* The ordersInfo (array of the hash, status, and `takerAssetAmount` already filled for each order), fillableTakerAssetAmounts (array of amounts for each order's `takerAssetAmount` that is fillable given all on-chain state), and isValidSignature (array containing the validity of each provided signature). NOTE: If the `takerAssetData` encodes data for multiple assets, each element of `fillableTakerAssetAmounts` will represent a "scaled" amount, meaning it must be multiplied by all the individual asset amounts within the `takerAssetData` to get the final amount of each asset that can be filled. @@ -1217,7 +1238,7 @@ ___ ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:1504](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L1504)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:1590](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L1590)* **Parameters:** @@ -1229,11 +1250,33 @@ Name | Type | ___ +### getSimulatedOrderMakerTransferResults + +▸ **getSimulatedOrderMakerTransferResults**(`order`: object, `takerAddress`: string, `takerAssetFillAmount`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2883](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2883)* + +Simulates the maker transfers within an order and returns the index of the first failed transfer. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`order` | object | The order to simulate transfers for. | +`takerAddress` | string | The address of the taker that will fill the order. | +`takerAssetFillAmount` | `BigNumber` | The amount of takerAsset that the taker wished to fill. | + +**Returns:** *`ContractTxFunctionObj`* + +The index of the first failed transfer (or 4 if all transfers are successful). + +___ + ### getSimulatedOrderTransferResults ▸ **getSimulatedOrderTransferResults**(`order`: object, `takerAddress`: string, `takerAssetFillAmount`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3537](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3537)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:2964](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L2964)* Simulates all of the transfers within an order and returns the index of the first failed transfer. @@ -1255,7 +1298,7 @@ ___ ▸ **getSimulatedOrdersTransferResults**(`orders`: `Array`, `takerAddresses`: string[], `takerAssetFillAmounts`: `BigNumber`[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3687](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3687)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:3046](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L3046)* Simulates all of the transfers for each given order and returns the indices of each first failed transfer. @@ -1273,13 +1316,31 @@ The indices of the first failed transfer (or 4 if all transfers are successful) ___ +### getTransactionHash + +▸ **getTransactionHash**(`transaction`: object, `chainId`: `BigNumber`, `exchange`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:3115](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L3115)* + +**Parameters:** + +Name | Type | +------ | ------ | +`transaction` | object | +`chainId` | `BigNumber` | +`exchange` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + ### getTransferableAssetAmount -▸ **getTransferableAssetAmount**(`ownerAddress`: string, `assetData`: string): *`ContractFunctionObj`* +▸ **getTransferableAssetAmount**(`ownerAddress`: string, `assetData`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3835](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3835)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:3160](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L3160)* -Gets the amount of an asset transferable by the owner. +Gets the amount of an asset transferable by the maker of an order. **Parameters:** @@ -1288,7 +1349,7 @@ Name | Type | Description | `ownerAddress` | string | Address of the owner of the asset. | `assetData` | string | Description of tokens, per the AssetProxy contract specification. | -**Returns:** *`ContractFunctionObj`* +**Returns:** *`ContractTxFunctionObj`* The amount of the asset tranferable by the owner. NOTE: If the `assetData` encodes data for multiple assets, the `transferableAssetAmount` will represent the amount of times the entire `assetData` can be transferred. To calculate the total individual transferable amounts, this scaled `transferableAmount` must be multiplied by the individual asset amounts located within the `assetData`. @@ -1298,23 +1359,35 @@ ___ ▸ **revertIfInvalidAssetData**(`assetData`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:3890](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L3890)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:3212](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L3212)* + +Reverts if assetData is not of a valid format for its given proxy id. **Parameters:** -Name | Type | ------- | ------ | -`assetData` | string | +Name | Type | Description | +------ | ------ | ------ | +`assetData` | string | AssetProxy compliant asset data. | **Returns:** *`ContractFunctionObj`* ___ +### staticCallProxyAddress + +▸ **staticCallProxyAddress**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:3238](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L3238)* + +**Returns:** *`ContractFunctionObj`* + +___ + ### `Static` ABI ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:125](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L125)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:182](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L182)* **Returns:** *[ContractAbi](#contractabi)* @@ -1324,9 +1397,9 @@ ___ ### `Static` deployAsync -▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string): *`Promise`* +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange_`: string, `chaiBridge_`: string, `dydxBridge_`: string): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:78](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L78)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:131](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L131)* **Parameters:** @@ -1337,7 +1410,9 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -`_exchange` | string | +`exchange_` | string | +`chaiBridge_` | string | +`dydxBridge_` | string | **Returns:** *`Promise`* @@ -1345,9 +1420,9 @@ ___ ### `Static` deployFrom0xArtifactAsync -▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string): *`Promise`* +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange_`: string, `chaiBridge_`: string, `dydxBridge_`: string): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dev_utils.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts#L45)* +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:48](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L48)* **Parameters:** @@ -1357,7 +1432,32 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -`_exchange` | string | +`exchange_` | string | +`chaiBridge_` | string | +`dydxBridge_` | string | + +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange_`: string, `chaiBridge_`: string, `dydxBridge_`: string): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/dev_utils.ts:86](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts#L86)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | +`exchange_` | string | +`chaiBridge_` | string | +`dydxBridge_` | string | **Returns:** *`Promise`* @@ -1369,7 +1469,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -1382,18 +1482,18 @@ Name | Type |
-# Class: DummyERC20TokenContract +# Class: ERC20BridgeSamplerContract ## Constructors -\+ **new DummyERC20TokenContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[DummyERC20TokenContract](#class-dummyerc20tokencontract)* +\+ **new ERC20BridgeSamplerContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[ERC20BridgeSamplerContract](#class-erc20bridgesamplercontract)* *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1690](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1690)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1610](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1610)* **Parameters:** @@ -1403,9 +1503,9 @@ Name | Type | Default | `supportedProvider` | [SupportedProvider](#supportedprovider) | - | `txDefaults?` | `Partial` | - | `logDecodeDependencies?` | undefined \| object | - | -`deployedBytecode` | string \| undefined | DummyERC20TokenContract.deployedBytecode | +`deployedBytecode` | string \| undefined | ERC20BridgeSamplerContract.deployedBytecode | -**Returns:** *[DummyERC20TokenContract](#class-dummyerc20tokencontract)* +**Returns:** *[ERC20BridgeSamplerContract](#class-erc20bridgesamplercontract)* ## Properties @@ -1415,7 +1515,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -1425,7 +1525,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -1435,7 +1535,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -1445,7 +1545,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -1455,85 +1555,35 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "ERC20BridgeSampler" + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L45)* ## Methods -### MAX_MINT_AMOUNT +### batchCall -▸ **MAX_MINT_AMOUNT**(): *`ContractFunctionObj`* +▸ **batchCall**(`callDatas`: string[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:503](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L503)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:890](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L890)* -**Returns:** *`ContractFunctionObj`* - -___ - -### allowance - -▸ **allowance**(`_owner`: string, `_spender`: string): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:550](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L550)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_owner` | string | -`_spender` | string | - -**Returns:** *`ContractFunctionObj`* - -___ - -### approve - -▸ **approve**(`_spender`: string, `_value`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:611](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L611)* - -`msg.sender` approves `_spender` to spend `_value` tokens +Call multiple public functions on this contract in a single transaction. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`_spender` | string | The address of the account able to transfer the tokens | -`_value` | `BigNumber` | The amount of wei to be approved for transfer | +`callDatas` | string[] | ABI-encoded call data for each function call. | -**Returns:** *`ContractTxFunctionObj`* +**Returns:** *`ContractFunctionObj`* -Always true if the call has enough gas to complete execution - -___ - -### balanceOf - -▸ **balanceOf**(`_owner`: string): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:735](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L735)* - -Query the balance of owner - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_owner` | string | The address from which the balance will be retrieved | - -**Returns:** *`ContractFunctionObj`* - -Balance of owner - -___ - -### decimals - -▸ **decimals**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:785](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L785)* - -**Returns:** *`ContractFunctionObj`* +callResults ABI-encoded results data for each call. ___ @@ -1541,7 +1591,7 @@ ___ ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:489](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L489)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:870](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L870)* **Type parameters:** @@ -1562,7 +1612,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:482](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L482)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:862](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L862)* **Type parameters:** @@ -1583,7 +1633,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:476](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L476)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:855](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L855)* **Parameters:** @@ -1595,29 +1645,74 @@ Name | Type | ___ -### getLogsAsync +### getLiquidityProviderFromRegistry -▸ **getLogsAsync**<**ArgsType**>(`eventName`: [DummyERC20TokenEvents](#enumeration-dummyerc20tokenevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* +▸ **getLiquidityProviderFromRegistry**(`registryAddress`: string, `takerToken`: string, `makerToken`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1674](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1674)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:919](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L919)* -Gets historical logs without creating a subscription - -**Type parameters:** - -▪ **ArgsType**: *[DummyERC20TokenEventArgs](#dummyerc20tokeneventargs)* +Returns the address of a liquidity provider for the given market +(takerToken, makerToken), from a registry of liquidity providers. +Returns address(0) if no such provider exists in the registry. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`eventName` | [DummyERC20TokenEvents](#enumeration-dummyerc20tokenevents) | The DummyERC20Token contract event you would like to subscribe to. | -`blockRange` | `BlockRange` | Block range to get logs from. | -`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | +`registryAddress` | string | - | +`takerToken` | string | Taker asset managed by liquidity provider. | +`makerToken` | string | Maker asset managed by liquidity provider. | -**Returns:** *`Promise>>`* +**Returns:** *`ContractFunctionObj`* -Array of logs that match the parameters +providerAddress Address of the liquidity provider. + +___ + +### getOrderFillableMakerAssetAmounts + +▸ **getOrderFillableMakerAssetAmounts**(`orders`: `Array`, `orderSignatures`: string[], `devUtilsAddress`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:958](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L958)* + +Queries the fillable taker asset amounts of native orders. +Effectively ignores orders that have empty signatures or + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`orders` | `Array` | Native orders to query. | +`orderSignatures` | string[] | Signatures for each respective order in `orders`. | +`devUtilsAddress` | string | Address to the DevUtils contract. | + +**Returns:** *`ContractFunctionObj`* + +orderFillableMakerAssetAmounts How much maker asset can be filled by each order in `orders`. + +___ + +### getOrderFillableTakerAssetAmounts + +▸ **getOrderFillableTakerAssetAmounts**(`orders`: `Array`, `orderSignatures`: string[], `devUtilsAddress`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1014](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1014)* + +Queries the fillable taker asset amounts of native orders. +Effectively ignores orders that have empty signatures or +maker/taker asset amounts (returning 0). + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`orders` | `Array` | Native orders to query. | +`orderSignatures` | string[] | Signatures for each respective order in `orders`. | +`devUtilsAddress` | string | Address to the DevUtils contract. | + +**Returns:** *`ContractFunctionObj`* + +orderFillableTakerAssetAmounts How much taker asset can be filled by each order in `orders`. ___ @@ -1625,7 +1720,7 @@ ___ ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:496](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L496)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:878](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L878)* **Parameters:** @@ -1637,201 +1732,319 @@ Name | Type | ___ -### mint +### sampleBuysFromCurve -▸ **mint**(`_value`: `BigNumber`): *`ContractTxFunctionObj`* +▸ **sampleBuysFromCurve**(`curveAddress`: string, `fromTokenIdx`: `BigNumber`, `toTokenIdx`: `BigNumber`, `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:836](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L836)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1069](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1069)* -Mints new tokens for sender +Sample buy quotes from Curve. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`_value` | `BigNumber` | Amount of tokens to mint | +`curveAddress` | string | Address of the Curve contract. | +`fromTokenIdx` | `BigNumber` | Index of the taker token (what to sell). | +`toTokenIdx` | `BigNumber` | Index of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | -**Returns:** *`ContractTxFunctionObj`* +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. ___ -### name +### sampleBuysFromEth2Dai -▸ **name**(): *`ContractFunctionObj`* +▸ **sampleBuysFromEth2Dai**(`takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:942](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L942)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1109](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1109)* -**Returns:** *`ContractFunctionObj`* - -___ - -### owner - -▸ **owner**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:989](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L989)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### setBalance - -▸ **setBalance**(`_target`: string, `_value`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1041](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1041)* - -Sets the balance of target address +Sample buy quotes from Eth2Dai/Oasis. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`_target` | string | Address or which balance will be updated | -`_value` | `BigNumber` | New balance of target address | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | - | -**Returns:** *`ContractTxFunctionObj`* +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. ___ -### subscribe +### sampleBuysFromKyberNetwork -▸ **subscribe**<**ArgsType**>(`eventName`: [DummyERC20TokenEvents](#enumeration-dummyerc20tokenevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* +▸ **sampleBuysFromKyberNetwork**(`takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[], `opts`: object): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1632](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1632)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1148](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1148)* -Subscribe to an event type emitted by the DummyERC20Token contract. - -**Type parameters:** - -▪ **ArgsType**: *[DummyERC20TokenEventArgs](#dummyerc20tokeneventargs)* - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`eventName` | [DummyERC20TokenEvents](#enumeration-dummyerc20tokenevents) | - | The DummyERC20Token contract event you would like to subscribe to. | -`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | -`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | -`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | -`blockPollingIntervalMs?` | undefined \| number | - | - | - -**Returns:** *string* - -Subscription token used later to unsubscribe - -___ - -### symbol - -▸ **symbol**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1160](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1160)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### totalSupply - -▸ **totalSupply**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1211](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1211)* - -Query total supply of token - -**Returns:** *`ContractFunctionObj`* - -Total supply of token - -___ - -### transfer - -▸ **transfer**(`_to`: string, `_value`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1264](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1264)* - -send `value` token to `to` from `msg.sender` +Sample buy quotes from Kyber. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`_to` | string | The address of the recipient | -`_value` | `BigNumber` | The amount of token to be transferred | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | +`opts` | object | `FakeBuyOptions` specifying target slippage and max iterations. | -**Returns:** *`ContractTxFunctionObj`* +**Returns:** *`ContractFunctionObj`* -True if transfer was successful +takerTokenAmounts Taker amounts sold at each maker token amount. ___ -### transferFrom +### sampleBuysFromLiquidityProviderRegistry -▸ **transferFrom**(`_from`: string, `_to`: string, `_value`: `BigNumber`): *`ContractTxFunctionObj`* +▸ **sampleBuysFromLiquidityProviderRegistry**(`registryAddress`: string, `takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[], `opts`: object): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1390](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1390)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1191](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1191)* -ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance. See https://github.com/ethereum/EIPs/issues/717 +Sample buy quotes from an arbitrary on-chain liquidity provider. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`_from` | string | Address to transfer from. | -`_to` | string | Address to transfer to. | -`_value` | `BigNumber` | Amount to transfer. | +`registryAddress` | string | Address of the liquidity provider registry contract. | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | +`opts` | object | `FakeBuyOptions` specifying target slippage and max iterations. | -**Returns:** *`ContractTxFunctionObj`* +**Returns:** *`ContractFunctionObj`* -Success of transfer. +takerTokenAmounts Taker amounts sold at each maker token amount. ___ -### transferOwnership +### sampleBuysFromUniswap -▸ **transferOwnership**(`newOwner`: string): *`ContractTxFunctionObj`* +▸ **sampleBuysFromUniswap**(`takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1514](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1514)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1236](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1236)* -**Parameters:** - -Name | Type | ------- | ------ | -`newOwner` | string | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### unsubscribe - -▸ **unsubscribe**(`subscriptionToken`: string): *void* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1657](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1657)* - -Cancel a subscription +Sample buy quotes from Uniswap. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`subscriptionToken` | string | Subscription token returned by `subscribe()` | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token sell amount for each sample. | -**Returns:** *void* +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. ___ -### unsubscribeAll +### sampleBuysFromUniswapV2 -▸ **unsubscribeAll**(): *void* +▸ **sampleBuysFromUniswapV2**(`path`: string[], `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:1663](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L1663)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1273](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1273)* -Cancels all existing subscriptions +Sample buy quotes from UniswapV2. -**Returns:** *void* +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`path` | string[] | Token route. Should be takerToken -> makerToken. | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. + +___ + +### sampleSellsFromCurve + +▸ **sampleSellsFromCurve**(`curveAddress`: string, `fromTokenIdx`: `BigNumber`, `toTokenIdx`: `BigNumber`, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1303](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1303)* + +Sample sell quotes from Curve. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`curveAddress` | string | Address of the Curve contract. | +`fromTokenIdx` | `BigNumber` | Index of the taker token (what to sell). | +`toTokenIdx` | `BigNumber` | Index of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromEth2Dai + +▸ **sampleSellsFromEth2Dai**(`takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1344](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1344)* + +Sample sell quotes from Eth2Dai/Oasis. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromEth2DaiHop + +▸ **sampleSellsFromEth2DaiHop**(`takerToken`: string, `makerToken`: string, `intermediateToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1384](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1384)* + +Sample sell quotes from Eth2Dai/Oasis using a hop to an intermediate token. +I.e WBTC/DAI via ETH or WBTC/ETH via DAI + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`intermediateToken` | string | Address of the token to hop to. | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromKyberNetwork + +▸ **sampleSellsFromKyberNetwork**(`takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1425](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1425)* + +Sample sell quotes from Kyber. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromLiquidityProviderRegistry + +▸ **sampleSellsFromLiquidityProviderRegistry**(`registryAddress`: string, `takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1464](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1464)* + +Sample sell quotes from an arbitrary on-chain liquidity provider. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`registryAddress` | string | Address of the liquidity provider registry contract. | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromMultiBridge + +▸ **sampleSellsFromMultiBridge**(`multibridge`: string, `takerToken`: string, `intermediateToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1508](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1508)* + +Sample sell quotes from MultiBridge. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`multibridge` | string | Address of the MultiBridge contract. | +`takerToken` | string | Address of the taker token (what to sell). | +`intermediateToken` | string | The address of the intermediate token to use in an indirect route. | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromUniswap + +▸ **sampleSellsFromUniswap**(`takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1552](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1552)* + +Sample sell quotes from Uniswap. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromUniswapV2 + +▸ **sampleSellsFromUniswapV2**(`path`: string[], `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:1589](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L1589)* + +Sample sell quotes from UniswapV2. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`path` | string[] | Token route. Should be takerToken -> makerToken | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. ___ @@ -1839,7 +2052,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:155](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L155)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:162](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L162)* **Returns:** *[ContractAbi](#contractabi)* @@ -1849,9 +2062,9 @@ ___ ### `Static` deployAsync -▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_name`: string, `_symbol`: string, `_decimals`: `BigNumber`, `_totalSupply`: `BigNumber`): *`Promise`* +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:105](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L105)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:118](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L118)* **Parameters:** @@ -1862,20 +2075,16 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -`_name` | string | -`_symbol` | string | -`_decimals` | `BigNumber` | -`_totalSupply` | `BigNumber` | -**Returns:** *`Promise`* +**Returns:** *`Promise`* ___ ### `Static` deployFrom0xArtifactAsync -▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_name`: string, `_symbol`: string, `_decimals`: `BigNumber`, `_totalSupply`: `BigNumber`): *`Promise`* +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:66](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L66)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:47](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L47)* **Parameters:** @@ -1885,12 +2094,28 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -`_name` | string | -`_symbol` | string | -`_decimals` | `BigNumber` | -`_totalSupply` | `BigNumber` | -**Returns:** *`Promise`* +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts:79](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts#L79)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* ___ @@ -1900,593 +2125,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:42 - -**Parameters:** - -Name | Type | ------- | ------ | -`inputAbi` | `DataItem`[] | -`args` | any[] | - -**Returns:** *string* - -
- -# Class: DummyERC721TokenContract - - -## Constructors - - - -\+ **new DummyERC721TokenContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[DummyERC721TokenContract](#class-dummyerc721tokencontract)* - -*Overrides void* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1990](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1990)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`address` | string | - | -`supportedProvider` | [SupportedProvider](#supportedprovider) | - | -`txDefaults?` | `Partial` | - | -`logDecodeDependencies?` | undefined \| object | - | -`deployedBytecode` | string \| undefined | DummyERC721TokenContract.deployedBytecode | - -**Returns:** *[DummyERC721TokenContract](#class-dummyerc721tokencontract)* - -## Properties - -### `Optional` _deployedBytecodeIfExists - -• **_deployedBytecodeIfExists**? : *`Buffer`* - - - -Defined in base-contract/lib/src/index.d.ts:32 - -___ - -### abi - -• **abi**: *[ContractAbi](#contractabi)* - - - -Defined in base-contract/lib/src/index.d.ts:28 - -___ - -### address - -• **address**: *string* - - - -Defined in base-contract/lib/src/index.d.ts:29 - -___ - -Args - -• **constructorArgs**: *any[]* - - - -Defined in base-contract/lib/src/index.d.ts:31 - -___ - -### contractName - -• **contractName**: *string* - - - -Defined in base-contract/lib/src/index.d.ts:30 - -## Methods - -### approve - -▸ **approve**(`_approved`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:562](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L562)* - -The zero address indicates there is no approved address. -Throws unless `msg.sender` is the current NFT owner, or an authorized -operator of the current owner. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_approved` | string | The new approved NFT controller | -`_tokenId` | `BigNumber` | The NFT to approve | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### balanceOf - -▸ **balanceOf**(`_owner`: string): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:687](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L687)* - -NFTs assigned to the zero address are considered invalid, and this -function throws for queries about the zero address. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_owner` | string | An address for whom to query the balance | - -**Returns:** *`ContractFunctionObj`* - -The number of NFTs owned by `_owner`, possibly zero - -___ - -### burn - -▸ **burn**(`_owner`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:743](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L743)* - -Function to burn a token -Reverts if the given token ID doesn't exist or not called by contract owner - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_owner` | string | Owner of token with given token ID | -`_tokenId` | `BigNumber` | ID of the token to be burned by the msg.sender | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### getABIDecodedReturnData - -▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:541](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L541)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | -`callData` | string | - -**Returns:** *`T`* - -___ - -### getABIDecodedTransactionData - -▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:534](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L534)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | -`callData` | string | - -**Returns:** *`T`* - -___ - -### getApproved - -▸ **getApproved**(`_tokenId`: `BigNumber`): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:867](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L867)* - -Throws if `_tokenId` is not a valid NFT. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_tokenId` | `BigNumber` | The NFT to find the approved address for | - -**Returns:** *`ContractFunctionObj`* - -The approved address for this NFT, or the zero address if there is none - -___ - -### getFunctionSignature - -▸ **getFunctionSignature**(`methodName`: string): *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:528](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L528)* - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | - -**Returns:** *string* - -___ - -### getLogsAsync - -▸ **getLogsAsync**<**ArgsType**>(`eventName`: [DummyERC721TokenEvents](#enumeration-dummyerc721tokenevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1974](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1974)* - -Gets historical logs without creating a subscription - -**Type parameters:** - -▪ **ArgsType**: *[DummyERC721TokenEventArgs](#dummyerc721tokeneventargs)* - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`eventName` | [DummyERC721TokenEvents](#enumeration-dummyerc721tokenevents) | The DummyERC721Token contract event you would like to subscribe to. | -`blockRange` | `BlockRange` | Block range to get logs from. | -`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | - -**Returns:** *`Promise>>`* - -Array of logs that match the parameters - -___ - -### getSelector - -▸ **getSelector**(`methodName`: string): *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:548](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L548)* - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | - -**Returns:** *string* - -___ - -### isApprovedForAll - -▸ **isApprovedForAll**(`_owner`: string, `_operator`: string): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:915](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L915)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_owner` | string | -`_operator` | string | - -**Returns:** *`ContractFunctionObj`* - -___ - -### mint - -▸ **mint**(`_to`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:976](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L976)* - -Function to mint a new token -Reverts if the given token ID already exists - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_to` | string | Address of the beneficiary that will own the minted token | -`_tokenId` | `BigNumber` | ID of the token to be minted by the msg.sender | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### name - -▸ **name**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1086](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1086)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### owner - -▸ **owner**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1133](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1133)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### ownerOf - -▸ **ownerOf**(`_tokenId`: `BigNumber`): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1186](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1186)* - -NFTs assigned to zero address are considered invalid, and queries -about them do throw. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_tokenId` | `BigNumber` | The identifier for an NFT | - -**Returns:** *`ContractFunctionObj`* - -The address of the owner of the NFT - -___ - -### safeTransferFrom1 - -▸ **safeTransferFrom1**(`_from`: string, `_to`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1241](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1241)* - -This works identically to the other function with an extra data parameter, -except this function just sets data to "". - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_from` | string | The current owner of the NFT | -`_to` | string | The new owner | -`_tokenId` | `BigNumber` | The NFT to transfer | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### safeTransferFrom2 - -▸ **safeTransferFrom2**(`_from`: string, `_to`: string, `_tokenId`: `BigNumber`, `_data`: string): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1377](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1377)* - -Throws unless `msg.sender` is the current owner, an authorized -operator, or the approved address for this NFT. Throws if `_from` is -not the current owner. Throws if `_to` is the zero address. Throws if -`_tokenId` is not a valid NFT. When transfer is complete, this function -checks if `_to` is a smart contract (code size > 0). If so, it calls -`onERC721Received` on `_to` and throws if the return value is not -`bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_from` | string | The current owner of the NFT | -`_to` | string | The new owner | -`_tokenId` | `BigNumber` | The NFT to transfer | -`_data` | string | Additional data with no specified format, sent in call to `_to` | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### setApprovalForAll - -▸ **setApprovalForAll**(`_operator`: string, `_approved`: boolean): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1515](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1515)* - -Emits the ApprovalForAll event. The contract MUST allow -multiple operators per owner. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_operator` | string | Address to add to the set of authorized operators | -`_approved` | boolean | True if the operator is approved, false to revoke approval | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### subscribe - -▸ **subscribe**<**ArgsType**>(`eventName`: [DummyERC721TokenEvents](#enumeration-dummyerc721tokenevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1932](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1932)* - -Subscribe to an event type emitted by the DummyERC721Token contract. - -**Type parameters:** - -▪ **ArgsType**: *[DummyERC721TokenEventArgs](#dummyerc721tokeneventargs)* - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`eventName` | [DummyERC721TokenEvents](#enumeration-dummyerc721tokenevents) | - | The DummyERC721Token contract event you would like to subscribe to. | -`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | -`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | -`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | -`blockPollingIntervalMs?` | undefined \| number | - | - | - -**Returns:** *string* - -Subscription token used later to unsubscribe - -___ - -### symbol - -▸ **symbol**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1634](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1634)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### transferFrom - -▸ **transferFrom**(`_from`: string, `_to`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1690](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1690)* - -Throws unless `msg.sender` is the current owner, an authorized -operator, or the approved address for this NFT. Throws if `_from` is -not the current owner. Throws if `_to` is the zero address. Throws if -`_tokenId` is not a valid NFT. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`_from` | string | The current owner of the NFT | -`_to` | string | The new owner | -`_tokenId` | `BigNumber` | The NFT to transfer | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### transferOwnership - -▸ **transferOwnership**(`newOwner`: string): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1814](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1814)* - -**Parameters:** - -Name | Type | ------- | ------ | -`newOwner` | string | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### unsubscribe - -▸ **unsubscribe**(`subscriptionToken`: string): *void* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1957](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1957)* - -Cancel a subscription - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`subscriptionToken` | string | Subscription token returned by `subscribe()` | - -**Returns:** *void* - -___ - -### unsubscribeAll - -▸ **unsubscribeAll**(): *void* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:1963](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L1963)* - -Cancels all existing subscriptions - -**Returns:** *void* - -___ - -### `Static` ABI - -▸ **ABI**(): *[ContractAbi](#contractabi)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:159](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L159)* - -**Returns:** *[ContractAbi](#contractabi)* - -The contract ABI - -___ - -### `Static` deployAsync - -▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_name`: string, `_symbol`: string): *`Promise`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:111](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L111)* - -**Parameters:** - -Name | Type | ------- | ------ | -`bytecode` | string | -`abi` | [ContractAbi](#contractabi) | -`supportedProvider` | [SupportedProvider](#supportedprovider) | -`txDefaults` | `Partial` | -`logDecodeDependencies` | object | -`_name` | string | -`_symbol` | string | - -**Returns:** *`Promise`* - -___ - -### `Static` deployFrom0xArtifactAsync - -▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_name`: string, `_symbol`: string): *`Promise`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:76](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L76)* - -**Parameters:** - -Name | Type | ------- | ------ | -`artifact` | `ContractArtifact` \| `SimpleContractArtifact` | -`supportedProvider` | [SupportedProvider](#supportedprovider) | -`txDefaults` | `Partial` | -`logDecodeDependencies` | object | -`_name` | string | -`_symbol` | string | - -**Returns:** *`Promise`* - -___ - -### `Static` strictArgumentEncodingCheck - -▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* - - - -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -2510,7 +2149,7 @@ Name | Type | *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:951](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L951)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:735](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L735)* **Parameters:** @@ -2532,7 +2171,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -2542,7 +2181,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -2552,7 +2191,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -2562,7 +2201,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -2572,7 +2211,15 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "ERC20Token" + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:66](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L66)* ## Methods @@ -2580,7 +2227,7 @@ Defined in base-contract/lib/src/index.d.ts:30 ▸ **allowance**(`_owner`: string, `_spender`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:828](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L828)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:428](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L428)* **Parameters:** @@ -2597,7 +2244,7 @@ ___ ▸ **approve**(`_spender`: string, `_value`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:347](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L347)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:456](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L456)* `msg.sender` approves `_spender` to spend `_value` tokens @@ -2618,7 +2265,7 @@ ___ ▸ **balanceOf**(`_owner`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:653](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L653)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:509](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L509)* Query the balance of owner @@ -2638,7 +2285,7 @@ ___ ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:327](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L327)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:413](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L413)* **Type parameters:** @@ -2659,7 +2306,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:320](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L320)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:405](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L405)* **Type parameters:** @@ -2680,7 +2327,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:314](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L314)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:398](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L398)* **Parameters:** @@ -2696,7 +2343,7 @@ ___ ▸ **getLogsAsync**<**ArgsType**>(`eventName`: [ERC20TokenEvents](#enumeration-erc20tokenevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:935](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L935)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:719](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L719)* Gets historical logs without creating a subscription @@ -2722,7 +2369,7 @@ ___ ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:334](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L334)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:421](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L421)* **Parameters:** @@ -2738,7 +2385,7 @@ ___ ▸ **subscribe**<**ArgsType**>(`eventName`: [ERC20TokenEvents](#enumeration-erc20tokenevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:893](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L893)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:674](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L674)* Subscribe to an event type emitted by the ERC20Token contract. @@ -2766,7 +2413,7 @@ ___ ▸ **totalSupply**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:470](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L470)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:534](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L534)* Query total supply of token @@ -2780,7 +2427,7 @@ ___ ▸ **transfer**(`_to`: string, `_value`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:709](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L709)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:560](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L560)* send `value` token to `to` from `msg.sender` @@ -2801,7 +2448,7 @@ ___ ▸ **transferFrom**(`_from`: string, `_to`: string, `_value`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:524](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L524)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:615](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L615)* send `value` token to `to` from `from` on the condition it is approved by `from` @@ -2823,7 +2470,7 @@ ___ ▸ **unsubscribe**(`subscriptionToken`: string): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:918](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L918)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:700](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L700)* Cancel a subscription @@ -2841,7 +2488,7 @@ ___ ▸ **unsubscribeAll**(): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:924](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L924)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:707](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L707)* Cancels all existing subscriptions @@ -2853,7 +2500,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:133](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L133)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:172](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L172)* **Returns:** *[ContractAbi](#contractabi)* @@ -2865,7 +2512,7 @@ ___ ▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:91](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L91)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:128](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L128)* **Parameters:** @@ -2885,7 +2532,7 @@ ___ ▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:66](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L66)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:69](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L69)* **Parameters:** @@ -2900,13 +2547,33 @@ Name | Type | ___ +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:95](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L95)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + ### `Static` strictArgumentEncodingCheck ▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -2930,7 +2597,7 @@ Name | Type | *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:1376](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L1376)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:995](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L995)* **Parameters:** @@ -2952,7 +2619,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -2962,7 +2629,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -2972,7 +2639,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -2982,7 +2649,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -2992,7 +2659,15 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "ERC721Token" + +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:76](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L76)* ## Methods @@ -3000,7 +2675,7 @@ Defined in base-contract/lib/src/index.d.ts:30 ▸ **approve**(`_approved`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:438](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L438)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:525](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L525)* The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized @@ -3021,7 +2696,7 @@ ___ ▸ **balanceOf**(`_owner`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:563](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L563)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:579](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L579)* NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address. @@ -3042,7 +2717,7 @@ ___ ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:417](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L417)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:503](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L503)* **Type parameters:** @@ -3063,7 +2738,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:410](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L410)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:495](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L495)* **Type parameters:** @@ -3084,7 +2759,7 @@ ___ ▸ **getApproved**(`_tokenId`: `BigNumber`): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:618](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L618)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:605](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L605)* Throws if `_tokenId` is not a valid NFT. @@ -3104,7 +2779,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:404](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L404)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:488](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L488)* **Parameters:** @@ -3120,7 +2795,7 @@ ___ ▸ **getLogsAsync**<**ArgsType**>(`eventName`: [ERC721TokenEvents](#enumeration-erc721tokenevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:1360](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L1360)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:979](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L979)* Gets historical logs without creating a subscription @@ -3146,7 +2821,7 @@ ___ ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:424](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L424)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:511](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L511)* **Parameters:** @@ -3162,7 +2837,7 @@ ___ ▸ **isApprovedForAll**(`_owner`: string, `_operator`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:666](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L666)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:626](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L626)* **Parameters:** @@ -3179,7 +2854,7 @@ ___ ▸ **ownerOf**(`_tokenId`: `BigNumber`): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:727](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L727)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:654](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L654)* NFTs assigned to zero address are considered invalid, and queries about them do throw. @@ -3200,7 +2875,7 @@ ___ ▸ **safeTransferFrom1**(`_from`: string, `_to`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:782](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L782)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:682](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L682)* This works identically to the other function with an extra data parameter, except this function just sets data to "". @@ -3221,7 +2896,7 @@ ___ ▸ **safeTransferFrom2**(`_from`: string, `_to`: string, `_tokenId`: `BigNumber`, `_data`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:918](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L918)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:748](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L748)* Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is @@ -3248,7 +2923,7 @@ ___ ▸ **setApprovalForAll**(`_operator`: string, `_approved`: boolean): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:1056](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L1056)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:814](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L814)* Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner. @@ -3268,7 +2943,7 @@ ___ ▸ **subscribe**<**ArgsType**>(`eventName`: [ERC721TokenEvents](#enumeration-erc721tokenevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:1318](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L1318)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:934](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L934)* Subscribe to an event type emitted by the ERC721Token contract. @@ -3296,7 +2971,7 @@ ___ ▸ **transferFrom**(`_from`: string, `_to`: string, `_tokenId`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:1184](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L1184)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:871](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L871)* Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is @@ -3319,7 +2994,7 @@ ___ ▸ **unsubscribe**(`subscriptionToken`: string): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:1343](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L1343)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:960](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L960)* Cancel a subscription @@ -3337,7 +3012,7 @@ ___ ▸ **unsubscribeAll**(): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:1349](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L1349)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:967](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L967)* Cancels all existing subscriptions @@ -3349,7 +3024,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:143](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L143)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:182](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L182)* **Returns:** *[ContractAbi](#contractabi)* @@ -3361,7 +3036,7 @@ ___ ▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:101](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L101)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:138](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L138)* **Parameters:** @@ -3381,7 +3056,7 @@ ___ ▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:76](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L76)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:79](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L79)* **Parameters:** @@ -3396,13 +3071,33 @@ Name | Type | ___ +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:105](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L105)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + ### `Static` strictArgumentEncodingCheck ▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -3426,7 +3121,7 @@ Name | Type | *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:8066](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L8066)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:6007](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L6007)* **Parameters:** @@ -3448,7 +3143,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -3458,7 +3153,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -3468,7 +3163,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -3478,7 +3173,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -3488,7 +3183,15 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "Exchange" + +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:132](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L132)* ## Methods @@ -3496,7 +3199,7 @@ Defined in base-contract/lib/src/index.d.ts:30 ▸ **EIP1271_MAGIC_VALUE**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3106](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3106)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3228](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3228)* **Returns:** *`ContractFunctionObj`* @@ -3506,7 +3209,7 @@ ___ ▸ **EIP712_EXCHANGE_DOMAIN_HASH**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3153](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3153)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3248](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3248)* **Returns:** *`ContractFunctionObj`* @@ -3516,7 +3219,7 @@ ___ ▸ **allowedValidators**(`index_0`: string, `index_1`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3200](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3200)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3268](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3268)* **Parameters:** @@ -3533,7 +3236,7 @@ ___ ▸ **batchCancelOrders**(`orders`: `Array`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3259](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3259)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3294](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3294)* Executes multiple calls of cancelOrder. @@ -3551,7 +3254,7 @@ ___ ▸ **batchExecuteTransactions**(`transactions`: `Array`, `signatures`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3403](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3403)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3366](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3366)* Executes a batch of Exchange method calls in the context of signer(s). @@ -3564,7 +3267,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj`* -Array containing ABI encoded return data for each of the underlying Exchange function calls. +returnData Array containing ABI encoded return data for each of the underlying Exchange function calls. ___ @@ -3572,7 +3275,7 @@ ___ ▸ **batchFillOrKillOrders**(`orders`: `Array`, `takerAssetFillAmounts`: `BigNumber`[], `signatures`: string[]): *`ContractTxFunctionObj>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3541](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3541)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3431](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3431)* Executes multiple calls of fillOrKillOrder. @@ -3586,7 +3289,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj>`* -Array of amounts filled and fees paid by makers and taker. +fillResults Array of amounts filled and fees paid by makers and taker. ___ @@ -3594,7 +3297,7 @@ ___ ▸ **batchFillOrders**(`orders`: `Array`, `takerAssetFillAmounts`: `BigNumber`[], `signatures`: string[]): *`ContractTxFunctionObj>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3717](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3717)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3535](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3535)* Executes multiple calls of fillOrder. @@ -3608,7 +3311,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj>`* -Array of amounts filled and fees paid by makers and taker. +fillResults Array of amounts filled and fees paid by makers and taker. ___ @@ -3616,7 +3319,7 @@ ___ ▸ **batchFillOrdersNoThrow**(`orders`: `Array`, `takerAssetFillAmounts`: `BigNumber`[], `signatures`: string[]): *`ContractTxFunctionObj>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3893](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3893)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3639](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3639)* Executes multiple calls of fillOrder. If any fill reverts, the error is caught and ignored. @@ -3630,7 +3333,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj>`* -Array of amounts filled and fees paid by makers and taker. +fillResults Array of amounts filled and fees paid by makers and taker. ___ @@ -3638,7 +3341,7 @@ ___ ▸ **batchMatchOrders**(`leftOrders`: `Array`, `rightOrders`: `Array`, `leftSignatures`: string[], `rightSignatures`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4073](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4073)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3747](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3747)* Match complementary orders that have a profitable spread. Each order is filled at their respective price point, and @@ -3663,7 +3366,7 @@ ___ ▸ **batchMatchOrdersWithMaximalFill**(`leftOrders`: `Array`, `rightOrders`: `Array`, `leftSignatures`: string[], `rightSignatures`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4298](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4298)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3905](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3905)* Match complementary orders that have a profitable spread. Each order is maximally filled at their respective price point, and @@ -3689,7 +3392,7 @@ ___ ▸ **cancelOrder**(`order`: object): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4514](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4514)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4054](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4054)* After calling, the order can not be filled anymore. @@ -3707,7 +3410,7 @@ ___ ▸ **cancelOrdersUpTo**(`targetOrderEpoch`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4654](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4654)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4123](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4123)* Cancels all orders created by makerAddress with a salt less than or equal to the targetOrderEpoch and senderAddress equal to msg.sender (or null address if msg.sender == makerAddress). @@ -3726,7 +3429,7 @@ ___ ▸ **cancelled**(`index_0`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4762](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4762)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4170](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4170)* **Parameters:** @@ -3742,17 +3445,30 @@ ___ ▸ **currentContextAddress**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4810](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4810)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4191](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4191)* **Returns:** *`ContractFunctionObj`* ___ +### detachProtocolFeeCollector + +▸ **detachProtocolFeeCollector**(): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4215](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4215)* + +Sets the protocolFeeCollector contract address to 0. +Only callable by owner. + +**Returns:** *`ContractTxFunctionObj`* + +___ + ### executeTransaction ▸ **executeTransaction**(`transaction`: object, `signature`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4863](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4863)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4267](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4267)* Executes an Exchange method call in the context of signer. @@ -3773,9 +3489,9 @@ ___ ▸ **fillOrKillOrder**(`order`: object, `takerAssetFillAmount`: `BigNumber`, `signature`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:4999](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L4999)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4331](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4331)* -Fills the input order. Reverts if exact takerAssetFillAmount not filled. +Fills the input order. Reverts if exact `takerAssetFillAmount` not filled. **Parameters:** @@ -3783,17 +3499,19 @@ Name | Type | Description | ------ | ------ | ------ | `order` | object | Order struct containing order specifications. | `takerAssetFillAmount` | `BigNumber` | Desired amount of takerAsset to sell. | -`signature` | string | Proof that order has been created by maker. | +`signature` | string | Proof that order has been created by maker. | **Returns:** *`ContractTxFunctionObj`* +fillResults Amounts filled and fees paid. + ___ ### fillOrder ▸ **fillOrder**(`order`: object, `takerAssetFillAmount`: `BigNumber`, `signature`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5168](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5168)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4428](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4428)* Fills the input order. @@ -3807,7 +3525,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj`* -Amounts filled and fees paid by maker and taker. +fillResults Amounts filled and fees paid by maker and taker. ___ @@ -3815,7 +3533,7 @@ ___ ▸ **filled**(`index_0`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5330](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5330)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4518](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4518)* **Parameters:** @@ -3831,7 +3549,7 @@ ___ ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3092](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3092)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3213](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3213)* **Type parameters:** @@ -3852,7 +3570,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3085](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3085)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3205](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3205)* **Type parameters:** @@ -3873,7 +3591,7 @@ ___ ▸ **getAssetProxy**(`assetProxyId`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5383](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5383)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4544](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4544)* Gets an asset proxy. @@ -3885,7 +3603,7 @@ Name | Type | Description | **Returns:** *`ContractFunctionObj`* -The asset proxy registered to assetProxyId. Returns 0x0 if no proxy is registered. +assetProxy The asset proxy address registered to assetProxyId. Returns 0x0 if no proxy is registered. ___ @@ -3893,7 +3611,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3079](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3079)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3198](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3198)* **Parameters:** @@ -3909,7 +3627,7 @@ ___ ▸ **getLogsAsync**<**ArgsType**>(`eventName`: [ExchangeEvents](#enumeration-exchangeevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:8050](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L8050)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5991](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5991)* Gets historical logs without creating a subscription @@ -3935,7 +3653,7 @@ ___ ▸ **getOrderInfo**(`order`: object): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5436](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5436)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4570](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4570)* Gets information about an order: status, hash, and amount filled. @@ -3947,7 +3665,7 @@ Name | Type | Description | **Returns:** *`ContractFunctionObj`* -OrderInfo Information about the order and its state. See LibOrder.OrderInfo for a complete description. +orderInfo Information about the order and its state. See LibOrder.OrderInfo for a complete description. ___ @@ -3955,7 +3673,7 @@ ___ ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:3099](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L3099)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:3221](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L3221)* **Parameters:** @@ -3971,7 +3689,7 @@ ___ ▸ **isValidHashSignature**(`hash`: string, `signerAddress`: string, `signature`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5520](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5520)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4621](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4621)* Verifies that a hash has been signed by the given signer. @@ -3993,7 +3711,7 @@ ___ ▸ **isValidOrderSignature**(`order`: object, `signature`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5583](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5583)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4650](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4650)* Verifies that a signature for an order is valid. @@ -4014,7 +3732,7 @@ ___ ▸ **isValidTransactionSignature**(`transaction`: object, `signature`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5664](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5664)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4697](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4697)* Verifies that a signature for a transaction is valid. @@ -4035,7 +3753,7 @@ ___ ▸ **marketBuyOrdersFillOrKill**(`orders`: `Array`, `makerAssetFillAmount`: `BigNumber`, `signatures`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5738](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5738)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4736](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4736)* Calls marketBuyOrdersNoThrow then reverts if < makerAssetFillAmount has been bought. NOTE: This function does not enforce that the makerAsset is the same for each order. @@ -4050,7 +3768,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj`* -Amounts filled and fees paid by makers and taker. +fillResults Amounts filled and fees paid by makers and taker. ___ @@ -4058,7 +3776,7 @@ ___ ▸ **marketBuyOrdersNoThrow**(`orders`: `Array`, `makerAssetFillAmount`: `BigNumber`, `signatures`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:5909](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L5909)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4835](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4835)* Executes multiple calls of fillOrder until total amount of makerAsset is bought by taker. If any fill reverts, the error is caught and ignored. @@ -4074,7 +3792,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj`* -Amounts filled and fees paid by makers and taker. +fillResults Amounts filled and fees paid by makers and taker. ___ @@ -4082,7 +3800,7 @@ ___ ▸ **marketSellOrdersFillOrKill**(`orders`: `Array`, `takerAssetFillAmount`: `BigNumber`, `signatures`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:6079](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L6079)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:4933](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L4933)* Calls marketSellOrdersNoThrow then reverts if < takerAssetFillAmount has been sold. NOTE: This function does not enforce that the takerAsset is the same for each order. @@ -4097,7 +3815,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj`* -Amounts filled and fees paid by makers and taker. +fillResults Amounts filled and fees paid by makers and taker. ___ @@ -4105,7 +3823,7 @@ ___ ▸ **marketSellOrdersNoThrow**(`orders`: `Array`, `takerAssetFillAmount`: `BigNumber`, `signatures`: string[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:6250](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L6250)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5032](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5032)* Executes multiple calls of fillOrder until total amount of takerAsset is sold by taker. If any fill reverts, the error is caught and ignored. @@ -4121,7 +3839,7 @@ Name | Type | Description | **Returns:** *`ContractTxFunctionObj`* -Amounts filled and fees paid by makers and taker. +fillResults Amounts filled and fees paid by makers and taker. ___ @@ -4129,7 +3847,7 @@ ___ ▸ **matchOrders**(`leftOrder`: object, `rightOrder`: object, `leftSignature`: string, `rightSignature`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:6423](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L6423)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5133](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5133)* Match two complementary orders that have a profitable spread. Each order is filled at their respective price point. However, the calculations are @@ -4155,7 +3873,7 @@ ___ ▸ **matchOrdersWithMaximalFill**(`leftOrder`: object, `rightOrder`: object, `leftSignature`: string, `rightSignature`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:6645](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L6645)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5288](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5288)* Match two complementary orders that have a profitable spread. Each order is maximally filled at their respective price point, and @@ -4181,7 +3899,7 @@ ___ ▸ **orderEpoch**(`index_0`: string, `index_1`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:6856](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L6856)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5432](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5432)* **Parameters:** @@ -4198,7 +3916,7 @@ ___ ▸ **owner**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:6911](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L6911)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5454](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5454)* **Returns:** *`ContractFunctionObj`* @@ -4208,7 +3926,7 @@ ___ ▸ **preSign**(`hash`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:6963](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L6963)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5479](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5479)* Approves a hash on-chain. After presigning a hash, the preSign signature type will become valid for that hash and signer. @@ -4227,7 +3945,7 @@ ___ ▸ **preSigned**(`index_0`: string, `index_1`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7069](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7069)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5526](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5526)* **Parameters:** @@ -4244,7 +3962,7 @@ ___ ▸ **protocolFeeCollector**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7124](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7124)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5548](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5548)* **Returns:** *`ContractFunctionObj`* @@ -4254,7 +3972,7 @@ ___ ▸ **protocolFeeMultiplier**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7171](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7171)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5568](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5568)* **Returns:** *`ContractFunctionObj`* @@ -4264,7 +3982,7 @@ ___ ▸ **registerAssetProxy**(`assetProxy`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7223](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7223)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5593](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5593)* Registers an asset proxy to its asset proxy id. Once an asset proxy is registered, it cannot be unregistered. @@ -4283,7 +4001,7 @@ ___ ▸ **setProtocolFeeCollectorAddress**(`updatedProtocolFeeCollector`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7342](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7342)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5645](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5645)* Allows the owner to update the protocolFeeCollector address. @@ -4301,7 +4019,7 @@ ___ ▸ **setProtocolFeeMultiplier**(`updatedProtocolFeeMultiplier`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7461](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7461)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5696](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5696)* Allows the owner to update the protocol fee multiplier. @@ -4319,7 +4037,7 @@ ___ ▸ **setSignatureValidatorApproval**(`validatorAddress`: string, `approval`: boolean): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7581](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7581)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5749](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5749)* Approves/unnapproves a Validator contract to verify signatures on signer's behalf using the `Validator` signature type. @@ -4339,7 +4057,7 @@ ___ ▸ **simulateDispatchTransferFromCalls**(`assetData`: string[], `fromAddresses`: string[], `toAddresses`: string[], `amounts`: `BigNumber`[]): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7712](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7712)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5809](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5809)* This function may be used to simulate any amount of transfers As they would occur through the Exchange contract. Note that this function will always revert, even if all transfers are successful. However, it may be used with eth_call or with a try/catch pattern in order to simulate the results of the transfers. @@ -4362,7 +4080,7 @@ ___ ▸ **subscribe**<**ArgsType**>(`eventName`: [ExchangeEvents](#enumeration-exchangeevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:8008](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L8008)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5946](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5946)* Subscribe to an event type emitted by the Exchange contract. @@ -4390,7 +4108,7 @@ ___ ▸ **transactionsExecuted**(`index_0`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7840](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7840)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5864](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5864)* **Parameters:** @@ -4406,13 +4124,15 @@ ___ ▸ **transferOwnership**(`newOwner`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:7890](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L7890)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5889](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5889)* + +Change the owner of this contract. **Parameters:** -Name | Type | ------- | ------ | -`newOwner` | string | +Name | Type | Description | +------ | ------ | ------ | +`newOwner` | string | New owner address. | **Returns:** *`ContractTxFunctionObj`* @@ -4422,7 +4142,7 @@ ___ ▸ **unsubscribe**(`subscriptionToken`: string): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:8033](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L8033)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5972](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5972)* Cancel a subscription @@ -4440,7 +4160,7 @@ ___ ▸ **unsubscribeAll**(): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:8039](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L8039)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:5979](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L5979)* Cancels all existing subscriptions @@ -4452,7 +4172,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:198](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L198)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:245](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L245)* **Returns:** *[ContractAbi](#contractabi)* @@ -4464,7 +4184,7 @@ ___ ▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `chainId`: `BigNumber`): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:151](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L151)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:196](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L196)* **Parameters:** @@ -4485,7 +4205,7 @@ ___ ▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `chainId`: `BigNumber`): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:125](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L125)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:135](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L135)* **Parameters:** @@ -4501,13 +4221,34 @@ Name | Type | ___ +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `chainId`: `BigNumber`): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:162](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L162)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | +`chainId` | `BigNumber` | + +**Returns:** *`Promise`* + +___ + ### `Static` strictArgumentEncodingCheck ▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -4531,7 +4272,7 @@ Name | Type | *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:1147](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L1147)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1515](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1515)* **Parameters:** @@ -4553,7 +4294,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -4563,7 +4304,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -4573,7 +4314,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -4583,7 +4324,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -4593,15 +4334,53 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "Forwarder" + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:58](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L58)* ## Methods +### ERC1155_BATCH_RECEIVED + +▸ **ERC1155_BATCH_RECEIVED**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:780](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L780)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### ERC1155_RECEIVED + +▸ **ERC1155_RECEIVED**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:800](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L800)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### EXCHANGE_V2_ORDER_ID + +▸ **EXCHANGE_V2_ORDER_ID**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:820](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L820)* + +**Returns:** *`ContractFunctionObj`* + +___ + ### approveMakerAssetProxy ▸ **approveMakerAssetProxy**(`assetData`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:449](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L449)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:848](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L848)* Approves the respective proxy for a given asset to transfer tokens on the Forwarder contract's behalf. This is necessary because an order fee denominated in the maker asset (i.e. a percentage fee) is sent by the @@ -4623,7 +4402,7 @@ ___ ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:427](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L427)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:765](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L765)* **Type parameters:** @@ -4644,7 +4423,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:420](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L420)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:757](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L757)* **Type parameters:** @@ -4665,7 +4444,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:414](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L414)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:750](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L750)* **Parameters:** @@ -4677,11 +4456,37 @@ Name | Type | ___ +### getLogsAsync + +▸ **getLogsAsync**<**ArgsType**>(`eventName`: [ForwarderEvents](#enumeration-forwarderevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1499](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1499)* + +Gets historical logs without creating a subscription + +**Type parameters:** + +▪ **ArgsType**: *[ForwarderEventArgs](#forwardereventargs)* + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`eventName` | [ForwarderEvents](#enumeration-forwarderevents) | The Forwarder contract event you would like to subscribe to. | +`blockRange` | `BlockRange` | Block range to get logs from. | +`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | + +**Returns:** *`Promise>>`* + +Array of logs that match the parameters + +___ + ### getSelector ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:434](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L434)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:773](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L773)* **Parameters:** @@ -4695,9 +4500,9 @@ ___ ### marketBuyOrdersWithEth -▸ **marketBuyOrdersWithEth**(`orders`: `Array`, `makerAssetBuyAmount`: `BigNumber`, `signatures`: string[], `feePercentage`: `BigNumber`, `feeRecipient`: string): *`ContractTxFunctionObj<[BigNumber, BigNumber, BigNumber]>`* +▸ **marketBuyOrdersWithEth**(`orders`: `Array`, `makerAssetBuyAmount`: `BigNumber`, `signatures`: string[], `ethFeeAmounts`: `BigNumber`[], `feeRecipients`: string[]): *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:571](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L571)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:909](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L909)* Attempt to buy makerAssetBuyAmount of makerAsset by selling ETH provided with transaction. The Forwarder may *fill* more than makerAssetBuyAmount of the makerAsset so that it can @@ -4711,20 +4516,45 @@ Name | Type | Description | `orders` | `Array` | Array of order specifications used containing desired makerAsset and WETH as takerAsset. | `makerAssetBuyAmount` | `BigNumber` | Desired amount of makerAsset to purchase. | `signatures` | string[] | Proofs that orders have been created by makers. | -`feePercentage` | `BigNumber` | Percentage of WETH sold that will payed as fee to forwarding contract feeRecipient. | -`feeRecipient` | string | Address that will receive ETH when orders are filled. | +`ethFeeAmounts` | `BigNumber`[] | Amounts of ETH, denominated in Wei, that are paid to corresponding feeRecipients. | +`feeRecipients` | string[] | Addresses that will receive ETH when orders are filled. | -**Returns:** *`ContractTxFunctionObj<[BigNumber, BigNumber, BigNumber]>`* +**Returns:** *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* -wethSpentAmount Amount of WETH spent on the given set of orders.makerAssetAcquiredAmount Amount of maker asset acquired from the given set of orders.ethFeePaid Amount of ETH spent on the given forwarder fee. +wethSpentAmount Amount of WETH spent on the given set of orders.makerAssetAcquiredAmount Amount of maker asset acquired from the given set of orders. + +___ + +### marketSellAmountWithEth + +▸ **marketSellAmountWithEth**(`orders`: `Array`, `ethSellAmount`: `BigNumber`, `signatures`: string[], `ethFeeAmounts`: `BigNumber`[], `feeRecipients`: string[]): *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1003](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1003)* + +Purchases as much of orders' makerAssets as possible by selling the specified amount of ETH +accounting for order and forwarder fees. This functions throws if ethSellAmount was not reached. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`orders` | `Array` | Array of order specifications used containing desired makerAsset and WETH as takerAsset. | +`ethSellAmount` | `BigNumber` | Desired amount of ETH to sell. | +`signatures` | string[] | Proofs that orders have been created by makers. | +`ethFeeAmounts` | `BigNumber`[] | Amounts of ETH, denominated in Wei, that are paid to corresponding feeRecipients. | +`feeRecipients` | string[] | Addresses that will receive ETH when orders are filled. | + +**Returns:** *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* + +wethSpentAmount Amount of WETH spent on the given set of orders.makerAssetAcquiredAmount Amount of maker asset acquired from the given set of orders. ___ ### marketSellOrdersWithEth -▸ **marketSellOrdersWithEth**(`orders`: `Array`, `signatures`: string[], `feePercentage`: `BigNumber`, `feeRecipient`: string): *`ContractTxFunctionObj<[BigNumber, BigNumber, BigNumber]>`* +▸ **marketSellOrdersWithEth**(`orders`: `Array`, `signatures`: string[], `ethFeeAmounts`: `BigNumber`[], `feeRecipients`: string[]): *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:730](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L730)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1096](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1096)* Purchases as much of orders' makerAssets as possible by selling as much of the ETH value sent as possible, accounting for order and forwarder fees. @@ -4735,12 +4565,60 @@ Name | Type | Description | ------ | ------ | ------ | `orders` | `Array` | Array of order specifications used containing desired makerAsset and WETH as takerAsset. | `signatures` | string[] | Proofs that orders have been created by makers. | -`feePercentage` | `BigNumber` | Percentage of WETH sold that will payed as fee to forwarding contract feeRecipient. | -`feeRecipient` | string | Address that will receive ETH when orders are filled. | +`ethFeeAmounts` | `BigNumber`[] | Amounts of ETH, denominated in Wei, that are paid to corresponding feeRecipients. | +`feeRecipients` | string[] | Addresses that will receive ETH when orders are filled. | -**Returns:** *`ContractTxFunctionObj<[BigNumber, BigNumber, BigNumber]>`* +**Returns:** *`ContractTxFunctionObj<[BigNumber, BigNumber]>`* -wethSpentAmount Amount of WETH spent on the given set of orders.makerAssetAcquiredAmount Amount of maker asset acquired from the given set of orders.ethFeePaid Amount of ETH spent on the given forwarder fee. +wethSpentAmount Amount of WETH spent on the given set of orders.makerAssetAcquiredAmount Amount of maker asset acquired from the given set of orders. + +___ + +### onERC1155BatchReceived + +▸ **onERC1155BatchReceived**(`operator`: string, `from`: string, `ids`: `BigNumber`[], `values`: `BigNumber`[], `data`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1184](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1184)* + +The smart contract calls this function on the recipient after a `safeTransferFrom`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted Note: the contract address is always the message sender + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`operator` | string | The address which called `safeTransferFrom` function | +`from` | string | The address which previously owned the token | +`ids` | `BigNumber`[] | An array containing ids of each token being transferred | +`values` | `BigNumber`[] | An array containing amounts of each token being transferred | +`data` | string | Additional data with no specified format | + +**Returns:** *`ContractTxFunctionObj`* + +`bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` + +___ + +### onERC1155Received + +▸ **onERC1155Received**(`operator`: string, `from`: string, `id`: `BigNumber`, `value`: `BigNumber`, `data`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1256](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1256)* + +The smart contract calls this function on the recipient after a `safeTransferFrom`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted Note: the contract address is always the message sender + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`operator` | string | The address which called `safeTransferFrom` function | +`from` | string | The address which previously owned the token | +`id` | `BigNumber` | An array containing the ids of the token being transferred | +`value` | `BigNumber` | An array containing the amount of tokens being transferred | +`data` | string | Additional data with no specified format | + +**Returns:** *`ContractTxFunctionObj`* + +`bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` ___ @@ -4748,44 +4626,103 @@ ___ ▸ **owner**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:876](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L876)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1319](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1319)* **Returns:** *`ContractFunctionObj`* ___ +### subscribe + +▸ **subscribe**<**ArgsType**>(`eventName`: [ForwarderEvents](#enumeration-forwarderevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1454](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1454)* + +Subscribe to an event type emitted by the Forwarder contract. + +**Type parameters:** + +▪ **ArgsType**: *[ForwarderEventArgs](#forwardereventargs)* + +**Parameters:** + +Name | Type | Default | Description | +------ | ------ | ------ | ------ | +`eventName` | [ForwarderEvents](#enumeration-forwarderevents) | - | The Forwarder contract event you would like to subscribe to. | +`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | +`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | +`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | +`blockPollingIntervalMs?` | undefined \| number | - | - | + +**Returns:** *string* + +Subscription token used later to unsubscribe + +___ + ### transferOwnership ▸ **transferOwnership**(`newOwner`: string): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:923](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L923)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1343](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1343)* + +Change the owner of this contract. **Parameters:** -Name | Type | ------- | ------ | -`newOwner` | string | +Name | Type | Description | +------ | ------ | ------ | +`newOwner` | string | New owner address. | **Returns:** *`ContractTxFunctionObj`* ___ +### unsubscribe + +▸ **unsubscribe**(`subscriptionToken`: string): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1480](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1480)* + +Cancel a subscription + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`subscriptionToken` | string | Subscription token returned by `subscribe()` | + +**Returns:** *void* + +___ + +### unsubscribeAll + +▸ **unsubscribeAll**(): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1487](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1487)* + +Cancels all existing subscriptions + +**Returns:** *void* + +___ + ### withdrawAsset ▸ **withdrawAsset**(`assetData`: string, `amount`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:1038](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L1038)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:1396](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L1396)* -Withdraws assets from this contract. The contract formerly required a ZRX balance in order -to function optimally, and this function allows the ZRX to be withdrawn by owner. -It may also be used to withdraw assets that were accidentally sent to this contract. +Withdraws assets from this contract. It may be used by the owner to withdraw assets +that were accidentally sent to this contract. **Parameters:** Name | Type | Description | ------ | ------ | ------ | `assetData` | string | Byte array encoded for the respective asset proxy. | -`amount` | `BigNumber` | Amount of ERC20 token to withdraw. | +`amount` | `BigNumber` | Amount of the asset to withdraw. | **Returns:** *`ContractTxFunctionObj`* @@ -4795,7 +4732,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:127](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L127)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:195](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L195)* **Returns:** *[ContractAbi](#contractabi)* @@ -4805,9 +4742,9 @@ ___ ### `Static` deployAsync -▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string, `_wethAssetData`: string): *`Promise`* +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string, `_exchangeV2`: string, `_weth`: string): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:79](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L79)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:144](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L144)* **Parameters:** @@ -4819,7 +4756,8 @@ Name | Type | `txDefaults` | `Partial` | `logDecodeDependencies` | object | `_exchange` | string | -`_wethAssetData` | string | +`_exchangeV2` | string | +`_weth` | string | **Returns:** *`Promise`* @@ -4827,9 +4765,9 @@ ___ ### `Static` deployFrom0xArtifactAsync -▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string, `_wethAssetData`: string): *`Promise`* +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string, `_exchangeV2`: string, `_weth`: string): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/forwarder.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts#L44)* +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:61](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L61)* **Parameters:** @@ -4840,7 +4778,31 @@ Name | Type | `txDefaults` | `Partial` | `logDecodeDependencies` | object | `_exchange` | string | -`_wethAssetData` | string | +`_exchangeV2` | string | +`_weth` | string | + +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string, `_exchangeV2`: string, `_weth`: string): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:99](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L99)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | +`_exchange` | string | +`_exchangeV2` | string | +`_weth` | string | **Returns:** *`Promise`* @@ -4852,7 +4814,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -4865,18 +4827,18 @@ Name | Type |
-# Class: IValidatorContract +# Class: IAssetDataContract ## Constructors -\+ **new IValidatorContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[IValidatorContract](#class-ivalidatorcontract)* +\+ **new IAssetDataContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[IAssetDataContract](#class-iassetdatacontract)* *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:234](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L234)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:704](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L704)* **Parameters:** @@ -4886,9 +4848,9 @@ Name | Type | Default | `supportedProvider` | [SupportedProvider](#supportedprovider) | - | `txDefaults?` | `Partial` | - | `logDecodeDependencies?` | undefined \| object | - | -`deployedBytecode` | string \| undefined | IValidatorContract.deployedBytecode | +`deployedBytecode` | string \| undefined | IAssetDataContract.deployedBytecode | -**Returns:** *[IValidatorContract](#class-ivalidatorcontract)* +**Returns:** *[IAssetDataContract](#class-iassetdatacontract)* ## Properties @@ -4898,7 +4860,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -4908,7 +4870,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -4918,7 +4880,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -4928,7 +4890,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -4938,15 +4900,140 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +â–ª **contractName**: *string* = "IAssetData" + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L45)* ## Methods +### ERC1155Assets + +â–¸ **ERC1155Assets**(`tokenAddress`: string, `tokenIds`: `BigNumber`[], `values`: `BigNumber`[], `callbackData`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:361](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L361)* + +Function signature for encoding ERC1155 assetData. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`tokenAddress` | string | Address of ERC1155 token contract. | +`tokenIds` | `BigNumber`[] | Array of ids of tokens to be transferred. | +`values` | `BigNumber`[] | Array of values that correspond to each token id to be transferred. Note that each value will be multiplied by the amount being filled in the order before transferring. | +`callbackData` | string | Extra data to be passed to receiver's `onERC1155Received` callback function. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### ERC20Bridge + +â–¸ **ERC20Bridge**(`tokenAddress`: string, `bridgeAddress`: string, `bridgeData`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:427](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L427)* + +Function signature for encoding ERC20Bridge assetData. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`tokenAddress` | string | Address of token to transfer. | +`bridgeAddress` | string | Address of the bridge contract. | +`bridgeData` | string | Arbitrary data to be passed to the bridge contract. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### ERC20Token + +â–¸ **ERC20Token**(`tokenAddress`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:484](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L484)* + +Function signature for encoding ERC20 assetData. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`tokenAddress` | string | Address of ERC20Token contract. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### ERC721Token + +â–¸ **ERC721Token**(`tokenAddress`: string, `tokenId`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:536](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L536)* + +Function signature for encoding ERC721 assetData. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`tokenAddress` | string | Address of ERC721 token contract. | +`tokenId` | `BigNumber` | Id of ERC721 token to be transferred. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### MultiAsset + +â–¸ **MultiAsset**(`values`: `BigNumber`[], `nestedAssetData`: string[]): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:592](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L592)* + +Function signature for encoding MultiAsset assetData. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`values` | `BigNumber`[] | Array of amounts that correspond to each asset to be transferred. Note that each value will be multiplied by the amount being filled in the order before transferring. | +`nestedAssetData` | string[] | Array of assetData fields that will be be dispatched to their correspnding AssetProxy contract. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### StaticCall + +â–¸ **StaticCall**(`staticCallTargetAddress`: string, `staticCallData`: string, `expectedReturnDataHash`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:648](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L648)* + +Function signature for encoding StaticCall assetData. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`staticCallTargetAddress` | string | Address that will execute the staticcall. | +`staticCallData` | string | Data that will be executed via staticcall on the staticCallTargetAddress. | +`expectedReturnDataHash` | string | Keccak-256 hash of the expected staticcall return data. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + ### getABIDecodedReturnData â–¸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:157](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L157)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:336](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L336)* **Type parameters:** @@ -4967,7 +5054,7 @@ ___ â–¸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:150](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L150)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:328](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L328)* **Type parameters:** @@ -4988,7 +5075,7 @@ ___ â–¸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:144](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L144)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:321](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L321)* **Parameters:** @@ -5004,7 +5091,7 @@ ___ â–¸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:164](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L164)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:344](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L344)* **Parameters:** @@ -5016,33 +5103,11 @@ Name | Type | ___ -### isValidSignature - -â–¸ **isValidSignature**(`hash`: string, `signerAddress`: string, `signature`: string): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:178](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L178)* - -Verifies that a signature is valid. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`hash` | string | Message hash that is signed. | -`signerAddress` | string | Address that should have signed the given hash. | -`signature` | string | Proof of signing. | - -**Returns:** *`ContractFunctionObj`* - -Magic bytes4 value if the signature is valid. Magic value is bytes4(keccak256("isValidValidatorSignature(address,bytes32,address,bytes)")) - -___ - ### `Static` ABI â–¸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:111](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L111)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:150](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L150)* **Returns:** *[ContractAbi](#contractabi)* @@ -5052,9 +5117,9 @@ ___ ### `Static` deployAsync -â–¸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* +â–¸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:69](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L69)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:106](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L106)* **Parameters:** @@ -5066,15 +5131,15 @@ Name | Type | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -**Returns:** *`Promise`* +**Returns:** *`Promise`* ___ ### `Static` deployFrom0xArtifactAsync -â–¸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* +â–¸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_validator.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts#L44)* +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:47](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L47)* **Parameters:** @@ -5085,7 +5150,27 @@ Name | Type | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -**Returns:** *`Promise`* +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +â–¸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_asset_data.ts:73](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts#L73)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* ___ @@ -5095,7 +5180,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -5108,18 +5193,18 @@ Name | Type |
-# Class: IWalletContract +# Class: IERC20BridgeSamplerContract ## Constructors -\+ **new IWalletContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[IWalletContract](#class-iwalletcontract)* +\+ **new IERC20BridgeSamplerContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[IERC20BridgeSamplerContract](#class-ierc20bridgesamplercontract)* *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:224](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L224)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1534](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1534)* **Parameters:** @@ -5129,9 +5214,9 @@ Name | Type | Default | `supportedProvider` | [SupportedProvider](#supportedprovider) | - | `txDefaults?` | `Partial` | - | `logDecodeDependencies?` | undefined \| object | - | -`deployedBytecode` | string \| undefined | IWalletContract.deployedBytecode | +`deployedBytecode` | string \| undefined | IERC20BridgeSamplerContract.deployedBytecode | -**Returns:** *[IWalletContract](#class-iwalletcontract)* +**Returns:** *[IERC20BridgeSamplerContract](#class-ierc20bridgesamplercontract)* ## Properties @@ -5141,7 +5226,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -5151,7 +5236,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -5161,7 +5246,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -5171,7 +5256,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -5181,15 +5266,43 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +â–ª **contractName**: *string* = "IERC20BridgeSampler" + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L45)* ## Methods +### batchCall + +â–¸ **batchCall**(`callDatas`: string[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:859](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L859)* + +Call multiple public functions on this contract in a single transaction. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`callDatas` | string[] | ABI-encoded call data for each function call. | + +**Returns:** *`ContractFunctionObj`* + +callResults ABI-encoded results data for each call. + +___ + ### getABIDecodedReturnData â–¸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:153](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L153)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:839](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L839)* **Type parameters:** @@ -5210,7 +5323,7 @@ ___ â–¸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:146](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L146)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:831](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L831)* **Type parameters:** @@ -5231,7 +5344,7 @@ ___ â–¸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:140](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L140)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:824](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L824)* **Parameters:** @@ -5243,11 +5356,79 @@ Name | Type | ___ +### getLiquidityProviderFromRegistry + +â–¸ **getLiquidityProviderFromRegistry**(`registryAddress`: string, `takerToken`: string, `makerToken`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:888](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L888)* + +Returns the address of a liquidity provider for the given market +(takerToken, makerToken), from a registry of liquidity providers. +Returns address(0) if no such provider exists in the registry. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`registryAddress` | string | - | +`takerToken` | string | Taker asset managed by liquidity provider. | +`makerToken` | string | Maker asset managed by liquidity provider. | + +**Returns:** *`ContractFunctionObj`* + +providerAddress Address of the liquidity provider. + +___ + +### getOrderFillableMakerAssetAmounts + +â–¸ **getOrderFillableMakerAssetAmounts**(`orders`: `Array`, `orderSignatures`: string[], `devUtilsAddress`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:926](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L926)* + +Queries the fillable maker asset amounts of native orders. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`orders` | `Array` | Native orders to query. | +`orderSignatures` | string[] | Signatures for each respective order in `orders`. | +`devUtilsAddress` | string | Address to the DevUtils contract. | + +**Returns:** *`ContractFunctionObj`* + +orderFillableMakerAssetAmounts How much maker asset can be filled by each order in `orders`. + +___ + +### getOrderFillableTakerAssetAmounts + +â–¸ **getOrderFillableTakerAssetAmounts**(`orders`: `Array`, `orderSignatures`: string[], `devUtilsAddress`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:980](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L980)* + +Queries the fillable taker asset amounts of native orders. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`orders` | `Array` | Native orders to query. | +`orderSignatures` | string[] | Signatures for each respective order in `orders`. | +`devUtilsAddress` | string | Address to the DevUtils contract. | + +**Returns:** *`ContractFunctionObj`* + +orderFillableTakerAssetAmounts How much taker asset can be filled by each order in `orders`. + +___ + ### getSelector â–¸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:160](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L160)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:847](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L847)* **Parameters:** @@ -5259,24 +5440,295 @@ Name | Type | ___ -### isValidSignature +### sampleBuysFromCurve -â–¸ **isValidSignature**(`hash`: string, `signature`: string): *`ContractFunctionObj`* +â–¸ **sampleBuysFromCurve**(`curveAddress`: string, `fromTokenIdx`: `BigNumber`, `toTokenIdx`: `BigNumber`, `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:173](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L173)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1035](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1035)* -Validates a hash with the `Wallet` signature type. +Sample buy quotes from Curve. **Parameters:** Name | Type | Description | ------ | ------ | ------ | -`hash` | string | Message hash that is signed. | -`signature` | string | Proof of signing. | +`curveAddress` | string | Address of the Curve contract. | +`fromTokenIdx` | `BigNumber` | Index of the taker token (what to sell). | +`toTokenIdx` | `BigNumber` | Index of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | -**Returns:** *`ContractFunctionObj`* +**Returns:** *`ContractFunctionObj`* -magicValue `bytes4(0xb0671381)` if the signature check succeeds. +takerTokenAmounts Taker amounts sold at each maker token amount. + +___ + +### sampleBuysFromEth2Dai + +â–¸ **sampleBuysFromEth2Dai**(`takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1076](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1076)* + +Sample buy quotes from Eth2Dai/Oasis. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. + +___ + +### sampleBuysFromKyberNetwork + +â–¸ **sampleBuysFromKyberNetwork**(`takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[], `opts`: object): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1115](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1115)* + +Sample buy quotes from Kyber. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | +`opts` | object | `FakeBuyOptions` specifying target slippage and max iterations. | + +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. + +___ + +### sampleBuysFromLiquidityProviderRegistry + +â–¸ **sampleBuysFromLiquidityProviderRegistry**(`registryAddress`: string, `takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[], `opts`: object): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1158](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1158)* + +Sample buy quotes from an arbitrary on-chain liquidity provider. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`registryAddress` | string | Address of the liquidity provider registry contract. | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | +`opts` | object | `FakeBuyOptions` specifying target slippage and max iterations. | + +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. + +___ + +### sampleBuysFromUniswap + +â–¸ **sampleBuysFromUniswap**(`takerToken`: string, `makerToken`: string, `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1203](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1203)* + +Sample buy quotes from Uniswap. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. + +___ + +### sampleBuysFromUniswapV2 + +â–¸ **sampleBuysFromUniswapV2**(`path`: string[], `makerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1240](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1240)* + +Sample buy quotes from UniswapV2. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`path` | string[] | Token route. | +`makerTokenAmounts` | `BigNumber`[] | Maker token buy amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +takerTokenAmounts Taker amounts sold at each maker token amount. + +___ + +### sampleSellsFromCurve + +â–¸ **sampleSellsFromCurve**(`curveAddress`: string, `fromTokenIdx`: `BigNumber`, `toTokenIdx`: `BigNumber`, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1270](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1270)* + +Sample sell quotes from Curve. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`curveAddress` | string | Address of the Curve contract. | +`fromTokenIdx` | `BigNumber` | Index of the taker token (what to sell). | +`toTokenIdx` | `BigNumber` | Index of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromEth2Dai + +â–¸ **sampleSellsFromEth2Dai**(`takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1311](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1311)* + +Sample sell quotes from Eth2Dai/Oasis. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromKyberNetwork + +â–¸ **sampleSellsFromKyberNetwork**(`takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1349](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1349)* + +Sample sell quotes from Kyber. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromLiquidityProviderRegistry + +â–¸ **sampleSellsFromLiquidityProviderRegistry**(`registryAddress`: string, `takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1388](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1388)* + +Sample sell quotes from an arbitrary on-chain liquidity provider. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`registryAddress` | string | Address of the liquidity provider registry contract. | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromMultiBridge + +â–¸ **sampleSellsFromMultiBridge**(`multibridge`: string, `takerToken`: string, `intermediateToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1432](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1432)* + +Sample sell quotes from MultiBridge. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`multibridge` | string | Address of the MultiBridge contract. | +`takerToken` | string | Address of the taker token (what to sell). | +`intermediateToken` | string | The address of the intermediate token to use in an indirect route. | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromUniswap + +â–¸ **sampleSellsFromUniswap**(`takerToken`: string, `makerToken`: string, `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1476](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1476)* + +Sample sell quotes from Uniswap. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`takerToken` | string | Address of the taker token (what to sell). | +`makerToken` | string | Address of the maker token (what to buy). | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. + +___ + +### sampleSellsFromUniswapV2 + +â–¸ **sampleSellsFromUniswapV2**(`path`: string[], `takerTokenAmounts`: `BigNumber`[]): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:1513](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L1513)* + +Sample sell quotes from UniswapV2. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`path` | string[] | Token route. | +`takerTokenAmounts` | `BigNumber`[] | Taker token sell amount for each sample. | + +**Returns:** *`ContractFunctionObj`* + +makerTokenAmounts Maker amounts bought at each taker token amount. ___ @@ -5284,7 +5736,7 @@ ___ â–¸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:111](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L111)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:162](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L162)* **Returns:** *[ContractAbi](#contractabi)* @@ -5294,9 +5746,9 @@ ___ ### `Static` deployAsync -â–¸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* +â–¸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:69](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L69)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:118](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L118)* **Parameters:** @@ -5308,15 +5760,15 @@ Name | Type | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -**Returns:** *`Promise`* +**Returns:** *`Promise`* ___ ### `Static` deployFrom0xArtifactAsync -â–¸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* +â–¸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/i_wallet.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts#L44)* +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:47](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L47)* **Parameters:** @@ -5327,7 +5779,27 @@ Name | Type | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -**Returns:** *`Promise`* +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +â–¸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts:79](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts#L79)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* ___ @@ -5337,7 +5809,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -5350,18 +5822,18 @@ Name | Type |
-# Class: OrderValidatorContract +# Class: ITransformERC20Contract ## Constructors -\+ **new OrderValidatorContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[OrderValidatorContract](#class-ordervalidatorcontract)* +\+ **new ITransformERC20Contract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[ITransformERC20Contract](#class-itransformerc20contract)* *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:1338](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L1338)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:1008](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L1008)* **Parameters:** @@ -5371,9 +5843,9 @@ Name | Type | Default | `supportedProvider` | [SupportedProvider](#supportedprovider) | - | `txDefaults?` | `Partial` | - | `logDecodeDependencies?` | undefined \| object | - | -`deployedBytecode` | string \| undefined | OrderValidatorContract.deployedBytecode | +`deployedBytecode` | string \| undefined | ITransformERC20Contract.deployedBytecode | -**Returns:** *[OrderValidatorContract](#class-ordervalidatorcontract)* +**Returns:** *[ITransformERC20Contract](#class-itransformerc20contract)* ## Properties @@ -5383,7 +5855,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -5393,7 +5865,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -5403,7 +5875,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -5413,7 +5885,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -5423,15 +5895,55 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "ITransformERC20" + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:74](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L74)* ## Methods +### _transformERC20 + +▸ **_transformERC20**(`args`: object): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:500](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L500)* + +Internal version of `transformERC20()`. Only callable from within. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`args` | object | A `TransformERC20Args` struct. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### createTransformWallet + +▸ **createTransformWallet**(): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:562](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L562)* + +Deploy a new flash wallet instance and replace the current one with it. +Useful if we somehow break the current wallet instance. +Only callable by the owner. + +**Returns:** *`ContractTxFunctionObj`* + +___ + ### getABIDecodedReturnData ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:703](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L703)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:481](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L481)* **Type parameters:** @@ -5452,7 +5964,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:696](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L696)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:473](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L473)* **Type parameters:** @@ -5469,62 +5981,11 @@ Name | Type | ___ -### getBalanceAndAllowance - -▸ **getBalanceAndAllowance**(`target`: string, `assetData`: string): *`ContractFunctionObj<[BigNumber, BigNumber]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:835](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L835)* - -**Parameters:** - -Name | Type | ------- | ------ | -`target` | string | -`assetData` | string | - -**Returns:** *`ContractFunctionObj<[BigNumber, BigNumber]>`* - -___ - -### getBalancesAndAllowances - -▸ **getBalancesAndAllowances**(`target`: string, `assetData`: string[]): *`ContractFunctionObj<[BigNumber[], BigNumber[]]>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:1175](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L1175)* - -**Parameters:** - -Name | Type | ------- | ------ | -`target` | string | -`assetData` | string[] | - -**Returns:** *`ContractFunctionObj<[BigNumber[], BigNumber[]]>`* - -___ - -### getERC721TokenOwner - -▸ **getERC721TokenOwner**(`token`: string, `tokenId`: `BigNumber`): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:1120](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L1120)* - -**Parameters:** - -Name | Type | ------- | ------ | -`token` | string | -`tokenId` | `BigNumber` | - -**Returns:** *`ContractFunctionObj`* - -___ - ### getFunctionSignature ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:690](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L690)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:466](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L466)* **Parameters:** @@ -5536,37 +5997,41 @@ Name | Type | ___ -### getOrderAndTraderInfo +### getLogsAsync -▸ **getOrderAndTraderInfo**(`order`: object, `takerAddress`: string): *`ContractFunctionObj<[object, object]>`* +▸ **getLogsAsync**<**ArgsType**>(`eventName`: [ITransformERC20Events](#enumeration-itransformerc20events), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:717](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L717)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:992](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L992)* + +Gets historical logs without creating a subscription + +**Type parameters:** + +▪ **ArgsType**: *[ITransformERC20EventArgs](#itransformerc20eventargs)* **Parameters:** -Name | Type | ------- | ------ | -`order` | object | -`takerAddress` | string | +Name | Type | Description | +------ | ------ | ------ | +`eventName` | [ITransformERC20Events](#enumeration-itransformerc20events) | The ITransformERC20 contract event you would like to subscribe to. | +`blockRange` | `BlockRange` | Block range to get logs from. | +`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | -**Returns:** *`ContractFunctionObj<[object, object]>`* +**Returns:** *`Promise>>`* + +Array of logs that match the parameters ___ -### getOrdersAndTradersInfo +### getQuoteSigner -▸ **getOrdersAndTradersInfo**(`orders`: `Array`, `takerAddresses`: string[]): *`ContractFunctionObj<[Array, Array]>`* +▸ **getQuoteSigner**(): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:893](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L893)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:611](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L611)* -**Parameters:** +Return the optional signer for `transformERC20()` calldata. -Name | Type | ------- | ------ | -`orders` | `Array` | -`takerAddresses` | string[] | - -**Returns:** *`ContractFunctionObj<[Array, Array]>`* +**Returns:** *`ContractTxFunctionObj`* ___ @@ -5574,7 +6039,7 @@ ___ ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:710](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L710)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:489](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L489)* **Parameters:** @@ -5586,37 +6051,2120 @@ Name | Type | ___ -### getTraderInfo +### getTransformWallet -▸ **getTraderInfo**(`order`: object, `takerAddress`: string): *`ContractFunctionObj`* +▸ **getTransformWallet**(): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:1236](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L1236)* +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:661](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L661)* + +Return the current wallet instance that will serve as the execution +context for transformations. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getTransformerDeployer + +▸ **getTransformerDeployer**(): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:710](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L710)* + +Return the allowed deployer for transformers. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### setQuoteSigner + +▸ **setQuoteSigner**(`quoteSigner`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:761](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L761)* + +Replace the optional signer for `transformERC20()` calldata. +Only callable by the owner. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`quoteSigner` | string | The address of the new calldata signer. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### setTransformerDeployer + +▸ **setTransformerDeployer**(`transformerDeployer`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:814](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L814)* + +Replace the allowed deployer for transformers. +Only callable by the owner. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`transformerDeployer` | string | The address of the new trusted deployer for transformers. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### subscribe + +▸ **subscribe**<**ArgsType**>(`eventName`: [ITransformERC20Events](#enumeration-itransformerc20events), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:947](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L947)* + +Subscribe to an event type emitted by the ITransformERC20 contract. + +**Type parameters:** + +▪ **ArgsType**: *[ITransformERC20EventArgs](#itransformerc20eventargs)* + +**Parameters:** + +Name | Type | Default | Description | +------ | ------ | ------ | ------ | +`eventName` | [ITransformERC20Events](#enumeration-itransformerc20events) | - | The ITransformERC20 contract event you would like to subscribe to. | +`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | +`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | +`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | +`blockPollingIntervalMs?` | undefined \| number | - | - | + +**Returns:** *string* + +Subscription token used later to unsubscribe + +___ + +### transformERC20 + +▸ **transformERC20**(`inputToken`: string, `outputToken`: string, `inputTokenAmount`: `BigNumber`, `minOutputTokenAmount`: `BigNumber`, `transformations`: `Array`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:874](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L874)* + +Executes a series of transformations to convert an ERC20 `inputToken` +to an ERC20 `outputToken`. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`inputToken` | string | The token being provided by the sender. If `0xeee...`, ETH is implied and should be provided with the call.` | +`outputToken` | string | The token to be acquired by the sender. `0xeee...` implies ETH. | +`inputTokenAmount` | `BigNumber` | The amount of `inputToken` to take from the sender. | +`minOutputTokenAmount` | `BigNumber` | The minimum amount of `outputToken` the sender must receive for the entire transformation to succeed. | +`transformations` | `Array` | The transformations to execute on the token balance(s) in sequence. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### unsubscribe + +▸ **unsubscribe**(`subscriptionToken`: string): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:973](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L973)* + +Cancel a subscription + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`subscriptionToken` | string | Subscription token returned by `subscribe()` | + +**Returns:** *void* + +___ + +### unsubscribeAll + +▸ **unsubscribeAll**(): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:980](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L980)* + +Cancels all existing subscriptions + +**Returns:** *void* + +___ + +### `Static` ABI + +▸ **ABI**(): *[ContractAbi](#contractabi)* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:180](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L180)* + +**Returns:** *[ContractAbi](#contractabi)* + +The contract ABI + +___ + +### `Static` deployAsync + +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:136](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L136)* **Parameters:** Name | Type | ------ | ------ | -`order` | object | -`takerAddress` | string | +`bytecode` | string | +`abi` | [ContractAbi](#contractabi) | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + +### `Static` deployFrom0xArtifactAsync + +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:77](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L77)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` \| `SimpleContractArtifact` | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:103](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L103)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + +### `Static` strictArgumentEncodingCheck + +▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* + + + +Defined in base-contract/lib/src/index.d.ts:44 + +**Parameters:** + +Name | Type | +------ | ------ | +`inputAbi` | `DataItem`[] | +`args` | any[] | + +**Returns:** *string* + +
+ +# Class: IZeroExContract + + +## Constructors + + + +\+ **new IZeroExContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[IZeroExContract](#class-izeroexcontract)* + +*Overrides void* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2781 + +**Parameters:** + +Name | Type | Default | +------ | ------ | ------ | +`address` | string | - | +`supportedProvider` | [SupportedProvider](#supportedprovider) | - | +`txDefaults?` | `Partial` | - | +`logDecodeDependencies?` | undefined \| object | - | +`deployedBytecode` | string \| undefined | IZeroExContract.deployedBytecode | + +**Returns:** *[IZeroExContract](#class-izeroexcontract)* + +## Properties + +### `Optional` _deployedBytecodeIfExists + +• **_deployedBytecodeIfExists**? : *`Buffer`* + + + +Defined in base-contract/lib/src/index.d.ts:34 + +___ + +### abi + +• **abi**: *[ContractAbi](#contractabi)* + + + +Defined in base-contract/lib/src/index.d.ts:30 + +___ + +### address + +• **address**: *string* + + + +Defined in base-contract/lib/src/index.d.ts:31 + +___ + +Args + +• **constructorArgs**: *any[]* + + + +Defined in base-contract/lib/src/index.d.ts:33 + +___ + +### contractName + +• **contractName**: *string* + + + +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "IZeroEx" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:106 + +## Methods + +### _executeMetaTransaction + +▸ **_executeMetaTransaction**(`sender`: string, `mtx`: object, `signature`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1188 + +Execute a meta-transaction via `sender`. Privileged variant. +Only callable from within. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`sender` | string | Who is executing the meta-transaction.. | +`mtx` | object | The meta-transaction. | +`signature` | string | The signature by `mtx.signer`. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### _spendERC20Tokens + +▸ **_spendERC20Tokens**(`token`: string, `owner`: string, `to`: string, `amount`: `BigNumber`): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1261 + +Transfers ERC20 tokens from `owner` to `to`. +Only callable from within. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`token` | string | The token to spend. | +`owner` | string | The owner of the tokens. | +`to` | string | The recipient of the tokens. | +`amount` | `BigNumber` | The amount of `token` to transfer. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### _transformERC20 + +▸ **_transformERC20**(`args`: object): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1320 + +Internal version of `transformERC20()`. Only callable from within. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`args` | object | A `TransformERC20Args` struct. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### batchExecuteMetaTransactions + +▸ **batchExecuteMetaTransactions**(`mtxs`: `Array`, `signatures`: string[]): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1382 + +Execute multiple meta-transactions. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`mtxs` | `Array` | The meta-transactions. | +`signatures` | string[] | The signature by each respective `mtx.signer`. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### createTransformWallet + +▸ **createTransformWallet**(): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1450 + +Deploy a new flash wallet instance and replace the current one with it. +Useful if we somehow break the current wallet instance. +Only callable by the owner. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### executeMetaTransaction + +▸ **executeMetaTransaction**(`mtx`: object, `signature`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1501 + +Execute a single meta-transaction. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`mtx` | object | The meta-transaction. | +`signature` | string | The signature by `mtx.signer`. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### extend + +▸ **extend**(`selector`: string, `impl`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1569 + +Register or replace a function. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`selector` | string | The function selector. | +`impl` | string | The implementation contract for the function. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getABIDecodedReturnData + +▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1166 + +**Type parameters:** + +▪ **T** + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | +`callData` | string | + +**Returns:** *`T`* + +___ + +### getABIDecodedTransactionData + +▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1158 + +**Type parameters:** + +▪ **T** + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | +`callData` | string | + +**Returns:** *`T`* + +___ + +### getAllowanceTarget + +▸ **getAllowanceTarget**(): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1620 + +Get the address of the allowance target. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getFunctionImplementation + +▸ **getFunctionImplementation**(`selector`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1670 + +Get the implementation contract of a registered function. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`selector` | string | The function selector. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getFunctionSignature + +▸ **getFunctionSignature**(`methodName`: string): *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1151 + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | + +**Returns:** *string* + +___ + +### getLogsAsync + +▸ **getLogsAsync**<**ArgsType**>(`eventName`: [IZeroExEvents](#enumeration-izeroexevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2765 + +Gets historical logs without creating a subscription + +**Type parameters:** + +▪ **ArgsType**: *[IZeroExEventArgs](#izeroexeventargs)* + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`eventName` | [IZeroExEvents](#enumeration-izeroexevents) | The IZeroEx contract event you would like to subscribe to. | +`blockRange` | `BlockRange` | Block range to get logs from. | +`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | + +**Returns:** *`Promise>>`* + +Array of logs that match the parameters + +___ + +### getMetaTransactionExecutedBlock + +▸ **getMetaTransactionExecutedBlock**(`mtx`: object): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1721 + +Get the block at which a meta-transaction has been executed. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`mtx` | object | The meta-transaction. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getMetaTransactionHash + +▸ **getMetaTransactionHash**(`mtx`: object): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1784 + +Get the EIP712 hash of a meta-transaction. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`mtx` | object | The meta-transaction. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getMetaTransactionHashExecutedBlock + +▸ **getMetaTransactionHashExecutedBlock**(`mtxHash`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1847 + +Get the block at which a meta-transaction hash has been executed. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`mtxHash` | string | The meta-transaction hash. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getQuoteSigner + +▸ **getQuoteSigner**(): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1897 + +Return the optional signer for `transformERC20()` calldata. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getRollbackEntryAtIndex + +▸ **getRollbackEntryAtIndex**(`selector`: string, `idx`: `BigNumber`): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1948 + +Retrieve an entry in the rollback history for a function. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`selector` | string | The function selector. | +`idx` | `BigNumber` | The index in the rollback history. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getRollbackLength + +▸ **getRollbackLength**(`selector`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2000 + +Retrieve the length of the rollback history for a function. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`selector` | string | The function selector. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getSelector + +▸ **getSelector**(`methodName`: string): *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:1174 + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | + +**Returns:** *string* + +___ + +### getSpendableERC20BalanceOf + +▸ **getSpendableERC20BalanceOf**(`token`: string, `owner`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2053 + +Gets the maximum amount of an ERC20 token `token` that can be +pulled from `owner`. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`token` | string | The token to spend. | +`owner` | string | The owner of the tokens. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getTransformWallet + +▸ **getTransformWallet**(): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2105 + +Return the current wallet instance that will serve as the execution +context for transformations. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getTransformerDeployer + +▸ **getTransformerDeployer**(): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2154 + +Return the allowed deployer for transformers. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### isValidHashSignature + +▸ **isValidHashSignature**(`hash`: string, `signer`: string, `signature`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2207 + +Check that `hash` was signed by `signer` given `signature`. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`hash` | string | The hash that was signed. | +`signer` | string | The signer of the hash. | +`signature` | string | The signature. The last byte of this signature should be a member of the `SignatureType` enum. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### migrate + +▸ **migrate**(`target`: string, `data`: string, `newOwner`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2266 + +Execute a migration function in the context of the ZeroEx contract. +The result of the function being called should be the magic bytes +0x2c64c5ef (`keccack('MIGRATE_SUCCESS')`). Only callable by the owner. +The owner will be temporarily set to `address(this)` inside the call. +Before returning, the owner will be set to `newOwner`. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`target` | string | The migrator contract address. | +`data` | string | The call data. | +`newOwner` | string | The address of the new owner. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### owner + +▸ **owner**(): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2322 + +The owner of this contract. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### rollback + +▸ **rollback**(`selector`: string, `targetImpl`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2373 + +Roll back to a prior implementation of a function. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`selector` | string | The function selector. | +`targetImpl` | string | The address of an older implementation of the function. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### setQuoteSigner + +▸ **setQuoteSigner**(`quoteSigner`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2426 + +Replace the optional signer for `transformERC20()` calldata. +Only callable by the owner. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`quoteSigner` | string | The address of the new calldata signer. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### setTransformerDeployer + +▸ **setTransformerDeployer**(`transformerDeployer`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2479 + +Replace the allowed deployer for transformers. +Only callable by the owner. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`transformerDeployer` | string | The address of the new trusted deployer for transformers. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### subscribe + +▸ **subscribe**<**ArgsType**>(`eventName`: [IZeroExEvents](#enumeration-izeroexevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2720 + +Subscribe to an event type emitted by the IZeroEx contract. + +**Type parameters:** + +▪ **ArgsType**: *[IZeroExEventArgs](#izeroexeventargs)* + +**Parameters:** + +Name | Type | Default | Description | +------ | ------ | ------ | ------ | +`eventName` | [IZeroExEvents](#enumeration-izeroexevents) | - | The IZeroEx contract event you would like to subscribe to. | +`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | +`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | +`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | +`blockPollingIntervalMs?` | undefined \| number | - | - | + +**Returns:** *string* + +Subscription token used later to unsubscribe + +___ + +### transferOwnership + +▸ **transferOwnership**(`newOwner`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2530 + +Transfers ownership of the contract to a new address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`newOwner` | string | The address that will become the owner. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### transformERC20 + +▸ **transformERC20**(`inputToken`: string, `outputToken`: string, `inputTokenAmount`: `BigNumber`, `minOutputTokenAmount`: `BigNumber`, `transformations`: `Array`): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2590 + +Executes a series of transformations to convert an ERC20 `inputToken` +to an ERC20 `outputToken`. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`inputToken` | string | The token being provided by the sender. If `0xeee...`, ETH is implied and should be provided with the call.` | +`outputToken` | string | The token to be acquired by the sender. `0xeee...` implies ETH. | +`inputTokenAmount` | `BigNumber` | The amount of `inputToken` to take from the sender. | +`minOutputTokenAmount` | `BigNumber` | The minimum amount of `outputToken` the sender must receive for the entire transformation to succeed. | +`transformations` | `Array` | The transformations to execute on the token balance(s) in sequence. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### unsubscribe + +▸ **unsubscribe**(`subscriptionToken`: string): *void* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2746 + +Cancel a subscription + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`subscriptionToken` | string | Subscription token returned by `subscribe()` | + +**Returns:** *void* + +___ + +### unsubscribeAll + +▸ **unsubscribeAll**(): *void* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2753 + +Cancels all existing subscriptions + +**Returns:** *void* + +___ + +### validateHashSignature + +▸ **validateHashSignature**(`hash`: string, `signer`: string, `signature`: string): *`ContractTxFunctionObj`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:2661 + +Validate that `hash` was signed by `signer` given `signature`. +Reverts otherwise. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`hash` | string | The hash that was signed. | +`signer` | string | The signer of the hash. | +`signature` | string | The signature. The last byte of this signature should be a member of the `SignatureType` enum. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### `Static` ABI + +▸ **ABI**(): *[ContractAbi](#contractabi)* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:212 + +**Returns:** *[ContractAbi](#contractabi)* + +The contract ABI + +___ + +### `Static` deployAsync + +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:168 + +**Parameters:** + +Name | Type | +------ | ------ | +`bytecode` | string | +`abi` | [ContractAbi](#contractabi) | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + +### `Static` deployFrom0xArtifactAsync + +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:109 + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` \| `SimpleContractArtifact` | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:135 + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + +### `Static` strictArgumentEncodingCheck + +▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* + + + +Defined in base-contract/lib/src/index.d.ts:44 + +**Parameters:** + +Name | Type | +------ | ------ | +`inputAbi` | `DataItem`[] | +`args` | any[] | + +**Returns:** *string* + +
+ +# Class: StakingContract + + +## Constructors + + + +\+ **new StakingContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[StakingContract](#class-stakingcontract)* + +*Overrides void* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3557](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3557)* + +**Parameters:** + +Name | Type | Default | +------ | ------ | ------ | +`address` | string | - | +`supportedProvider` | [SupportedProvider](#supportedprovider) | - | +`txDefaults?` | `Partial` | - | +`logDecodeDependencies?` | undefined \| object | - | +`deployedBytecode` | string \| undefined | StakingContract.deployedBytecode | + +**Returns:** *[StakingContract](#class-stakingcontract)* + +## Properties + +### `Optional` _deployedBytecodeIfExists + +• **_deployedBytecodeIfExists**? : *`Buffer`* + + + +Defined in base-contract/lib/src/index.d.ts:34 + +___ + +### abi + +• **abi**: *[ContractAbi](#contractabi)* + + + +Defined in base-contract/lib/src/index.d.ts:30 + +___ + +### address + +• **address**: *string* + + + +Defined in base-contract/lib/src/index.d.ts:31 + +___ + +Args + +• **constructorArgs**: *any[]* + + + +Defined in base-contract/lib/src/index.d.ts:33 + +___ + +### contractName + +• **contractName**: *string* + + + +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "Staking" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:177](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L177)* + +## Methods + +### addAuthorizedAddress + +▸ **addAuthorizedAddress**(`target`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1701](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1701)* + +Authorizes an address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`target` | string | Address to authorize. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### addExchangeAddress + +▸ **addExchangeAddress**(`addr`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1752](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1752)* + +Adds a new exchange address + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`addr` | string | Address of exchange contract to add | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### aggregatedStatsByEpoch + +▸ **aggregatedStatsByEpoch**(`index_0`: `BigNumber`): *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1799](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1799)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | `BigNumber` | + +**Returns:** *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>`* + +___ + +### authorities + +▸ **authorities**(`index_0`: `BigNumber`): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1827](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1827)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | `BigNumber` | + +**Returns:** *`ContractFunctionObj`* + +___ + +### authorized + +▸ **authorized**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1848](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1848)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + +### cobbDouglasAlphaDenominator + +▸ **cobbDouglasAlphaDenominator**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1869](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1869)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### cobbDouglasAlphaNumerator + +▸ **cobbDouglasAlphaNumerator**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1889](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1889)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### computeRewardBalanceOfDelegator + +▸ **computeRewardBalanceOfDelegator**(`poolId`: string, `member`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1915](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1915)* + +Computes the reward balance in ETH of a specific member of a pool. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Unique id of pool. | +`member` | string | The member of the pool. | + +**Returns:** *`ContractFunctionObj`* + +totalReward Balance in ETH. + +___ + +### computeRewardBalanceOfOperator + +▸ **computeRewardBalanceOfOperator**(`poolId`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1942](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1942)* + +Computes the reward balance in ETH of the operator of a pool. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Unique id of pool. | + +**Returns:** *`ContractFunctionObj`* + +totalReward Balance in ETH. + +___ + +### createStakingPool + +▸ **createStakingPool**(`operatorShare`: number | `BigNumber`, `addOperatorAsMaker`: boolean): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1970](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1970)* + +Create a new staking pool. The sender will be the operator of this pool. Note that an operator must be payable. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`operatorShare` | number \| `BigNumber` | Portion of rewards owned by the operator, in ppm. | +`addOperatorAsMaker` | boolean | Adds operator to the created pool as a maker for convenience iff true. | + +**Returns:** *`ContractTxFunctionObj`* + +poolId The unique pool id generated for this pool. + +___ + +### currentEpoch + +▸ **currentEpoch**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2021](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2021)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### currentEpochStartTimeInSeconds + +▸ **currentEpochStartTimeInSeconds**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2041](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2041)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### decreaseStakingPoolOperatorShare + +▸ **decreaseStakingPoolOperatorShare**(`poolId`: string, `newOperatorShare`: number | `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2067](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2067)* + +Decreases the operator share for the given pool (i.e. increases pool rewards for members). + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Unique Id of pool. | +`newOperatorShare` | number \| `BigNumber` | The newly decreased percentage of any rewards owned by the operator. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### endEpoch + +▸ **endEpoch**(): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2124](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2124)* + +Begins a new epoch, preparing the prior one for finalization. +Throws if not enough time has passed between epochs or if the +previous epoch was not fully finalized. + +**Returns:** *`ContractTxFunctionObj`* + +numPoolsToFinalize The number of unfinalized pools. + +___ + +### epochDurationInSeconds + +▸ **epochDurationInSeconds**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2170](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2170)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### finalizePool + +▸ **finalizePool**(`poolId`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2198](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2198)* + +Instantly finalizes a single pool that earned rewards in the previous +epoch, crediting it rewards for members and withdrawing operator's +rewards as WETH. This can be called by internal functions that need +to finalize a pool immediately. Does nothing if the pool is already +finalized or did not earn rewards in the previous epoch. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | The pool ID to finalize. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### getABIDecodedReturnData + +▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1682](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1682)* + +**Type parameters:** + +▪ **T** + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | +`callData` | string | + +**Returns:** *`T`* + +___ + +### getABIDecodedTransactionData + +▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1674](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1674)* + +**Type parameters:** + +▪ **T** + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | +`callData` | string | + +**Returns:** *`T`* + +___ + +### getAuthorizedAddresses + +▸ **getAuthorizedAddresses**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2249](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2249)* + +Gets all authorized addresses. + +**Returns:** *`ContractFunctionObj`* + +Array of authorized addresses. + +___ + +### getCurrentEpochEarliestEndTimeInSeconds + +▸ **getCurrentEpochEarliestEndTimeInSeconds**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2275](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2275)* + +Returns the earliest end time in seconds of this epoch. +The next epoch can begin once this time is reached. +Epoch period = [startTimeInSeconds..endTimeInSeconds) + +**Returns:** *`ContractFunctionObj`* + +Time in seconds. + +___ + +### getFunctionSignature + +▸ **getFunctionSignature**(`methodName`: string): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1667](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1667)* + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | + +**Returns:** *string* + +___ + +### getGlobalStakeByStatus + +▸ **getGlobalStakeByStatus**(`stakeStatus`: number | `BigNumber`): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2300](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2300)* + +Gets global stake for a given status. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`stakeStatus` | number \| `BigNumber` | UNDELEGATED or DELEGATED | + +**Returns:** *`ContractFunctionObj`* + +Global stake for given status. + +___ + +### getLogsAsync + +▸ **getLogsAsync**<**ArgsType**>(`eventName`: [StakingEvents](#enumeration-stakingevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3541](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3541)* + +Gets historical logs without creating a subscription + +**Type parameters:** + +▪ **ArgsType**: *[StakingEventArgs](#stakingeventargs)* + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`eventName` | [StakingEvents](#enumeration-stakingevents) | The Staking contract event you would like to subscribe to. | +`blockRange` | `BlockRange` | Block range to get logs from. | +`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | + +**Returns:** *`Promise>>`* + +Array of logs that match the parameters + +___ + +### getOwnerStakeByStatus + +▸ **getOwnerStakeByStatus**(`staker`: string, `stakeStatus`: number | `BigNumber`): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2336](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2336)* + +Gets an owner's stake balances by status. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`staker` | string | Owner of stake. | +`stakeStatus` | number \| `BigNumber` | UNDELEGATED or DELEGATED | + +**Returns:** *`ContractFunctionObj`* + +Owner's stake balances for given status. + +___ + +### getParams + +▸ **getParams**(): *`ContractFunctionObj<[BigNumber, number, BigNumber, number, number]>`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2372](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2372)* + +Retrieves all configurable parameter values. + +**Returns:** *`ContractFunctionObj<[BigNumber, number, BigNumber, number, number]>`* + +_epochDurationInSeconds Minimum seconds between epochs._rewardDelegatedStakeWeight How much delegated stake is weighted vs operator stake, in ppm._minimumPoolStake Minimum amount of stake required in a pool to collect rewards._cobbDouglasAlphaNumerator Numerator for cobb douglas alpha factor._cobbDouglasAlphaDenominator Denominator for cobb douglas alpha factor. + +___ + +### getSelector + +▸ **getSelector**(`methodName`: string): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:1690](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L1690)* + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | + +**Returns:** *string* + +___ + +### getStakeDelegatedToPoolByOwner + +▸ **getStakeDelegatedToPoolByOwner**(`staker`: string, `poolId`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2403](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2403)* + +Returns the stake delegated to a specific staking pool, by a given staker. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`staker` | string | of stake. | +`poolId` | string | Unique Id of pool. | + +**Returns:** *`ContractFunctionObj`* + +Stake delegated to pool by staker. + +___ + +### getStakingPool + +▸ **getStakingPool**(`poolId`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2439](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2439)* + +Returns a staking pool + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Unique id of pool. | **Returns:** *`ContractFunctionObj`* ___ -### getTradersInfo +### getStakingPoolStatsThisEpoch -▸ **getTradersInfo**(`orders`: `Array`, `takerAddresses`: string[]): *`ContractFunctionObj>`* +▸ **getStakingPoolStatsThisEpoch**(`poolId`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:1011](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L1011)* +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2468](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2468)* + +Get stats on a staking pool in this epoch. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Pool Id to query. | + +**Returns:** *`ContractFunctionObj`* + +PoolStats struct for pool id. + +___ + +### getTotalStake + +▸ **getTotalStake**(`staker`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2503](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2503)* + +Returns the total stake for a given staker. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`staker` | string | of stake. | + +**Returns:** *`ContractFunctionObj`* + +Total ZRX staked by `staker`. + +___ + +### getTotalStakeDelegatedToPool + +▸ **getTotalStakeDelegatedToPool**(`poolId`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2530](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2530)* + +Returns the total stake delegated to a specific staking pool, +across all members. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Unique Id of pool. | + +**Returns:** *`ContractFunctionObj`* + +Total stake delegated to pool. + +___ + +### getWethContract + +▸ **getWethContract**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2565](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2565)* + +An overridable way to access the deployed WETH contract. +Must be view to allow overrides to access state. + +**Returns:** *`ContractFunctionObj`* + +wethContract The WETH contract instance. + +___ + +### getZrxVault + +▸ **getZrxVault**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2590](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2590)* + +An overridable way to access the deployed zrxVault. +Must be view to allow overrides to access state. + +**Returns:** *`ContractFunctionObj`* + +zrxVault The zrxVault contract. + +___ + +### init + +▸ **init**(): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2615](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2615)* + +Initialize storage owned by this contract. +This function should not be called directly. +The StakingProxy contract will call it in `attachStakingContract()`. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### joinStakingPoolAsMaker + +▸ **joinStakingPoolAsMaker**(`poolId`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2665](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2665)* + +Allows caller to join a staking pool as a maker. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Unique id of pool. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### lastPoolId + +▸ **lastPoolId**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2712](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2712)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### minimumPoolStake + +▸ **minimumPoolStake**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2732](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2732)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### moveStake + +▸ **moveStake**(`from`: object, `to`: object, `amount`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2760](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2760)* + +Moves stake between statuses: 'undelegated' or 'delegated'. +Delegated stake can also be moved between pools. +This change comes into effect next epoch. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`from` | object | Status to move stake out of. | +`to` | object | Status to move stake into. | +`amount` | `BigNumber` | Amount of stake to move. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### owner + +▸ **owner**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2812](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2812)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### payProtocolFee + +▸ **payProtocolFee**(`makerAddress`: string, `payerAddress`: string, `protocolFee`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2841](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2841)* + +Pays a protocol fee in ETH or WETH. +Only a known 0x exchange can call this method. See +(MixinExchangeManager). + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`makerAddress` | string | The address of the order's maker. | +`payerAddress` | string | The address of the protocol fee payer. | +`protocolFee` | `BigNumber` | The protocol fee amount. This is either passed as ETH or transferred as WETH. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### poolIdByMaker + +▸ **poolIdByMaker**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2898](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2898)* **Parameters:** Name | Type | ------ | ------ | -`orders` | `Array` | -`takerAddresses` | string[] | +`index_0` | string | -**Returns:** *`ContractFunctionObj>`* +**Returns:** *`ContractFunctionObj`* + +___ + +### poolStatsByEpoch + +▸ **poolStatsByEpoch**(`index_0`: string, `index_1`: `BigNumber`): *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber]>`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2919](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2919)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | +`index_1` | `BigNumber` | + +**Returns:** *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber]>`* + +___ + +### removeAuthorizedAddress + +▸ **removeAuthorizedAddress**(`target`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:2951](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L2951)* + +Removes authorizion of an address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`target` | string | Address to remove authorization from. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### removeAuthorizedAddressAtIndex + +▸ **removeAuthorizedAddressAtIndex**(`target`: string, `index`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3003](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3003)* + +Removes authorizion of an address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`target` | string | Address to remove authorization from. | +`index` | `BigNumber` | Index of target in authorities array. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### removeExchangeAddress + +▸ **removeExchangeAddress**(`addr`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3055](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3055)* + +Removes an existing exchange address + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`addr` | string | Address of exchange contract to remove | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### rewardDelegatedStakeWeight + +▸ **rewardDelegatedStakeWeight**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3102](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3102)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### rewardsByPoolId + +▸ **rewardsByPoolId**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3122](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3122)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + +### setParams + +▸ **setParams**(`_epochDurationInSeconds`: `BigNumber`, `_rewardDelegatedStakeWeight`: number | `BigNumber`, `_minimumPoolStake`: `BigNumber`, `_cobbDouglasAlphaNumerator`: number | `BigNumber`, `_cobbDouglasAlphaDenominator`: number | `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3154](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3154)* + +Set all configurable parameters at once. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`_epochDurationInSeconds` | `BigNumber` | Minimum seconds between epochs. | +`_rewardDelegatedStakeWeight` | number \| `BigNumber` | How much delegated stake is weighted vs operator stake, in ppm. | +`_minimumPoolStake` | `BigNumber` | Minimum amount of stake required in a pool to collect rewards. | +`_cobbDouglasAlphaNumerator` | number \| `BigNumber` | Numerator for cobb douglas alpha factor. | +`_cobbDouglasAlphaDenominator` | number \| `BigNumber` | Denominator for cobb douglas alpha factor. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### stake + +▸ **stake**(`amount`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3222](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3222)* + +Stake ZRX tokens. Tokens are deposited into the ZRX Vault. +Unstake to retrieve the ZRX. Stake is in the 'Active' status. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`amount` | `BigNumber` | Amount of ZRX to stake. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### stakingContract + +▸ **stakingContract**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3269](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3269)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### subscribe + +▸ **subscribe**<**ArgsType**>(`eventName`: [StakingEvents](#enumeration-stakingevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3496](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3496)* + +Subscribe to an event type emitted by the Staking contract. + +**Type parameters:** + +▪ **ArgsType**: *[StakingEventArgs](#stakingeventargs)* + +**Parameters:** + +Name | Type | Default | Description | +------ | ------ | ------ | ------ | +`eventName` | [StakingEvents](#enumeration-stakingevents) | - | The Staking contract event you would like to subscribe to. | +`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | +`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | +`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | +`blockPollingIntervalMs?` | undefined \| number | - | - | + +**Returns:** *string* + +Subscription token used later to unsubscribe + +___ + +### transferOwnership + +▸ **transferOwnership**(`newOwner`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3293](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3293)* + +Change the owner of this contract. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`newOwner` | string | New owner address. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### unstake + +▸ **unstake**(`amount`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3346](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3346)* + +Unstake. Tokens are withdrawn from the ZRX Vault and returned to +the staker. Stake must be in the 'undelegated' status in both the +current and next epoch in order to be unstaked. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`amount` | `BigNumber` | Amount of ZRX to unstake. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### unsubscribe + +▸ **unsubscribe**(`subscriptionToken`: string): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3522](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3522)* + +Cancel a subscription + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`subscriptionToken` | string | Subscription token returned by `subscribe()` | + +**Returns:** *void* + +___ + +### unsubscribeAll + +▸ **unsubscribeAll**(): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3529](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3529)* + +Cancels all existing subscriptions + +**Returns:** *void* + +___ + +### validExchanges + +▸ **validExchanges**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3393](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3393)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + +### wethReservedForPoolRewards + +▸ **wethReservedForPoolRewards**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3414](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3414)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### withdrawDelegatorRewards + +▸ **withdrawDelegatorRewards**(`poolId`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:3439](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L3439)* + +Withdraws the caller's WETH rewards that have accumulated +until the last epoch. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`poolId` | string | Unique id of pool. | + +**Returns:** *`ContractTxFunctionObj`* ___ @@ -5624,7 +8172,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:127](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L127)* +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:283](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L283)* **Returns:** *[ContractAbi](#contractabi)* @@ -5634,9 +8182,9 @@ ___ ### `Static` deployAsync -▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string, `_zrxAssetData`: string): *`Promise`* +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:79](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L79)* +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:239](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L239)* **Parameters:** @@ -5647,18 +8195,16 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -`_exchange` | string | -`_zrxAssetData` | string | -**Returns:** *`Promise`* +**Returns:** *`Promise`* ___ ### `Static` deployFrom0xArtifactAsync -▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_exchange`: string, `_zrxAssetData`: string): *`Promise`* +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/order_validator.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts#L44)* +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:180](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L180)* **Parameters:** @@ -5668,10 +8214,28 @@ Name | Type | `supportedProvider` | [SupportedProvider](#supportedprovider) | `txDefaults` | `Partial` | `logDecodeDependencies` | object | -`_exchange` | string | -`_zrxAssetData` | string | -**Returns:** *`Promise`* +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:206](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L206)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* ___ @@ -5681,7 +8245,713 @@ ___ -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 + +**Parameters:** + +Name | Type | +------ | ------ | +`inputAbi` | `DataItem`[] | +`args` | any[] | + +**Returns:** *string* + +
+ +# Class: StakingProxyContract + + +## Constructors + + + +\+ **new StakingProxyContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[StakingProxyContract](#class-stakingproxycontract)* + +*Overrides void* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1681](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1681)* + +**Parameters:** + +Name | Type | Default | +------ | ------ | ------ | +`address` | string | - | +`supportedProvider` | [SupportedProvider](#supportedprovider) | - | +`txDefaults?` | `Partial` | - | +`logDecodeDependencies?` | undefined \| object | - | +`deployedBytecode` | string \| undefined | StakingProxyContract.deployedBytecode | + +**Returns:** *[StakingProxyContract](#class-stakingproxycontract)* + +## Properties + +### `Optional` _deployedBytecodeIfExists + +• **_deployedBytecodeIfExists**? : *`Buffer`* + + + +Defined in base-contract/lib/src/index.d.ts:34 + +___ + +### abi + +• **abi**: *[ContractAbi](#contractabi)* + + + +Defined in base-contract/lib/src/index.d.ts:30 + +___ + +### address + +• **address**: *string* + + + +Defined in base-contract/lib/src/index.d.ts:31 + +___ + +Args + +• **constructorArgs**: *any[]* + + + +Defined in base-contract/lib/src/index.d.ts:33 + +___ + +### contractName + +• **contractName**: *string* + + + +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "StakingProxy" + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:83](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L83)* + +## Methods + +### addAuthorizedAddress + +▸ **addAuthorizedAddress**(`target`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:828](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L828)* + +Authorizes an address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`target` | string | Address to authorize. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### aggregatedStatsByEpoch + +▸ **aggregatedStatsByEpoch**(`index_0`: `BigNumber`): *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:875](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L875)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | `BigNumber` | + +**Returns:** *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>`* + +___ + +### assertValidStorageParams + +▸ **assertValidStorageParams**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:906](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L906)* + +Asserts that an epoch is between 5 and 30 days long. + +**Returns:** *`ContractFunctionObj`* + +___ + +### attachStakingContract + +▸ **attachStakingContract**(`_stakingContract`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:930](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L930)* + +Attach a staking contract; future calls will be delegated to the staking contract. Note that this is callable only by an authorized address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`_stakingContract` | string | Address of staking contract. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### authorities + +▸ **authorities**(`index_0`: `BigNumber`): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:977](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L977)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | `BigNumber` | + +**Returns:** *`ContractFunctionObj`* + +___ + +### authorized + +▸ **authorized**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:998](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L998)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + +### batchExecute + +▸ **batchExecute**(`data`: string[]): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1024](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1024)* + +Batch executes a series of calls to the staking contract. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`data` | string[] | An array of data that encodes a sequence of functions to call in the staking contracts. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### cobbDouglasAlphaDenominator + +▸ **cobbDouglasAlphaDenominator**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1071](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1071)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### cobbDouglasAlphaNumerator + +▸ **cobbDouglasAlphaNumerator**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1091](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1091)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### currentEpoch + +▸ **currentEpoch**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1111](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1111)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### currentEpochStartTimeInSeconds + +▸ **currentEpochStartTimeInSeconds**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1131](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1131)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### detachStakingContract + +▸ **detachStakingContract**(): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1154](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1154)* + +Detach the current staking contract. Note that this is callable only by an authorized address. + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### epochDurationInSeconds + +▸ **epochDurationInSeconds**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1200](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1200)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### getABIDecodedReturnData + +▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:809](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L809)* + +**Type parameters:** + +▪ **T** + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | +`callData` | string | + +**Returns:** *`T`* + +___ + +### getABIDecodedTransactionData + +▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:801](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L801)* + +**Type parameters:** + +▪ **T** + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | +`callData` | string | + +**Returns:** *`T`* + +___ + +### getAuthorizedAddresses + +▸ **getAuthorizedAddresses**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1224](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1224)* + +Gets all authorized addresses. + +**Returns:** *`ContractFunctionObj`* + +Array of authorized addresses. + +___ + +### getFunctionSignature + +▸ **getFunctionSignature**(`methodName`: string): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:794](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L794)* + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | + +**Returns:** *string* + +___ + +### getLogsAsync + +▸ **getLogsAsync**<**ArgsType**>(`eventName`: [StakingProxyEvents](#enumeration-stakingproxyevents), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1665](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1665)* + +Gets historical logs without creating a subscription + +**Type parameters:** + +▪ **ArgsType**: *[StakingProxyEventArgs](#stakingproxyeventargs)* + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`eventName` | [StakingProxyEvents](#enumeration-stakingproxyevents) | The StakingProxy contract event you would like to subscribe to. | +`blockRange` | `BlockRange` | Block range to get logs from. | +`indexFilterValues` | `IndexedFilterValues` | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{_from: aUserAddressHex}` | + +**Returns:** *`Promise>>`* + +Array of logs that match the parameters + +___ + +### getSelector + +▸ **getSelector**(`methodName`: string): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:817](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L817)* + +**Parameters:** + +Name | Type | +------ | ------ | +`methodName` | string | + +**Returns:** *string* + +___ + +### lastPoolId + +▸ **lastPoolId**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1244](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1244)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### minimumPoolStake + +▸ **minimumPoolStake**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1264](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1264)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### owner + +▸ **owner**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1284](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1284)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### poolIdByMaker + +▸ **poolIdByMaker**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1304](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1304)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + +### poolStatsByEpoch + +▸ **poolStatsByEpoch**(`index_0`: string, `index_1`: `BigNumber`): *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber]>`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1325](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1325)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | +`index_1` | `BigNumber` | + +**Returns:** *`ContractFunctionObj<[BigNumber, BigNumber, BigNumber]>`* + +___ + +### removeAuthorizedAddress + +▸ **removeAuthorizedAddress**(`target`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1357](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1357)* + +Removes authorizion of an address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`target` | string | Address to remove authorization from. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### removeAuthorizedAddressAtIndex + +▸ **removeAuthorizedAddressAtIndex**(`target`: string, `index`: `BigNumber`): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1409](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1409)* + +Removes authorizion of an address. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`target` | string | Address to remove authorization from. | +`index` | `BigNumber` | Index of target in authorities array. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### rewardDelegatedStakeWeight + +▸ **rewardDelegatedStakeWeight**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1457](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1457)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### rewardsByPoolId + +▸ **rewardsByPoolId**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1477](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1477)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + +### stakingContract + +▸ **stakingContract**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1498](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1498)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### subscribe + +▸ **subscribe**<**ArgsType**>(`eventName`: [StakingProxyEvents](#enumeration-stakingproxyevents), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1620](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1620)* + +Subscribe to an event type emitted by the StakingProxy contract. + +**Type parameters:** + +▪ **ArgsType**: *[StakingProxyEventArgs](#stakingproxyeventargs)* + +**Parameters:** + +Name | Type | Default | Description | +------ | ------ | ------ | ------ | +`eventName` | [StakingProxyEvents](#enumeration-stakingproxyevents) | - | The StakingProxy contract event you would like to subscribe to. | +`indexFilterValues` | `IndexedFilterValues` | - | An object where the keys are indexed args returned by the event and the value is the value you are interested in. E.g `{maker: aUserAddressHex}` | +`callback` | [EventCallback](#eventcallback)‹*`ArgsType`*› | - | Callback that gets called when a log is added/removed | +`isVerbose` | boolean | false | Enable verbose subscription warnings (e.g recoverable network issues encountered) | +`blockPollingIntervalMs?` | undefined \| number | - | - | + +**Returns:** *string* + +Subscription token used later to unsubscribe + +___ + +### transferOwnership + +▸ **transferOwnership**(`newOwner`: string): *`ContractTxFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1522](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1522)* + +Change the owner of this contract. + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`newOwner` | string | New owner address. | + +**Returns:** *`ContractTxFunctionObj`* + +___ + +### unsubscribe + +▸ **unsubscribe**(`subscriptionToken`: string): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1646](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1646)* + +Cancel a subscription + +**Parameters:** + +Name | Type | Description | +------ | ------ | ------ | +`subscriptionToken` | string | Subscription token returned by `subscribe()` | + +**Returns:** *void* + +___ + +### unsubscribeAll + +▸ **unsubscribeAll**(): *void* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1653](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1653)* + +Cancels all existing subscriptions + +**Returns:** *void* + +___ + +### validExchanges + +▸ **validExchanges**(`index_0`: string): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1569](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1569)* + +**Parameters:** + +Name | Type | +------ | ------ | +`index_0` | string | + +**Returns:** *`ContractFunctionObj`* + +___ + +### wethReservedForPoolRewards + +▸ **wethReservedForPoolRewards**(): *`ContractFunctionObj`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:1590](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L1590)* + +**Returns:** *`ContractFunctionObj`* + +___ + +### `Static` ABI + +▸ **ABI**(): *[ContractAbi](#contractabi)* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:210](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L210)* + +**Returns:** *[ContractAbi](#contractabi)* + +The contract ABI + +___ + +### `Static` deployAsync + +▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_stakingContract`: string): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:161](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L161)* + +**Parameters:** + +Name | Type | +------ | ------ | +`bytecode` | string | +`abi` | [ContractAbi](#contractabi) | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | +`_stakingContract` | string | + +**Returns:** *`Promise`* + +___ + +### `Static` deployFrom0xArtifactAsync + +▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_stakingContract`: string): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:86](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L86)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` \| `SimpleContractArtifact` | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | +`_stakingContract` | string | + +**Returns:** *`Promise`* + +___ + +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `_stakingContract`: string): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:120](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L120)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | +`_stakingContract` | string | + +**Returns:** *`Promise`* + +___ + +### `Static` strictArgumentEncodingCheck + +▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* + + + +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -5705,7 +8975,7 @@ Name | Type | *Overrides void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1381](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1381)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:984](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L984)* **Parameters:** @@ -5727,7 +8997,7 @@ Name | Type | Default | -Defined in base-contract/lib/src/index.d.ts:32 +Defined in base-contract/lib/src/index.d.ts:34 ___ @@ -5737,7 +9007,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:28 +Defined in base-contract/lib/src/index.d.ts:30 ___ @@ -5747,7 +9017,7 @@ ___ -Defined in base-contract/lib/src/index.d.ts:29 +Defined in base-contract/lib/src/index.d.ts:31 ___ @@ -5757,7 +9027,7 @@ Args -Defined in base-contract/lib/src/index.d.ts:31 +Defined in base-contract/lib/src/index.d.ts:33 ___ @@ -5767,7 +9037,15 @@ ___ -Defined in base-contract/lib/src/index.d.ts:30 +Defined in base-contract/lib/src/index.d.ts:32 + +___ + +### `Static` contractName + +▪ **contractName**: *string* = "WETH9" + +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:82](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L82)* ## Methods @@ -5775,7 +9053,7 @@ Defined in base-contract/lib/src/index.d.ts:30 ▸ **allowance**(`index_0`: string, `index_1`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1258](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1258)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:552](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L552)* **Parameters:** @@ -5792,7 +9070,7 @@ ___ ▸ **approve**(`guy`: string, `wad`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:512](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L512)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:574](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L574)* **Parameters:** @@ -5809,7 +9087,7 @@ ___ ▸ **balanceOf**(`index_0`: string): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:946](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L946)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:622](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L622)* **Parameters:** @@ -5825,7 +9103,7 @@ ___ ▸ **decimals**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:899](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L899)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:643](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L643)* **Returns:** *`ContractFunctionObj`* @@ -5835,7 +9113,7 @@ ___ ▸ **deposit**(): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1153](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1153)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:663](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L663)* **Returns:** *`ContractTxFunctionObj`* @@ -5845,7 +9123,7 @@ ___ ▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:451](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L451)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:537](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L537)* **Type parameters:** @@ -5866,7 +9144,7 @@ ___ ▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:444](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L444)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:529](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L529)* **Type parameters:** @@ -5887,7 +9165,7 @@ ___ ▸ **getFunctionSignature**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:438](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L438)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:522](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L522)* **Parameters:** @@ -5903,7 +9181,7 @@ ___ ▸ **getLogsAsync**<**ArgsType**>(`eventName`: [WETH9Events](#enumeration-weth9events), `blockRange`: `BlockRange`, `indexFilterValues`: `IndexedFilterValues`): *`Promise>>`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1365](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1365)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:968](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L968)* Gets historical logs without creating a subscription @@ -5929,7 +9207,7 @@ ___ ▸ **getSelector**(`methodName`: string): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:458](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L458)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:545](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L545)* **Parameters:** @@ -5945,7 +9223,7 @@ ___ ▸ **name**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:465](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L465)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:709](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L709)* **Returns:** *`ContractFunctionObj`* @@ -5955,7 +9233,7 @@ ___ ▸ **subscribe**<**ArgsType**>(`eventName`: [WETH9Events](#enumeration-weth9events), `indexFilterValues`: `IndexedFilterValues`, `callback`: [EventCallback](#eventcallback)‹*`ArgsType`*›, `isVerbose`: boolean, `blockPollingIntervalMs?`: undefined | number): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1323](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1323)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:923](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L923)* Subscribe to an event type emitted by the WETH9 contract. @@ -5983,7 +9261,7 @@ ___ ▸ **symbol**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:996](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L996)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:729](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L729)* **Returns:** *`ContractFunctionObj`* @@ -5993,7 +9271,7 @@ ___ ▸ **totalSupply**(): *`ContractFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:622](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L622)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:749](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L749)* **Returns:** *`ContractFunctionObj`* @@ -6003,7 +9281,7 @@ ___ ▸ **transfer**(`dst`: string, `wad`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1043](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1043)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:769](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L769)* **Parameters:** @@ -6020,7 +9298,7 @@ ___ ▸ **transferFrom**(`src`: string, `dst`: string, `wad`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:669](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L669)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:817](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L817)* **Parameters:** @@ -6038,7 +9316,7 @@ ___ ▸ **unsubscribe**(`subscriptionToken`: string): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1348](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1348)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:949](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L949)* Cancel a subscription @@ -6056,7 +9334,7 @@ ___ ▸ **unsubscribeAll**(): *void* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:1354](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L1354)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:956](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L956)* Cancels all existing subscriptions @@ -6068,7 +9346,7 @@ ___ ▸ **withdraw**(`wad`: `BigNumber`): *`ContractTxFunctionObj`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:793](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L793)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:866](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L866)* **Parameters:** @@ -6084,7 +9362,7 @@ ___ ▸ **ABI**(): *[ContractAbi](#contractabi)* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:149](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L149)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:188](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L188)* **Returns:** *[ContractAbi](#contractabi)* @@ -6096,7 +9374,7 @@ ___ ▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:107](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L107)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:144](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L144)* **Parameters:** @@ -6116,7 +9394,7 @@ ___ ▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:82](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L82)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:85](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L85)* **Parameters:** @@ -6131,13 +9409,33 @@ Name | Type | ___ +### `Static` deployWithLibrariesFrom0xArtifactAsync + +▸ **deployWithLibrariesFrom0xArtifactAsync**(`artifact`: `ContractArtifact`, `libraryArtifacts`: object, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object): *`Promise`* + +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:111](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L111)* + +**Parameters:** + +Name | Type | +------ | ------ | +`artifact` | `ContractArtifact` | +`libraryArtifacts` | object | +`supportedProvider` | [SupportedProvider](#supportedprovider) | +`txDefaults` | `Partial` | +`logDecodeDependencies` | object | + +**Returns:** *`Promise`* + +___ + ### `Static` strictArgumentEncodingCheck ▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* -Defined in base-contract/lib/src/index.d.ts:42 +Defined in base-contract/lib/src/index.d.ts:44 **Parameters:** @@ -6150,145 +9448,6 @@ Name | Type |
-# Class: ContractWrappers - -The ContractWrappers class contains smart contract wrappers helpful when building on 0x protocol. - - -## Constructors - - - -\+ **new ContractWrappers**(`supportedProvider`: [SupportedProvider](#supportedprovider), `config`: [ContractWrappersConfig](#interface-contractwrappersconfig)): *[ContractWrappers](#class-contractwrappers)* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:66](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L66)* - -Instantiates a new ContractWrappers instance. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`supportedProvider` | [SupportedProvider](#supportedprovider) | The Provider instance you would like the contract-wrappers library to use for interacting with the Ethereum network. | -`config` | [ContractWrappersConfig](#interface-contractwrappersconfig) | The configuration object. Look up the type for the description. | - -**Returns:** *[ContractWrappers](#class-contractwrappers)* - -An instance of the ContractWrappers class. - -## Properties - -### contractAddresses - -• **contractAddresses**: *`ContractAddresses`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:38](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L38)* - -An index of the default contract addresses for this chain. - -___ - -### coordinator - -• **coordinator**: *`CoordinatorContract`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:64](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L64)* - -An instance of the CoordinatorContract class containing methods for interacting with the Coordinator extension contract. - -___ - -### devUtils - -• **devUtils**: *`DevUtilsContract`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:60](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L60)* - -An instance of the DevUtilsContract class containing methods for interacting with the DevUtils smart contract. - -___ - -### exchange - -• **exchange**: *`ExchangeContract`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:42](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L42)* - -An instance of the ExchangeContract class containing methods for interacting with the 0x Exchange smart contract. - -___ - -### forwarder - -• **forwarder**: *`ForwarderContract`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:51](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L51)* - -An instance of the ForwarderContract class containing methods for interacting with any Forwarder smart contract. - -___ - -### orderValidator - -• **orderValidator**: *`OrderValidatorContract`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:56](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L56)* - -An instance of the OrderValidatorContract class containing methods for interacting with any OrderValidator smart contract. - -___ - -### weth9 - -• **weth9**: *`WETH9Contract`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:47](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L47)* - -An instance of the WETH9Contract class containing methods for interacting with the -WETH9 smart contract. - -## Methods - -### getAbiDecoder - -▸ **getAbiDecoder**(): *`AbiDecoder`* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:124](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L124)* - -Get the abi decoder instance currently used by contract-wrappers - -**Returns:** *`AbiDecoder`* - -AbiDecoder instance - -___ - -### getProvider - -▸ **getProvider**(): *[SupportedProvider](#supportedprovider)* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:117](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L117)* - -Get the provider instance currently used by contract-wrappers - -**Returns:** *[SupportedProvider](#supportedprovider)* - -Web3 provider instance - -___ - -### unsubscribeAll - -▸ **unsubscribeAll**(): *void* - -*Defined in [contract-wrappers/src/contract_wrappers.ts:109](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/contract_wrappers.ts#L109)* - -Unsubscribes from all subscriptions for all contracts. - -**Returns:** *void* - -
- # Class: AbiDecoder AbiDecoder allows you to decode event logs given a set of supplied contract ABI's. It takes the contract's event @@ -6301,7 +9460,7 @@ signature from the ABI and attempts to decode the logs using it. \+ **new AbiDecoder**(`abiArrays`: [AbiDefinition](#abidefinition)[][]): *[AbiDecoder](#class-abidecoder)* -*Defined in [utils/src/abi_decoder.ts:42](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/utils/src/abi_decoder.ts#L42)* +*Defined in [utils/src/abi_decoder.ts:39](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/utils/src/abi_decoder.ts#L39)* Instantiate an AbiDecoder @@ -6321,7 +9480,7 @@ AbiDecoder instance â–¸ **addABI**(`abiArray`: [AbiDefinition](#abidefinition)[], `contractName?`: undefined | string): *void* -*Defined in [utils/src/abi_decoder.ts:158](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/utils/src/abi_decoder.ts#L158)* +*Defined in [utils/src/abi_decoder.ts:150](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/utils/src/abi_decoder.ts#L150)* Adds a set of ABI definitions, after which calldata and logs targeting these ABI's can be decoded. Additional properties can be included to disambiguate similar ABI's. For example, if two functions @@ -6343,7 +9502,7 @@ ___ â–¸ **decodeCalldataOrThrow**(`calldata`: string, `contractName?`: undefined | string): *`DecodedCalldata`* -*Defined in [utils/src/abi_decoder.ts:118](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/utils/src/abi_decoder.ts#L118)* +*Defined in [utils/src/abi_decoder.ts:110](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/utils/src/abi_decoder.ts#L110)* Decodes calldata for a known ABI. @@ -6364,7 +9523,7 @@ ___ â–¸ **tryToDecodeLogOrNoop**<**ArgsType**>(`log`: `LogEntry`): *`LogWithDecodedArgs` | [RawLog](#rawlog)* -*Defined in [utils/src/abi_decoder.ts:58](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/utils/src/abi_decoder.ts#L58)* +*Defined in [utils/src/abi_decoder.ts:55](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/utils/src/abi_decoder.ts#L55)* Attempt to decode a log given the ABI's the AbiDecoder knows about. @@ -6384,69 +9543,29 @@ The decoded log if the requisite ABI was available. Otherwise the log unaltered.
-# Enumeration: CoordinatorRegistryEvents +# Enumeration: SubscriptionErrors ## Enumeration members -### CoordinatorEndpointSet +### SubscriptionAlreadyPresent -• **CoordinatorEndpointSet**: = "CoordinatorEndpointSet" +• **SubscriptionAlreadyPresent**: = "SUBSCRIPTION_ALREADY_PRESENT" -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:40](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L40)* - -
- -# Enumeration: DummyERC20TokenEvents - - -## Enumeration members - -### Approval - -• **Approval**: = "Approval" - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:40](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L40)* +*Defined in [base-contract/src/types.ts:21](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L21)* ___ -### Transfer +### SubscriptionNotFound -• **Transfer**: = "Transfer" +• **SubscriptionNotFound**: = "SUBSCRIPTION_NOT_FOUND" -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:41](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L41)* +*Defined in [base-contract/src/types.ts:20](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L20)*
-# Enumeration: DummyERC721TokenEvents -## Enumeration members - -### Approval - -• **Approval**: = "Approval" - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:43](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L43)* - -___ - -### ApprovalForAll - -• **ApprovalForAll**: = "ApprovalForAll" - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L44)* - -___ - -### Transfer - -• **Transfer**: = "Transfer" - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L45)* - -
- # Enumeration: ERC20TokenEvents @@ -6456,7 +9575,7 @@ ___ • **Approval**: = "Approval" -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:41](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L41)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:41](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L41)* ___ @@ -6464,7 +9583,7 @@ ___ • **Transfer**: = "Transfer" -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:40](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L40)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:42](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L42)*
@@ -6477,7 +9596,7 @@ ___ • **Approval**: = "Approval" -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:43](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L43)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:44](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L44)* ___ @@ -6485,7 +9604,7 @@ ___ • **ApprovalForAll**: = "ApprovalForAll" -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L44)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L45)* ___ @@ -6493,7 +9612,7 @@ ___ • **Transfer**: = "Transfer" -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L45)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L46)*
@@ -6506,7 +9625,7 @@ ___ • **AssetProxyRegistered**: = "AssetProxyRegistered" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:48](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L48)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:50](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L50)* ___ @@ -6514,7 +9633,7 @@ ___ • **Cancel**: = "Cancel" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:49](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L49)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:51](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L51)* ___ @@ -6522,7 +9641,7 @@ ___ • **CancelUpTo**: = "CancelUpTo" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:50](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L50)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:52](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L52)* ___ @@ -6530,7 +9649,15 @@ ___ • **Fill**: = "Fill" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:51](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L51)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:53](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L53)* + +___ + +### OwnershipTransferred + +• **OwnershipTransferred**: = "OwnershipTransferred" + +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:54](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L54)* ___ @@ -6538,7 +9665,7 @@ ___ • **ProtocolFeeCollectorAddress**: = "ProtocolFeeCollectorAddress" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:52](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L52)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:55](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L55)* ___ @@ -6546,7 +9673,7 @@ ___ • **ProtocolFeeMultiplier**: = "ProtocolFeeMultiplier" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:53](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L53)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:56](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L56)* ___ @@ -6554,7 +9681,7 @@ ___ • **SignatureValidatorApproval**: = "SignatureValidatorApproval" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:54](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L54)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:57](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L57)* ___ @@ -6562,7 +9689,288 @@ ___ • **TransactionExecution**: = "TransactionExecution" -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:55](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L55)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:58](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L58)* + +
+ +# Enumeration: ForwarderEvents + + +## Enumeration members + +### OwnershipTransferred + +• **OwnershipTransferred**: = "OwnershipTransferred" + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:41](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L41)* + +
+ +# Enumeration: ITransformERC20Events + + +## Enumeration members + +### QuoteSignerUpdated + +• **QuoteSignerUpdated**: = "QuoteSignerUpdated" + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:44](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L44)* + +___ + +### TransformedERC20 + +• **TransformedERC20**: = "TransformedERC20" + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L45)* + +___ + +### TransformerDeployerUpdated + +• **TransformerDeployerUpdated**: = "TransformerDeployerUpdated" + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L46)* + +
+ +# Enumeration: IZeroExEvents + + +## Enumeration members + +### MetaTransactionExecuted + +• **MetaTransactionExecuted**: = "MetaTransactionExecuted" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:48 + +___ + +### Migrated + +• **Migrated**: = "Migrated" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:49 + +___ + +### OwnershipTransferred + +• **OwnershipTransferred**: = "OwnershipTransferred" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:50 + +___ + +### ProxyFunctionUpdated + +• **ProxyFunctionUpdated**: = "ProxyFunctionUpdated" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:51 + +___ + +### QuoteSignerUpdated + +• **QuoteSignerUpdated**: = "QuoteSignerUpdated" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:52 + +___ + +### TransformedERC20 + +• **TransformedERC20**: = "TransformedERC20" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:53 + +___ + +### TransformerDeployerUpdated + +• **TransformerDeployerUpdated**: = "TransformerDeployerUpdated" + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:54 + +
+ +# Enumeration: StakingEvents + + +## Enumeration members + +### AuthorizedAddressAdded + +• **AuthorizedAddressAdded**: = "AuthorizedAddressAdded" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:57](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L57)* + +___ + +### AuthorizedAddressRemoved + +• **AuthorizedAddressRemoved**: = "AuthorizedAddressRemoved" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:58](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L58)* + +___ + +### EpochEnded + +• **EpochEnded**: = "EpochEnded" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:59](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L59)* + +___ + +### EpochFinalized + +• **EpochFinalized**: = "EpochFinalized" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:60](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L60)* + +___ + +### ExchangeAdded + +• **ExchangeAdded**: = "ExchangeAdded" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:61](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L61)* + +___ + +### ExchangeRemoved + +• **ExchangeRemoved**: = "ExchangeRemoved" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:62](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L62)* + +___ + +### MakerStakingPoolSet + +• **MakerStakingPoolSet**: = "MakerStakingPoolSet" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:63](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L63)* + +___ + +### MoveStake + +• **MoveStake**: = "MoveStake" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:64](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L64)* + +___ + +### OperatorShareDecreased + +• **OperatorShareDecreased**: = "OperatorShareDecreased" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:65](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L65)* + +___ + +### OwnershipTransferred + +• **OwnershipTransferred**: = "OwnershipTransferred" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:66](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L66)* + +___ + +### ParamsSet + +• **ParamsSet**: = "ParamsSet" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:67](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L67)* + +___ + +### RewardsPaid + +• **RewardsPaid**: = "RewardsPaid" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:68](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L68)* + +___ + +### Stake + +• **Stake**: = "Stake" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:69](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L69)* + +___ + +### StakingPoolCreated + +• **StakingPoolCreated**: = "StakingPoolCreated" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:70](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L70)* + +___ + +### StakingPoolEarnedRewardsInEpoch + +• **StakingPoolEarnedRewardsInEpoch**: = "StakingPoolEarnedRewardsInEpoch" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:71](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L71)* + +___ + +### Unstake + +• **Unstake**: = "Unstake" + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:72](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L72)* + +
+ +# Enumeration: StakingProxyEvents + + +## Enumeration members + +### AuthorizedAddressAdded + +• **AuthorizedAddressAdded**: = "AuthorizedAddressAdded" + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L46)* + +___ + +### AuthorizedAddressRemoved + +• **AuthorizedAddressRemoved**: = "AuthorizedAddressRemoved" + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:47](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L47)* + +___ + +### OwnershipTransferred + +• **OwnershipTransferred**: = "OwnershipTransferred" + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:48](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L48)* + +___ + +### StakingContractAttachedToProxy + +• **StakingContractAttachedToProxy**: = "StakingContractAttachedToProxy" + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:49](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L49)* + +___ + +### StakingContractDetachedFromProxy + +• **StakingContractDetachedFromProxy**: = "StakingContractDetachedFromProxy" + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:50](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L50)*
@@ -6575,7 +9983,7 @@ ___ • **Approval**: = "Approval" -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L44)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L45)* ___ @@ -6583,7 +9991,7 @@ ___ • **Deposit**: = "Deposit" -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:46](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L46)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L46)* ___ @@ -6591,7 +9999,7 @@ ___ • **Transfer**: = "Transfer" -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L45)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:47](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L47)* ___ @@ -6599,14 +10007,10 @@ ___ • **Withdrawal**: = "Withdrawal" -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:47](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L47)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:48](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L48)*
- - - - # Enumeration: ContractError @@ -6616,7 +10020,7 @@ ___ • **ContractNotDeployedOnChain**: = "CONTRACT_NOT_DEPLOYED_ON_CHAIN" -*Defined in [contract-wrappers/src/types.ts:16](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L16)* +*Defined in [contract-wrappers/src/types.ts:9](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L9)* ___ @@ -6624,7 +10028,7 @@ ___ • **ERC721NoApproval**: = "ERC_721_NO_APPROVAL" -*Defined in [contract-wrappers/src/types.ts:26](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L26)* +*Defined in [contract-wrappers/src/types.ts:19](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L19)* ___ @@ -6632,7 +10036,7 @@ ___ • **ERC721OwnerNotFound**: = "ERC_721_OWNER_NOT_FOUND" -*Defined in [contract-wrappers/src/types.ts:25](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L25)* +*Defined in [contract-wrappers/src/types.ts:18](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L18)* ___ @@ -6640,7 +10044,7 @@ ___ • **InsufficientAllowanceForTransfer**: = "INSUFFICIENT_ALLOWANCE_FOR_TRANSFER" -*Defined in [contract-wrappers/src/types.ts:17](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L17)* +*Defined in [contract-wrappers/src/types.ts:10](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L10)* ___ @@ -6648,7 +10052,7 @@ ___ • **InsufficientBalanceForTransfer**: = "INSUFFICIENT_BALANCE_FOR_TRANSFER" -*Defined in [contract-wrappers/src/types.ts:18](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L18)* +*Defined in [contract-wrappers/src/types.ts:11](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L11)* ___ @@ -6656,7 +10060,7 @@ ___ • **InsufficientEthBalanceForDeposit**: = "INSUFFICIENT_ETH_BALANCE_FOR_DEPOSIT" -*Defined in [contract-wrappers/src/types.ts:19](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L19)* +*Defined in [contract-wrappers/src/types.ts:12](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L12)* ___ @@ -6664,7 +10068,7 @@ ___ • **InsufficientWEthBalanceForWithdrawal**: = "INSUFFICIENT_WETH_BALANCE_FOR_WITHDRAWAL" -*Defined in [contract-wrappers/src/types.ts:20](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L20)* +*Defined in [contract-wrappers/src/types.ts:13](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L13)* ___ @@ -6672,7 +10076,7 @@ ___ • **InvalidJump**: = "INVALID_JUMP" -*Defined in [contract-wrappers/src/types.ts:21](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L21)* +*Defined in [contract-wrappers/src/types.ts:14](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L14)* ___ @@ -6680,7 +10084,7 @@ ___ • **OutOfGas**: = "OUT_OF_GAS" -*Defined in [contract-wrappers/src/types.ts:22](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L22)* +*Defined in [contract-wrappers/src/types.ts:15](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L15)* ___ @@ -6688,7 +10092,7 @@ ___ • **SignatureRequestDenied**: = "SIGNATURE_REQUEST_DENIED" -*Defined in [contract-wrappers/src/types.ts:27](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L27)* +*Defined in [contract-wrappers/src/types.ts:20](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L20)* ___ @@ -6696,7 +10100,7 @@ ___ • **SubscriptionAlreadyPresent**: = "SUBSCRIPTION_ALREADY_PRESENT" -*Defined in [contract-wrappers/src/types.ts:24](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L24)* +*Defined in [contract-wrappers/src/types.ts:17](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L17)* ___ @@ -6704,7 +10108,7 @@ ___ • **SubscriptionNotFound**: = "SUBSCRIPTION_NOT_FOUND" -*Defined in [contract-wrappers/src/types.ts:23](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L23)* +*Defined in [contract-wrappers/src/types.ts:16](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L16)*
@@ -6717,7 +10121,7 @@ ___ • **CompleteFillFailed**: = "COMPLETE_FILL_FAILED" -*Defined in [contract-wrappers/src/types.ts:12](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L12)* +*Defined in [contract-wrappers/src/types.ts:5](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L5)*
@@ -6734,7 +10138,7 @@ ___ • **Earliest**: = "earliest" -*Defined in [ethereum-types/src/index.ts:479](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L479)* +*Defined in [ethereum-types/src/index.ts:488](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L488)* ___ @@ -6742,7 +10146,7 @@ ___ • **Latest**: = "latest" -*Defined in [ethereum-types/src/index.ts:480](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L480)* +*Defined in [ethereum-types/src/index.ts:489](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L489)* ___ @@ -6750,7 +10154,7 @@ ___ • **Pending**: = "pending" -*Defined in [ethereum-types/src/index.ts:481](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L481)* +*Defined in [ethereum-types/src/index.ts:490](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L490)*
@@ -6782,220 +10186,589 @@ ___ +# Interface: AwaitTransactionSuccessOpts + +Used with `awaitTransactionSuccessAsync` +* pollingIntervalMs: Determine polling intervals in milliseconds +* timeoutMs: Determines timeout in milliseconds -
+## Properties -# Interface: CoordinatorRegistryCoordinatorEndpointSetEventArgs +### `Optional` pollingIntervalMs +• **pollingIntervalMs**? : *undefined | number* -## Index - -### Properties - -* [coordinatorEndpoint](#coordinatorendpoint) -* [coordinatorOperator](#coordinatoroperator) - -## Properties - -### coordinatorEndpoint - -• **coordinatorEndpoint**: *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L45)* +*Defined in [base-contract/src/types.ts:39](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L39)* ___ -### coordinatorOperator +### `Optional` shouldValidate -• **coordinatorOperator**: *string* +• **shouldValidate**? : *undefined | false | true* -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L44)* +*Inherited from [SendTransactionOpts](#interface-sendtransactionopts).[shouldValidate](#optional-shouldvalidate)* + +*Defined in [base-contract/src/types.ts:30](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L30)* + +___ + +### `Optional` timeoutMs + +• **timeoutMs**? : *undefined | number* + +*Defined in [base-contract/src/types.ts:40](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L40)*
-# Interface: DummyERC20TokenApprovalEventArgs +# Interface: ContractEvent <**ContractEventArgs**> + +## Type parameters + +▪ **ContractEventArgs** -## Index +## Properties -### Properties +### address -* [_owner](#_owner) -* [_spender](#_spender) -* [_value](#_value) +• **address**: *string* -## Properties - -### _owner - -• **_owner**: *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L45)* +*Defined in [base-contract/src/types.ts:13](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L13)* ___ -### _spender +### args -• **_spender**: *string* +• **args**: *`ContractEventArgs`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:46](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L46)* +*Defined in [base-contract/src/types.ts:16](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L16)* ___ -### _value +### blockHash -• **_value**: *`BigNumber`* +• **blockHash**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:47](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L47)* +*Defined in [base-contract/src/types.ts:11](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L11)* + +___ + +### blockNumber + +• **blockNumber**: *number* + +*Defined in [base-contract/src/types.ts:12](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L12)* + +___ + +### event + +• **event**: *string* + +*Defined in [base-contract/src/types.ts:15](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L15)* + +___ + +### logIndex + +• **logIndex**: *number* + +*Defined in [base-contract/src/types.ts:8](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L8)* + +___ + +### transactionHash + +• **transactionHash**: *string* + +*Defined in [base-contract/src/types.ts:10](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L10)* + +___ + +### transactionIndex + +• **transactionIndex**: *number* + +*Defined in [base-contract/src/types.ts:9](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L9)* + +___ + +### type + +• **type**: *string* + +*Defined in [base-contract/src/types.ts:14](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L14)*
-# Interface: DummyERC20TokenTransferEventArgs +# Interface: ContractFunctionObj <**T**> + +## Type parameters + +▪ **T** -## Index +## Methods -### Properties +### callAsync -* [_from](#_from) -* [_to](#_to) -* [_value](#_value) +▸ **callAsync**(`callData?`: `Partial`, `defaultBlock?`: [BlockParam](#blockparam)): *`Promise`* -## Properties +*Defined in [base-contract/src/types.ts:44](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L44)* -### _from +**Parameters:** -• **_from**: *string* +Name | Type | +------ | ------ | +`callData?` | `Partial` | +`defaultBlock?` | [BlockParam](#blockparam) | -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:51](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L51)* +**Returns:** *`Promise`* ___ -### _to +### getABIEncodedTransactionData -• **_to**: *string* +▸ **getABIEncodedTransactionData**(): *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:52](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L52)* +*Defined in [base-contract/src/types.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L45)* -___ - -### _value - -• **_value**: *`BigNumber`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:53](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L53)* +**Returns:** *string*
-# Interface: DummyERC721TokenApprovalEventArgs +# Interface: ContractTxFunctionObj <**T**> + +## Type parameters + +▪ **T** -## Index +## Methods -### Properties +### awaitTransactionSuccessAsync -* [_approved](#_approved) -* [_owner](#_owner) -* [_tokenId](#_tokenid) +▸ **awaitTransactionSuccessAsync**(`txData?`: `Partial`, `opts?`: [AwaitTransactionSuccessOpts](#class-awaittransactionsuccessopts)): *`PromiseWithTransactionHash`* -## Properties +*Defined in [base-contract/src/types.ts:50](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L50)* -### _approved +**Parameters:** -• **_approved**: *string* +Name | Type | +------ | ------ | +`txData?` | `Partial` | +`opts?` | [AwaitTransactionSuccessOpts](#class-awaittransactionsuccessopts) | -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:50](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L50)* +**Returns:** *`PromiseWithTransactionHash`* ___ -### _owner +### callAsync -• **_owner**: *string* +▸ **callAsync**(`callData?`: `Partial`, `defaultBlock?`: [BlockParam](#blockparam)): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:49](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L49)* +*Inherited from [ContractFunctionObj](#interface-contractfunctionobj).[callAsync](#callasync)* + +*Defined in [base-contract/src/types.ts:44](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L44)* + +**Parameters:** + +Name | Type | +------ | ------ | +`callData?` | `Partial` | +`defaultBlock?` | [BlockParam](#blockparam) | + +**Returns:** *`Promise`* ___ -### _tokenId +### estimateGasAsync -• **_tokenId**: *`BigNumber`* +▸ **estimateGasAsync**(`txData?`: `Partial`): *`Promise`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:51](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L51)* +*Defined in [base-contract/src/types.ts:54](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L54)* + +**Parameters:** + +Name | Type | +------ | ------ | +`txData?` | `Partial` | + +**Returns:** *`Promise`* + +___ + +### getABIEncodedTransactionData + +▸ **getABIEncodedTransactionData**(): *string* + +*Inherited from [ContractFunctionObj](#interface-contractfunctionobj).[getABIEncodedTransactionData](#getabiencodedtransactiondata)* + +*Defined in [base-contract/src/types.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L45)* + +**Returns:** *string* + +___ + +### sendTransactionAsync + +▸ **sendTransactionAsync**(`txData?`: `Partial`, `opts?`: [SendTransactionOpts](#class-sendtransactionopts)): *`Promise`* + +*Defined in [base-contract/src/types.ts:49](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L49)* + +**Parameters:** + +Name | Type | +------ | ------ | +`txData?` | `Partial` | +`opts?` | [SendTransactionOpts](#class-sendtransactionopts) | + +**Returns:** *`Promise`*
-# Interface: DummyERC721TokenApprovalForAllEventArgs +# Interface: SendTransactionOpts + +Used with `sendTransactionAsync` +* shouldValidate: Flag indicating whether the library should make attempts to validate a transaction before +broadcasting it. For example, order has a valid signature, maker has sufficient funds, etc. Default=true. -## Index +## Properties -### Properties +### `Optional` shouldValidate -* [_approved](#_approved) -* [_operator](#_operator) -* [_owner](#_owner) +• **shouldValidate**? : *undefined | false | true* -## Properties - -### _approved - -• **_approved**: *boolean* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:57](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L57)* - -___ - -### _operator - -• **_operator**: *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:56](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L56)* - -___ - -### _owner - -• **_owner**: *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:55](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L55)* +*Defined in [base-contract/src/types.ts:30](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/base-contract/src/types.ts#L30)*
-# Interface: DummyERC721TokenTransferEventArgs +# Interface: ContractAddresses -## Index +## Properties -### Properties +### assetProxyOwner -* [_from](#_from) -* [_to](#_to) -* [_tokenId](#_tokenid) +• **assetProxyOwner**: *string* -## Properties - -### _from - -• **_from**: *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:61](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L61)* +*Defined in [contract-addresses/src/index.ts:10](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L10)* ___ -### _to +### balancerBridge -• **_to**: *string* +• **balancerBridge**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:62](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L62)* +*Defined in [contract-addresses/src/index.ts:37](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L37)* ___ -### _tokenId +### broker -• **_tokenId**: *`BigNumber`* +• **broker**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:63](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L63)* +*Defined in [contract-addresses/src/index.ts:32](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L32)* + +___ + +### chaiBridge + +• **chaiBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:28](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L28)* + +___ + +### chainlinkStopLimit + +• **chainlinkStopLimit**: *string* + +*Defined in [contract-addresses/src/index.ts:33](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L33)* + +___ + +### coordinator + +• **coordinator**: *string* + +*Defined in [contract-addresses/src/index.ts:14](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L14)* + +___ + +### coordinatorRegistry + +• **coordinatorRegistry**: *string* + +*Defined in [contract-addresses/src/index.ts:13](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L13)* + +___ + +### curveBridge + +• **curveBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:30](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L30)* + +___ + +### devUtils + +• **devUtils**: *string* + +*Defined in [contract-addresses/src/index.ts:18](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L18)* + +___ + +### dexForwarderBridge + +• **dexForwarderBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:35](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L35)* + +___ + +### dydxBridge + +• **dydxBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:29](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L29)* + +___ + +### erc1155Proxy + +• **erc1155Proxy**: *string* + +*Defined in [contract-addresses/src/index.ts:17](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L17)* + +___ + +### erc20BridgeProxy + +• **erc20BridgeProxy**: *string* + +*Defined in [contract-addresses/src/index.ts:22](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L22)* + +___ + +### erc20BridgeSampler + +• **erc20BridgeSampler**: *string* + +*Defined in [contract-addresses/src/index.ts:23](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L23)* + +___ + +### erc20Proxy + +• **erc20Proxy**: *string* + +*Defined in [contract-addresses/src/index.ts:4](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L4)* + +___ + +### erc721Proxy + +• **erc721Proxy**: *string* + +*Defined in [contract-addresses/src/index.ts:5](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L5)* + +___ + +### eth2DaiBridge + +• **eth2DaiBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:26](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L26)* + +___ + +### etherToken + +• **etherToken**: *string* + +*Defined in [contract-addresses/src/index.ts:7](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L7)* + +___ + +### exchange + +• **exchange**: *string* + +*Defined in [contract-addresses/src/index.ts:9](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L9)* + +___ + +### exchangeProxy + +• **exchangeProxy**: *string* + +*Defined in [contract-addresses/src/index.ts:39](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L39)* + +___ + +### exchangeProxyAllowanceTarget + +• **exchangeProxyAllowanceTarget**: *string* + +*Defined in [contract-addresses/src/index.ts:40](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L40)* + +___ + +### exchangeProxyFlashWallet + +• **exchangeProxyFlashWallet**: *string* + +*Defined in [contract-addresses/src/index.ts:42](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L42)* + +___ + +### exchangeProxyGovernor + +• **exchangeProxyGovernor**: *string* + +*Defined in [contract-addresses/src/index.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L38)* + +___ + +### exchangeProxyTransformerDeployer + +• **exchangeProxyTransformerDeployer**: *string* + +*Defined in [contract-addresses/src/index.ts:41](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L41)* + +___ + +### exchangeV2 + +• **exchangeV2**: *string* + +*Defined in [contract-addresses/src/index.ts:8](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L8)* + +___ + +### forwarder + +• **forwarder**: *string* + +*Defined in [contract-addresses/src/index.ts:12](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L12)* + +___ + +### godsUnchainedValidator + +• **godsUnchainedValidator**: *string* + +*Defined in [contract-addresses/src/index.ts:31](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L31)* + +___ + +### kyberBridge + +• **kyberBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:27](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L27)* + +___ + +### maximumGasPrice + +• **maximumGasPrice**: *string* + +*Defined in [contract-addresses/src/index.ts:34](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L34)* + +___ + +### multiAssetProxy + +• **multiAssetProxy**: *string* + +*Defined in [contract-addresses/src/index.ts:15](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L15)* + +___ + +### multiBridge + +• **multiBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:36](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L36)* + +___ + +### staking + +• **staking**: *string* + +*Defined in [contract-addresses/src/index.ts:20](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L20)* + +___ + +### stakingProxy + +• **stakingProxy**: *string* + +*Defined in [contract-addresses/src/index.ts:21](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L21)* + +___ + +### staticCallProxy + +• **staticCallProxy**: *string* + +*Defined in [contract-addresses/src/index.ts:16](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L16)* + +___ + +### transformers + +• **transformers**: *object* + +*Defined in [contract-addresses/src/index.ts:43](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L43)* + +#### Type declaration: + +___ + +### uniswapBridge + +• **uniswapBridge**: *string* + +*Defined in [contract-addresses/src/index.ts:24](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L24)* + +___ + +### uniswapV2Bridge + +• **uniswapV2Bridge**: *string* + +*Defined in [contract-addresses/src/index.ts:25](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L25)* + +___ + +### zeroExGovernor + +• **zeroExGovernor**: *string* + +*Defined in [contract-addresses/src/index.ts:11](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L11)* + +___ + +### zrxToken + +• **zrxToken**: *string* + +*Defined in [contract-addresses/src/index.ts:6](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L6)* + +___ + +### zrxVault + +• **zrxVault**: *string* + +*Defined in [contract-addresses/src/index.ts:19](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L19)*
@@ -7016,7 +10789,7 @@ ___ • **_owner**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:51](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L51)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L46)* ___ @@ -7024,7 +10797,7 @@ ___ • **_spender**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:52](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L52)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:47](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L47)* ___ @@ -7032,7 +10805,7 @@ ___ • **_value**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:53](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L53)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:48](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L48)*
@@ -7053,7 +10826,7 @@ ___ • **_from**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L45)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:52](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L52)* ___ @@ -7061,7 +10834,7 @@ ___ • **_to**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:46](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L46)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:53](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L53)* ___ @@ -7069,7 +10842,7 @@ ___ • **_value**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:47](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L47)* +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:54](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L54)*
@@ -7090,7 +10863,7 @@ ___ • **_approved**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:50](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L50)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:51](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L51)* ___ @@ -7098,7 +10871,7 @@ ___ • **_owner**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:49](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L49)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:50](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L50)* ___ @@ -7106,7 +10879,7 @@ ___ • **_tokenId**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:51](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L51)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:52](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L52)*
@@ -7127,7 +10900,7 @@ ___ • **_approved**: *boolean* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:57](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L57)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:58](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L58)* ___ @@ -7135,7 +10908,7 @@ ___ • **_operator**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:56](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L56)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:57](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L57)* ___ @@ -7143,7 +10916,7 @@ ___ • **_owner**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:55](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L55)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:56](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L56)*
@@ -7164,7 +10937,7 @@ ___ • **_from**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:61](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L61)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:62](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L62)* ___ @@ -7172,7 +10945,7 @@ ___ • **_to**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:62](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L62)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:63](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L63)* ___ @@ -7180,7 +10953,7 @@ ___ • **_tokenId**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:63](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L63)* +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:64](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L64)*
@@ -7200,7 +10973,7 @@ ___ • **assetProxy**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:60](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L60)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:63](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L63)* ___ @@ -7208,7 +10981,7 @@ ___ • **id**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:59](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L59)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:62](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L62)*
@@ -7232,7 +11005,7 @@ ___ • **feeRecipientAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:65](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L65)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:68](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L68)* ___ @@ -7240,7 +11013,7 @@ ___ • **makerAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:64](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L64)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:67](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L67)* ___ @@ -7248,7 +11021,7 @@ ___ • **makerAssetData**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:66](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L66)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:69](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L69)* ___ @@ -7256,7 +11029,7 @@ ___ • **orderHash**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:69](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L69)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:72](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L72)* ___ @@ -7264,7 +11037,7 @@ ___ • **senderAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:68](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L68)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:71](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L71)* ___ @@ -7272,7 +11045,7 @@ ___ • **takerAssetData**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:67](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L67)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:70](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L70)*
@@ -7293,7 +11066,7 @@ ___ • **makerAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:73](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L73)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:76](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L76)* ___ @@ -7301,7 +11074,7 @@ ___ • **orderEpoch**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:75](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L75)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:78](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L78)* ___ @@ -7309,7 +11082,7 @@ ___ • **orderSenderAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:74](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L74)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:77](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L77)*
@@ -7341,7 +11114,7 @@ ___ • **feeRecipientAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:80](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L80)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:83](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L83)* ___ @@ -7349,7 +11122,7 @@ ___ • **makerAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:79](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L79)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:82](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L82)* ___ @@ -7357,7 +11130,7 @@ ___ • **makerAssetData**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:81](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L81)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:84](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L84)* ___ @@ -7365,7 +11138,7 @@ ___ • **makerAssetFilledAmount**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:88](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L88)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:91](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L91)* ___ @@ -7373,7 +11146,7 @@ ___ • **makerFeeAssetData**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:83](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L83)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:86](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L86)* ___ @@ -7381,7 +11154,7 @@ ___ • **makerFeePaid**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:90](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L90)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:93](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L93)* ___ @@ -7389,7 +11162,7 @@ ___ • **orderHash**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:85](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L85)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:88](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L88)* ___ @@ -7397,7 +11170,7 @@ ___ • **protocolFeePaid**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:92](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L92)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:95](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L95)* ___ @@ -7405,7 +11178,7 @@ ___ • **senderAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:87](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L87)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:90](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L90)* ___ @@ -7413,7 +11186,7 @@ ___ • **takerAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:86](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L86)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:89](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L89)* ___ @@ -7421,7 +11194,7 @@ ___ • **takerAssetData**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:82](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L82)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:85](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L85)* ___ @@ -7429,7 +11202,7 @@ ___ • **takerAssetFilledAmount**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:89](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L89)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:92](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L92)* ___ @@ -7437,7 +11210,7 @@ ___ • **takerFeeAssetData**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:84](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L84)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:87](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L87)* ___ @@ -7445,7 +11218,35 @@ ___ • **takerFeePaid**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:91](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L91)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:94](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L94)* + +
+ +# Interface: ExchangeOwnershipTransferredEventArgs + + +## Index + +### Properties + +* [newOwner](#newowner) +* [previousOwner](#previousowner) + +## Properties + +### newOwner + +• **newOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:100](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L100)* + +___ + +### previousOwner + +• **previousOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:99](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L99)*
@@ -7465,7 +11266,7 @@ ___ • **oldProtocolFeeCollector**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:96](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L96)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:104](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L104)* ___ @@ -7473,7 +11274,7 @@ ___ • **updatedProtocolFeeCollector**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:97](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L97)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:105](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L105)*
@@ -7493,7 +11294,7 @@ ___ • **oldProtocolFeeMultiplier**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:101](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L101)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:109](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L109)* ___ @@ -7501,7 +11302,7 @@ ___ • **updatedProtocolFeeMultiplier**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:102](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L102)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:110](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L110)*
@@ -7522,7 +11323,7 @@ ___ • **isApproved**: *boolean* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:108](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L108)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:116](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L116)* ___ @@ -7530,7 +11331,7 @@ ___ • **signerAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:106](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L106)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:114](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L114)* ___ @@ -7538,7 +11339,7 @@ ___ • **validatorAddress**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:107](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L107)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:115](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L115)*
@@ -7557,17 +11358,1054 @@ ___ • **transactionHash**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:112](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L112)* +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:120](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L120)*
-# Interface: WETH9ApprovalEventArgs +# Interface: ForwarderOwnershipTransferredEventArgs ## Index ### Properties +* [newOwner](#newowner) +* [previousOwner](#previousowner) + +## Properties + +### newOwner + +• **newOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:46](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L46)* + +___ + +### previousOwner + +• **previousOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L45)* + +
+ +# Interface: ITransformERC20QuoteSignerUpdatedEventArgs + + +## Index + +### Properties + +* [quoteSigner](#quotesigner) + +## Properties + +### quoteSigner + +• **quoteSigner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:50](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L50)* + +
+ +# Interface: ITransformERC20TransformedERC20EventArgs + + +## Index + +### Properties + +* [inputToken](#inputtoken) +* [inputTokenAmount](#inputtokenamount) +* [outputToken](#outputtoken) +* [outputTokenAmount](#outputtokenamount) +* [taker](#taker) + +## Properties + +### inputToken + +• **inputToken**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:55](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L55)* + +___ + +### inputTokenAmount + +• **inputTokenAmount**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:57](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L57)* + +___ + +### outputToken + +• **outputToken**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:56](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L56)* + +___ + +### outputTokenAmount + +• **outputTokenAmount**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:58](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L58)* + +___ + +### taker + +• **taker**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:54](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L54)* + +
+ +# Interface: ITransformERC20TransformerDeployerUpdatedEventArgs + + +## Index + +### Properties + +* [transformerDeployer](#transformerdeployer) + +## Properties + +### transformerDeployer + +• **transformerDeployer**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:62](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L62)* + +
+ +# Interface: IZeroExMetaTransactionExecutedEventArgs + + +## Index + +### Properties + +* [hash](#hash) +* [selector](#selector) +* [sender](#sender) +* [signer](#signer) + +## Properties + +### hash + +• **hash**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:58 + +___ + +### selector + +• **selector**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:59 + +___ + +### sender + +• **sender**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:61 + +___ + +### signer + +• **signer**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:60 + +
+ +# Interface: IZeroExMigratedEventArgs + + +## Index + +### Properties + +* [caller](#caller) +* [migrator](#migrator) +* [newOwner](#newowner) + +## Properties + +### caller + +• **caller**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:65 + +___ + +### migrator + +• **migrator**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:66 + +___ + +### newOwner + +• **newOwner**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:67 + +
+ +# Interface: IZeroExOwnershipTransferredEventArgs + + +## Index + +### Properties + +* [newOwner](#newowner) +* [previousOwner](#previousowner) + +## Properties + +### newOwner + +• **newOwner**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:72 + +___ + +### previousOwner + +• **previousOwner**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:71 + +
+ +# Interface: IZeroExProxyFunctionUpdatedEventArgs + + +## Index + +### Properties + +* [newImpl](#newimpl) +* [oldImpl](#oldimpl) +* [selector](#selector) + +## Properties + +### newImpl + +• **newImpl**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:78 + +___ + +### oldImpl + +• **oldImpl**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:77 + +___ + +### selector + +• **selector**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:76 + +
+ +# Interface: IZeroExQuoteSignerUpdatedEventArgs + + +## Index + +### Properties + +* [quoteSigner](#quotesigner) + +## Properties + +### quoteSigner + +• **quoteSigner**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:82 + +
+ +# Interface: IZeroExTransformedERC20EventArgs + + +## Index + +### Properties + +* [inputToken](#inputtoken) +* [inputTokenAmount](#inputtokenamount) +* [outputToken](#outputtoken) +* [outputTokenAmount](#outputtokenamount) +* [taker](#taker) + +## Properties + +### inputToken + +• **inputToken**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:87 + +___ + +### inputTokenAmount + +• **inputTokenAmount**: *`BigNumber`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:89 + +___ + +### outputToken + +• **outputToken**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:88 + +___ + +### outputTokenAmount + +• **outputTokenAmount**: *`BigNumber`* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:90 + +___ + +### taker + +• **taker**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:86 + +
+ +# Interface: IZeroExTransformerDeployerUpdatedEventArgs + + +## Index + +### Properties + +* [transformerDeployer](#transformerdeployer) + +## Properties + +### transformerDeployer + +• **transformerDeployer**: *string* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:94 + +
+ +# Interface: StakingAuthorizedAddressAddedEventArgs + + +## Index + +### Properties + +* [caller](#caller) +* [target](#target) + +## Properties + +### caller + +• **caller**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:77](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L77)* + +___ + +### target + +• **target**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:76](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L76)* + +
+ +# Interface: StakingAuthorizedAddressRemovedEventArgs + + +## Index + +### Properties + +* [caller](#caller) +* [target](#target) + +## Properties + +### caller + +• **caller**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:82](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L82)* + +___ + +### target + +• **target**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:81](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L81)* + +
+ +# Interface: StakingEpochEndedEventArgs + + +## Index + +### Properties + +* [epoch](#epoch) +* [numPoolsToFinalize](#numpoolstofinalize) +* [rewardsAvailable](#rewardsavailable) +* [totalFeesCollected](#totalfeescollected) +* [totalWeightedStake](#totalweightedstake) + +## Properties + +### epoch + +• **epoch**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:86](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L86)* + +___ + +### numPoolsToFinalize + +• **numPoolsToFinalize**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:87](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L87)* + +___ + +### rewardsAvailable + +• **rewardsAvailable**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:88](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L88)* + +___ + +### totalFeesCollected + +• **totalFeesCollected**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:89](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L89)* + +___ + +### totalWeightedStake + +• **totalWeightedStake**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:90](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L90)* + +
+ +# Interface: StakingEpochFinalizedEventArgs + + +## Index + +### Properties + +* [epoch](#epoch) +* [rewardsPaid](#rewardspaid) +* [rewardsRemaining](#rewardsremaining) + +## Properties + +### epoch + +• **epoch**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:94](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L94)* + +___ + +### rewardsPaid + +• **rewardsPaid**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:95](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L95)* + +___ + +### rewardsRemaining + +• **rewardsRemaining**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:96](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L96)* + +
+ +# Interface: StakingExchangeAddedEventArgs + + +## Index + +### Properties + +* [exchangeAddress](#exchangeaddress) + +## Properties + +### exchangeAddress + +• **exchangeAddress**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:100](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L100)* + +
+ +# Interface: StakingExchangeRemovedEventArgs + + +## Index + +### Properties + +* [exchangeAddress](#exchangeaddress) + +## Properties + +### exchangeAddress + +• **exchangeAddress**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:104](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L104)* + +
+ +# Interface: StakingMakerStakingPoolSetEventArgs + + +## Index + +### Properties + +* [makerAddress](#makeraddress) +* [poolId](#poolid) + +## Properties + +### makerAddress + +• **makerAddress**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:108](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L108)* + +___ + +### poolId + +• **poolId**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:109](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L109)* + +
+ +# Interface: StakingMoveStakeEventArgs + + +## Index + +### Properties + +* [amount](#amount) +* [fromPool](#frompool) +* [fromStatus](#fromstatus) +* [staker](#staker) +* [toPool](#topool) +* [toStatus](#tostatus) + +## Properties + +### amount + +• **amount**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:114](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L114)* + +___ + +### fromPool + +• **fromPool**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:116](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L116)* + +___ + +### fromStatus + +• **fromStatus**: *number* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:115](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L115)* + +___ + +### staker + +• **staker**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:113](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L113)* + +___ + +### toPool + +• **toPool**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:118](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L118)* + +___ + +### toStatus + +• **toStatus**: *number* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:117](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L117)* + +
+ +# Interface: StakingOperatorShareDecreasedEventArgs + + +## Index + +### Properties + +* [newOperatorShare](#newoperatorshare) +* [oldOperatorShare](#oldoperatorshare) +* [poolId](#poolid) + +## Properties + +### newOperatorShare + +• **newOperatorShare**: *number* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:124](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L124)* + +___ + +### oldOperatorShare + +• **oldOperatorShare**: *number* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:123](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L123)* + +___ + +### poolId + +• **poolId**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:122](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L122)* + +
+ +# Interface: StakingOwnershipTransferredEventArgs + + +## Index + +### Properties + +* [newOwner](#newowner) +* [previousOwner](#previousowner) + +## Properties + +### newOwner + +• **newOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:129](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L129)* + +___ + +### previousOwner + +• **previousOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:128](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L128)* + +
+ +# Interface: StakingParamsSetEventArgs + + +## Index + +### Properties + +* [cobbDouglasAlphaDenominator](#cobbdouglasalphadenominator) +* [cobbDouglasAlphaNumerator](#cobbdouglasalphanumerator) +* [epochDurationInSeconds](#epochdurationinseconds) +* [minimumPoolStake](#minimumpoolstake) +* [rewardDelegatedStakeWeight](#rewarddelegatedstakeweight) + +## Properties + +### cobbDouglasAlphaDenominator + +• **cobbDouglasAlphaDenominator**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:137](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L137)* + +___ + +### cobbDouglasAlphaNumerator + +• **cobbDouglasAlphaNumerator**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:136](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L136)* + +___ + +### epochDurationInSeconds + +• **epochDurationInSeconds**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:133](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L133)* + +___ + +### minimumPoolStake + +• **minimumPoolStake**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:135](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L135)* + +___ + +### rewardDelegatedStakeWeight + +• **rewardDelegatedStakeWeight**: *number* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:134](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L134)* + +
+ +# Interface: StakingRewardsPaidEventArgs + + +## Index + +### Properties + +* [epoch](#epoch) +* [membersReward](#membersreward) +* [operatorReward](#operatorreward) +* [poolId](#poolid) + +## Properties + +### epoch + +• **epoch**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:141](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L141)* + +___ + +### membersReward + +• **membersReward**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:144](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L144)* + +___ + +### operatorReward + +• **operatorReward**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:143](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L143)* + +___ + +### poolId + +• **poolId**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:142](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L142)* + +
+ +# Interface: StakingStakeEventArgs + + +## Index + +### Properties + +* [amount](#amount) +* [staker](#staker) + +## Properties + +### amount + +• **amount**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:149](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L149)* + +___ + +### staker + +• **staker**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:148](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L148)* + +
+ +# Interface: StakingStakingPoolCreatedEventArgs + + +## Index + +### Properties + +* [operator](#operator) +* [operatorShare](#operatorshare) +* [poolId](#poolid) + +## Properties + +### operator + +• **operator**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:154](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L154)* + +___ + +### operatorShare + +• **operatorShare**: *number* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:155](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L155)* + +___ + +### poolId + +• **poolId**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:153](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L153)* + +
+ +# Interface: StakingStakingPoolEarnedRewardsInEpochEventArgs + + +## Index + +### Properties + +* [epoch](#epoch) +* [poolId](#poolid) + +## Properties + +### epoch + +• **epoch**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:159](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L159)* + +___ + +### poolId + +• **poolId**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:160](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L160)* + +
+ +# Interface: StakingUnstakeEventArgs + + +## Index + +### Properties + +* [amount](#amount) +* [staker](#staker) + +## Properties + +### amount + +• **amount**: *`BigNumber`* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:165](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L165)* + +___ + +### staker + +• **staker**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:164](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L164)* + +
+ +# Interface: StakingProxyAuthorizedAddressAddedEventArgs + + +## Index + +### Properties + +* [caller](#caller) +* [target](#target) + +## Properties + +### caller + +• **caller**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:55](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L55)* + +___ + +### target + +• **target**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:54](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L54)* + +
+ +# Interface: StakingProxyAuthorizedAddressRemovedEventArgs + + +## Index + +### Properties + +* [caller](#caller) +* [target](#target) + +## Properties + +### caller + +• **caller**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:60](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L60)* + +___ + +### target + +• **target**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:59](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L59)* + +
+ +# Interface: StakingProxyOwnershipTransferredEventArgs + + +## Index + +### Properties + +* [newOwner](#newowner) +* [previousOwner](#previousowner) + +## Properties + +### newOwner + +• **newOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:65](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L65)* + +___ + +### previousOwner + +• **previousOwner**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:64](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L64)* + +
+ +# Interface: StakingProxyStakingContractAttachedToProxyEventArgs + + +## Index + +### Properties + +* [newStakingContractAddress](#newstakingcontractaddress) + +## Properties + +### newStakingContractAddress + +• **newStakingContractAddress**: *string* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:69](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L69)* + +
+ +# Interface: StakingProxyStakingContractDetachedFromProxyEventArgs + + +## Hierarchy + +* `DecodedLogArgs` + + * **WETH9ApprovalEventArgs** + + +## Index + +### Properties + * [_owner](#_owner) * [_spender](#_spender) * [_value](#_value) @@ -7578,7 +12416,7 @@ ___ • **_owner**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:51](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L51)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:52](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L52)* ___ @@ -7586,7 +12424,7 @@ ___ • **_spender**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:52](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L52)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:53](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L53)* ___ @@ -7594,7 +12432,7 @@ ___ • **_value**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:53](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L53)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:54](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L54)*
@@ -7614,7 +12452,7 @@ ___ • **_owner**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:63](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L63)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:58](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L58)* ___ @@ -7622,7 +12460,7 @@ ___ • **_value**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:64](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L64)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:59](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L59)*
@@ -7643,7 +12481,7 @@ ___ • **_from**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:57](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L57)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:63](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L63)* ___ @@ -7651,7 +12489,7 @@ ___ • **_to**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:58](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L58)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:64](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L64)* ___ @@ -7659,7 +12497,7 @@ ___ • **_value**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:59](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L59)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:65](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L65)*
@@ -7679,7 +12517,7 @@ ___ • **_owner**: *string* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:68](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L68)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:69](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L69)* ___ @@ -7687,345 +12525,7 @@ ___ • **_value**: *`BigNumber`* -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:69](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L69)* - -
- -# Interface: AwaitTransactionSuccessOpts - -Used with `awaitTransactionSuccessAsync` -* pollingIntervalMs: Determine polling intervals in milliseconds -* timeoutMs: Determines timeout in milliseconds - - -## Properties - -### `Optional` pollingIntervalMs - -• **pollingIntervalMs**? : *undefined | number* - -*Defined in [base-contract/src/types.ts:39](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L39)* - -___ - -### `Optional` shouldValidate - -• **shouldValidate**? : *undefined | false | true* - -*Inherited from [SendTransactionOpts](#interface-sendtransactionopts).[shouldValidate](#optional-shouldvalidate)* - -*Defined in [base-contract/src/types.ts:30](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L30)* - -___ - -### `Optional` timeoutMs - -• **timeoutMs**? : *undefined | number* - -*Defined in [base-contract/src/types.ts:40](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L40)* - -
- - - -# Interface: ContractFunctionObj <**T**> - -## Type parameters - -â–ª **T** - - -## Methods - -### callAsync - -â–¸ **callAsync**(`callData?`: `Partial`, `defaultBlock?`: [BlockParam](#blockparam)): *`Promise`* - -*Defined in [base-contract/src/types.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L44)* - -**Parameters:** - -Name | Type | ------- | ------ | -`callData?` | `Partial` | -`defaultBlock?` | [BlockParam](#blockparam) | - -**Returns:** *`Promise`* - -___ - -### getABIEncodedTransactionData - -â–¸ **getABIEncodedTransactionData**(): *string* - -*Defined in [base-contract/src/types.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L45)* - -**Returns:** *string* - -
- -# Interface: ContractTxFunctionObj <**T**> - -## Type parameters - -â–ª **T** - - -## Methods - -### awaitTransactionSuccessAsync - -â–¸ **awaitTransactionSuccessAsync**(`txData?`: `Partial`, `opts?`: [AwaitTransactionSuccessOpts](#class-awaittransactionsuccessopts)): *`PromiseWithTransactionHash`* - -*Defined in [base-contract/src/types.ts:50](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L50)* - -**Parameters:** - -Name | Type | ------- | ------ | -`txData?` | `Partial` | -`opts?` | [AwaitTransactionSuccessOpts](#class-awaittransactionsuccessopts) | - -**Returns:** *`PromiseWithTransactionHash`* - -___ - -### callAsync - -â–¸ **callAsync**(`callData?`: `Partial`, `defaultBlock?`: [BlockParam](#blockparam)): *`Promise`* - -*Inherited from [ContractFunctionObj](#interface-contractfunctionobj).[callAsync](#callasync)* - -*Defined in [base-contract/src/types.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L44)* - -**Parameters:** - -Name | Type | ------- | ------ | -`callData?` | `Partial` | -`defaultBlock?` | [BlockParam](#blockparam) | - -**Returns:** *`Promise`* - -___ - -### estimateGasAsync - -â–¸ **estimateGasAsync**(`txData?`: `Partial`): *`Promise`* - -*Defined in [base-contract/src/types.ts:54](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L54)* - -**Parameters:** - -Name | Type | ------- | ------ | -`txData?` | `Partial` | - -**Returns:** *`Promise`* - -___ - -### getABIEncodedTransactionData - -â–¸ **getABIEncodedTransactionData**(): *string* - -*Inherited from [ContractFunctionObj](#interface-contractfunctionobj).[getABIEncodedTransactionData](#getabiencodedtransactiondata)* - -*Defined in [base-contract/src/types.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L45)* - -**Returns:** *string* - -___ - -### sendTransactionAsync - -â–¸ **sendTransactionAsync**(`txData?`: `Partial`, `opts?`: [SendTransactionOpts](#class-sendtransactionopts)): *`Promise`* - -*Defined in [base-contract/src/types.ts:49](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/base-contract/src/types.ts#L49)* - -**Parameters:** - -Name | Type | ------- | ------ | -`txData?` | `Partial` | -`opts?` | [SendTransactionOpts](#class-sendtransactionopts) | - -**Returns:** *`Promise`* - -
- - - -# Interface: ContractAddresses - - -## Properties - -### assetProxyOwner - -• **assetProxyOwner**: *string* - -*Defined in [contract-addresses/src/index.ts:12](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L12)* - -___ - -### coordinator - -• **coordinator**: *string* - -*Defined in [contract-addresses/src/index.ts:18](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L18)* - -___ - -### coordinatorRegistry - -• **coordinatorRegistry**: *string* - -*Defined in [contract-addresses/src/index.ts:17](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L17)* - -___ - -### devUtils - -• **devUtils**: *string* - -*Defined in [contract-addresses/src/index.ts:22](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L22)* - -___ - -### dutchAuction - -• **dutchAuction**: *string* - -*Defined in [contract-addresses/src/index.ts:16](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L16)* - -___ - -### erc1155Proxy - -• **erc1155Proxy**: *string* - -*Defined in [contract-addresses/src/index.ts:21](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L21)* - -___ - -### erc20BridgeProxy - -• **erc20BridgeProxy**: *string* - -*Defined in [contract-addresses/src/index.ts:26](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L26)* - -___ - -### erc20Proxy - -• **erc20Proxy**: *string* - -*Defined in [contract-addresses/src/index.ts:6](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L6)* - -___ - -### erc721Proxy - -• **erc721Proxy**: *string* - -*Defined in [contract-addresses/src/index.ts:7](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L7)* - -___ - -### etherToken - -• **etherToken**: *string* - -*Defined in [contract-addresses/src/index.ts:9](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L9)* - -___ - -### exchange - -• **exchange**: *string* - -*Defined in [contract-addresses/src/index.ts:11](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L11)* - -___ - -### exchangeV2 - -• **exchangeV2**: *string* - -*Defined in [contract-addresses/src/index.ts:10](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L10)* - -___ - -### forwarder - -• **forwarder**: *string* - -*Defined in [contract-addresses/src/index.ts:14](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L14)* - -___ - -### multiAssetProxy - -• **multiAssetProxy**: *string* - -*Defined in [contract-addresses/src/index.ts:19](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L19)* - -___ - -### orderValidator - -• **orderValidator**: *string* - -*Defined in [contract-addresses/src/index.ts:15](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L15)* - -___ - -### staking - -• **staking**: *string* - -*Defined in [contract-addresses/src/index.ts:24](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L24)* - -___ - -### stakingProxy - -• **stakingProxy**: *string* - -*Defined in [contract-addresses/src/index.ts:25](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L25)* - -___ - -### staticCallProxy - -• **staticCallProxy**: *string* - -*Defined in [contract-addresses/src/index.ts:20](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L20)* - -___ - -### zeroExGovernor - -• **zeroExGovernor**: *string* - -*Defined in [contract-addresses/src/index.ts:13](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L13)* - -___ - -### zrxToken - -• **zrxToken**: *string* - -*Defined in [contract-addresses/src/index.ts:8](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L8)* - -___ - -### zrxVault - -• **zrxVault**: *string* - -*Defined in [contract-addresses/src/index.ts:23](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L23)* +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:70](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L70)*
@@ -8043,7 +12543,7 @@ blockPollingIntervalMs: The interval to use for block polling in event watching • **blockPollingIntervalMs**? : *undefined | number* -*Defined in [contract-wrappers/src/types.ts:40](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L40)* +*Defined in [contract-wrappers/src/types.ts:33](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L33)* ___ @@ -8051,7 +12551,7 @@ ___ • **chainId**: *number* -*Defined in [contract-wrappers/src/types.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L37)* +*Defined in [contract-wrappers/src/types.ts:30](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L30)* ___ @@ -8059,7 +12559,7 @@ ___ • **contractAddresses**? : *[ContractAddresses](#class-contractaddresses)* -*Defined in [contract-wrappers/src/types.ts:39](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L39)* +*Defined in [contract-wrappers/src/types.ts:32](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L32)* ___ @@ -8067,7 +12567,7 @@ ___ • **gasPrice**? : *`BigNumber`* -*Defined in [contract-wrappers/src/types.ts:38](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-wrappers/src/types.ts#L38)* +*Defined in [contract-wrappers/src/types.ts:31](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/types.ts#L31)*
@@ -8079,14 +12579,6 @@ ___ - - - - - - - - # Interface: BlockRange @@ -8096,7 +12588,7 @@ ___ • **fromBlock**: *[BlockParam](#blockparam)* -*Defined in [ethereum-types/src/index.ts:743](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L743)* +*Defined in [ethereum-types/src/index.ts:759](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L759)* ___ @@ -8104,7 +12596,7 @@ ___ • **toBlock**: *[BlockParam](#blockparam)* -*Defined in [ethereum-types/src/index.ts:744](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L744)* +*Defined in [ethereum-types/src/index.ts:760](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L760)*
@@ -8123,7 +12615,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[data](#optional-data)* -*Defined in [ethereum-types/src/index.ts:394](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L394)* +*Defined in [ethereum-types/src/index.ts:394](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L394)* ___ @@ -8131,7 +12623,7 @@ ___ • **from**? : *undefined | string* -*Defined in [ethereum-types/src/index.ts:403](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L403)* +*Defined in [ethereum-types/src/index.ts:411](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L411)* ___ @@ -8141,7 +12633,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[gas](#optional-gas)* -*Defined in [ethereum-types/src/index.ts:392](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L392)* +*Defined in [ethereum-types/src/index.ts:392](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L392)* ___ @@ -8151,7 +12643,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[gasPrice](#optional-gasprice)* -*Defined in [ethereum-types/src/index.ts:393](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L393)* +*Defined in [ethereum-types/src/index.ts:393](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L393)* ___ @@ -8161,7 +12653,15 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[nonce](#optional-nonce)* -*Defined in [ethereum-types/src/index.ts:395](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L395)* +*Defined in [ethereum-types/src/index.ts:395](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L395)* + +___ + +### `Optional` overrides + +• **overrides**? : *[GethCallOverrides](#class-gethcalloverrides)* + +*Defined in [ethereum-types/src/index.ts:412](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L412)* ___ @@ -8171,7 +12671,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[to](#optional-to)* -*Defined in [ethereum-types/src/index.ts:390](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L390)* +*Defined in [ethereum-types/src/index.ts:390](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L390)* ___ @@ -8181,7 +12681,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[value](#optional-value)* -*Defined in [ethereum-types/src/index.ts:391](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L391)* +*Defined in [ethereum-types/src/index.ts:391](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L391)*
@@ -8198,7 +12698,7 @@ ___ • **name**: *"solc"* -*Defined in [ethereum-types/src/index.ts:656](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L656)* +*Defined in [ethereum-types/src/index.ts:672](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L672)* ___ @@ -8206,7 +12706,7 @@ ___ • **settings**: *[CompilerSettings](#class-compilersettings)* -*Defined in [ethereum-types/src/index.ts:658](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L658)* +*Defined in [ethereum-types/src/index.ts:674](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L674)* ___ @@ -8214,7 +12714,7 @@ ___ • **version**: *string* -*Defined in [ethereum-types/src/index.ts:657](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L657)* +*Defined in [ethereum-types/src/index.ts:673](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L673)*
@@ -8227,7 +12727,7 @@ ___ • **evmVersion**? : *"homestead" | "tangerineWhistle" | "spuriousDragon" | "byzantium" | "constantinople"* -*Defined in [ethereum-types/src/index.ts:690](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L690)* +*Defined in [ethereum-types/src/index.ts:706](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L706)* ___ @@ -8235,7 +12735,7 @@ ___ • **libraries**? : *undefined | object* -*Defined in [ethereum-types/src/index.ts:692](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L692)* +*Defined in [ethereum-types/src/index.ts:708](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L708)* ___ @@ -8243,7 +12743,7 @@ ___ • **metadata**? : *[CompilerSettingsMetadata](#class-compilersettingsmetadata)* -*Defined in [ethereum-types/src/index.ts:691](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L691)* +*Defined in [ethereum-types/src/index.ts:707](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L707)* ___ @@ -8251,7 +12751,7 @@ ___ • **optimizer**? : *[OptimizerSettings](#class-optimizersettings)* -*Defined in [ethereum-types/src/index.ts:689](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L689)* +*Defined in [ethereum-types/src/index.ts:705](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L705)* ___ @@ -8259,7 +12759,7 @@ ___ • **outputSelection**: *object* -*Defined in [ethereum-types/src/index.ts:697](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L697)* +*Defined in [ethereum-types/src/index.ts:713](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L713)* #### Type declaration: @@ -8273,7 +12773,7 @@ ___ • **remappings**? : *string[]* -*Defined in [ethereum-types/src/index.ts:688](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L688)* +*Defined in [ethereum-types/src/index.ts:704](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L704)*
@@ -8286,7 +12786,7 @@ ___ • **useLiteralContent**: *true* -*Defined in [ethereum-types/src/index.ts:705](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L705)* +*Defined in [ethereum-types/src/index.ts:721](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L721)*
@@ -8299,7 +12799,7 @@ ___ • **inputs**: *[DataItem](#class-dataitem)[]* -*Defined in [ethereum-types/src/index.ts:103](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L103)* +*Defined in [ethereum-types/src/index.ts:103](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L103)* ___ @@ -8307,7 +12807,7 @@ ___ • **payable**: *boolean* -*Defined in [ethereum-types/src/index.ts:104](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L104)* +*Defined in [ethereum-types/src/index.ts:104](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L104)* ___ @@ -8315,7 +12815,7 @@ ___ • **stateMutability**: *[ConstructorStateMutability](#constructorstatemutability)* -*Defined in [ethereum-types/src/index.ts:105](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L105)* +*Defined in [ethereum-types/src/index.ts:105](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L105)* ___ @@ -8323,7 +12823,7 @@ ___ • **type**: *string* -*Defined in [ethereum-types/src/index.ts:102](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L102)* +*Defined in [ethereum-types/src/index.ts:102](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L102)*
@@ -8348,7 +12848,7 @@ If any of the sources change, the hash would change notifying us that a re-compi • **chains**: *[ContractChains](#class-contractchains)* -*Defined in [ethereum-types/src/index.ts:677](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L677)* +*Defined in [ethereum-types/src/index.ts:693](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L693)* ___ @@ -8358,7 +12858,7 @@ ___ *Inherited from [ContractVersionData](#interface-contractversiondata).[compiler](#compiler)* -*Defined in [ethereum-types/src/index.ts:642](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L642)* +*Defined in [ethereum-types/src/index.ts:658](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L658)* ___ @@ -8368,7 +12868,7 @@ ___ *Inherited from [ContractVersionData](#interface-contractversiondata).[compilerOutput](#compileroutput)* -*Defined in [ethereum-types/src/index.ts:652](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L652)* +*Defined in [ethereum-types/src/index.ts:668](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L668)* ___ @@ -8376,7 +12876,7 @@ ___ • **contractName**: *string* -*Defined in [ethereum-types/src/index.ts:676](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L676)* +*Defined in [ethereum-types/src/index.ts:692](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L692)* ___ @@ -8384,7 +12884,7 @@ ___ • **schemaVersion**: *string* -*Defined in [ethereum-types/src/index.ts:675](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L675)* +*Defined in [ethereum-types/src/index.ts:691](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L691)* ___ @@ -8394,7 +12894,7 @@ ___ *Inherited from [ContractVersionData](#interface-contractversiondata).[sourceCodes](#sourcecodes)* -*Defined in [ethereum-types/src/index.ts:648](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L648)* +*Defined in [ethereum-types/src/index.ts:664](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L664)* #### Type declaration: @@ -8408,7 +12908,7 @@ ___ *Inherited from [ContractVersionData](#interface-contractversiondata).[sourceTreeHashHex](#sourcetreehashhex)* -*Defined in [ethereum-types/src/index.ts:651](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L651)* +*Defined in [ethereum-types/src/index.ts:667](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L667)* ___ @@ -8418,7 +12918,7 @@ ___ *Inherited from [ContractVersionData](#interface-contractversiondata).[sources](#sources)* -*Defined in [ethereum-types/src/index.ts:643](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L643)* +*Defined in [ethereum-types/src/index.ts:659](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L659)* #### Type declaration: @@ -8435,7 +12935,7 @@ ___ • **address**: *string* -*Defined in [ethereum-types/src/index.ts:555](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L555)* +*Defined in [ethereum-types/src/index.ts:564](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L564)* ___ @@ -8443,7 +12943,7 @@ Args • **constructorArgs**: *string* -*Defined in [ethereum-types/src/index.ts:559](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L559)* +*Defined in [ethereum-types/src/index.ts:568](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L568)* ___ @@ -8451,7 +12951,7 @@ ___ • **links**: *object* -*Defined in [ethereum-types/src/index.ts:556](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L556)* +*Defined in [ethereum-types/src/index.ts:565](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L565)* #### Type declaration: @@ -8475,7 +12975,7 @@ ___ • **compiler**: *[CompilerOpts](#class-compileropts)* -*Defined in [ethereum-types/src/index.ts:642](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L642)* +*Defined in [ethereum-types/src/index.ts:658](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L658)* ___ @@ -8483,7 +12983,7 @@ ___ • **compilerOutput**: *[StandardContractOutput](#class-standardcontractoutput)* -*Defined in [ethereum-types/src/index.ts:652](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L652)* +*Defined in [ethereum-types/src/index.ts:668](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L668)* ___ @@ -8491,7 +12991,7 @@ ___ • **sourceCodes**: *object* -*Defined in [ethereum-types/src/index.ts:648](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L648)* +*Defined in [ethereum-types/src/index.ts:664](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L664)* #### Type declaration: @@ -8503,7 +13003,7 @@ ___ • **sourceTreeHashHex**: *string* -*Defined in [ethereum-types/src/index.ts:651](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L651)* +*Defined in [ethereum-types/src/index.ts:667](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L667)* ___ @@ -8511,7 +13011,7 @@ ___ • **sources**: *object* -*Defined in [ethereum-types/src/index.ts:643](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L643)* +*Defined in [ethereum-types/src/index.ts:659](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L659)* #### Type declaration: @@ -8528,7 +13028,7 @@ ___ • **components**? : *[DataItem](#class-dataitem)[]* -*Defined in [ethereum-types/src/index.ts:138](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L138)* +*Defined in [ethereum-types/src/index.ts:138](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L138)* ___ @@ -8536,7 +13036,7 @@ ___ • **internalType**? : *undefined | string* -*Defined in [ethereum-types/src/index.ts:137](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L137)* +*Defined in [ethereum-types/src/index.ts:137](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L137)* ___ @@ -8544,7 +13044,7 @@ ___ • **name**: *string* -*Defined in [ethereum-types/src/index.ts:135](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L135)* +*Defined in [ethereum-types/src/index.ts:135](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L135)* ___ @@ -8552,7 +13052,7 @@ ___ • **type**: *string* -*Defined in [ethereum-types/src/index.ts:136](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L136)* +*Defined in [ethereum-types/src/index.ts:136](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L136)*
@@ -8572,7 +13072,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[address](#address)* -*Defined in [ethereum-types/src/index.ts:435](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L435)* +*Defined in [ethereum-types/src/index.ts:444](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L444)* ___ @@ -8580,7 +13080,7 @@ ___ • **args**: *`A`* -*Defined in [ethereum-types/src/index.ts:418](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L418)* +*Defined in [ethereum-types/src/index.ts:427](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L427)* ___ @@ -8590,7 +13090,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockHash](#blockhash)* -*Defined in [ethereum-types/src/index.ts:433](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L433)* +*Defined in [ethereum-types/src/index.ts:442](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L442)* ___ @@ -8600,7 +13100,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockNumber](#blocknumber)* -*Defined in [ethereum-types/src/index.ts:434](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L434)* +*Defined in [ethereum-types/src/index.ts:443](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L443)* ___ @@ -8610,7 +13110,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[data](#data)* -*Defined in [ethereum-types/src/index.ts:436](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L436)* +*Defined in [ethereum-types/src/index.ts:445](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L445)* ___ @@ -8618,7 +13118,7 @@ ___ • **event**: *string* -*Defined in [ethereum-types/src/index.ts:417](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L417)* +*Defined in [ethereum-types/src/index.ts:426](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L426)* ___ @@ -8628,7 +13128,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[logIndex](#logindex)* -*Defined in [ethereum-types/src/index.ts:430](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L430)* +*Defined in [ethereum-types/src/index.ts:439](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L439)* ___ @@ -8638,7 +13138,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[topics](#topics)* -*Defined in [ethereum-types/src/index.ts:437](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L437)* +*Defined in [ethereum-types/src/index.ts:446](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L446)* ___ @@ -8648,7 +13148,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionHash](#transactionhash)* -*Defined in [ethereum-types/src/index.ts:432](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L432)* +*Defined in [ethereum-types/src/index.ts:441](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L441)* ___ @@ -8658,7 +13158,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionIndex](#transactionindex)* -*Defined in [ethereum-types/src/index.ts:431](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L431)* +*Defined in [ethereum-types/src/index.ts:440](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L440)*
@@ -8677,7 +13177,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[address](#address)* -*Defined in [ethereum-types/src/index.ts:435](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L435)* +*Defined in [ethereum-types/src/index.ts:444](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L444)* ___ @@ -8687,7 +13187,7 @@ ___ *Inherited from [DecodedLogEntry](#interface-decodedlogentry).[args](#args)* -*Defined in [ethereum-types/src/index.ts:418](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L418)* +*Defined in [ethereum-types/src/index.ts:427](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L427)* ___ @@ -8697,7 +13197,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockHash](#blockhash)* -*Defined in [ethereum-types/src/index.ts:433](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L433)* +*Defined in [ethereum-types/src/index.ts:442](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L442)* ___ @@ -8707,7 +13207,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockNumber](#blocknumber)* -*Defined in [ethereum-types/src/index.ts:434](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L434)* +*Defined in [ethereum-types/src/index.ts:443](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L443)* ___ @@ -8717,7 +13217,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[data](#data)* -*Defined in [ethereum-types/src/index.ts:436](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L436)* +*Defined in [ethereum-types/src/index.ts:445](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L445)* ___ @@ -8727,7 +13227,7 @@ ___ *Inherited from [DecodedLogEntry](#interface-decodedlogentry).[event](#event)* -*Defined in [ethereum-types/src/index.ts:417](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L417)* +*Defined in [ethereum-types/src/index.ts:426](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L426)* ___ @@ -8737,7 +13237,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[logIndex](#logindex)* -*Defined in [ethereum-types/src/index.ts:430](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L430)* +*Defined in [ethereum-types/src/index.ts:439](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L439)* ___ @@ -8745,7 +13245,7 @@ ___ • **removed**: *boolean* -*Defined in [ethereum-types/src/index.ts:422](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L422)* +*Defined in [ethereum-types/src/index.ts:431](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L431)* ___ @@ -8755,7 +13255,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[topics](#topics)* -*Defined in [ethereum-types/src/index.ts:437](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L437)* +*Defined in [ethereum-types/src/index.ts:446](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L446)* ___ @@ -8765,7 +13265,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionHash](#transactionhash)* -*Defined in [ethereum-types/src/index.ts:432](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L432)* +*Defined in [ethereum-types/src/index.ts:441](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L441)* ___ @@ -8775,7 +13275,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionIndex](#transactionindex)* -*Defined in [ethereum-types/src/index.ts:431](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L431)* +*Defined in [ethereum-types/src/index.ts:440](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L440)*
@@ -8788,7 +13288,7 @@ ___ • **author**? : *undefined | string* -*Defined in [ethereum-types/src/index.ts:629](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L629)* +*Defined in [ethereum-types/src/index.ts:645](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L645)* ___ @@ -8796,7 +13296,7 @@ ___ • **methods**: *object* -*Defined in [ethereum-types/src/index.ts:630](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L630)* +*Defined in [ethereum-types/src/index.ts:646](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L646)* #### Type declaration: @@ -8808,7 +13308,7 @@ ___ • **title**? : *undefined | string* -*Defined in [ethereum-types/src/index.ts:628](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L628)* +*Defined in [ethereum-types/src/index.ts:644](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L644)*
@@ -8821,7 +13321,7 @@ ___ • **isEIP1193**: *boolean* -*Defined in [ethereum-types/src/index.ts:73](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L73)* +*Defined in [ethereum-types/src/index.ts:73](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L73)* ## Methods @@ -8829,7 +13329,7 @@ ___ ▸ **on**(`event`: [EIP1193Event](#eip1193event), `listener`: function): *this* -*Defined in [ethereum-types/src/index.ts:75](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L75)* +*Defined in [ethereum-types/src/index.ts:75](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L75)* **Parameters:** @@ -8853,7 +13353,7 @@ ___ ▸ **send**(`method`: string, `params?`: any[]): *`Promise`* -*Defined in [ethereum-types/src/index.ts:74](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L74)* +*Defined in [ethereum-types/src/index.ts:74](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L74)* **Parameters:** @@ -8875,11 +13375,19 @@ Name | Type | ## Properties +### linkReferences + +• **linkReferences**: *[EvmBytecodeOutputLinkReferences](#class-evmbytecodeoutputlinkreferences)* + +*Defined in [ethereum-types/src/index.ts:632](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L632)* + +___ + ### object • **object**: *string* -*Defined in [ethereum-types/src/index.ts:623](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L623)* +*Defined in [ethereum-types/src/index.ts:633](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L633)* ___ @@ -8887,20 +13395,25 @@ ___ • **sourceMap**: *string* -*Defined in [ethereum-types/src/index.ts:624](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L624)* +*Defined in [ethereum-types/src/index.ts:634](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L634)*
-# Interface: EvmOutput +# Interface: EvmBytecodeOutputLinkReferences -## Properties +## Hierarchy + +* **EvmOutput** + + +## Properties ### bytecode • **bytecode**: *[EvmBytecodeOutput](#class-evmbytecodeoutput)* -*Defined in [ethereum-types/src/index.ts:618](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L618)* +*Defined in [ethereum-types/src/index.ts:627](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L627)* ___ @@ -8908,7 +13421,7 @@ ___ • **deployedBytecode**: *[EvmBytecodeOutput](#class-evmbytecodeoutput)* -*Defined in [ethereum-types/src/index.ts:619](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L619)* +*Defined in [ethereum-types/src/index.ts:628](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L628)*
@@ -8921,7 +13434,7 @@ ___ • **payable**: *boolean* -*Defined in [ethereum-types/src/index.ts:112](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L112)* +*Defined in [ethereum-types/src/index.ts:112](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L112)* ___ @@ -8929,7 +13442,7 @@ ___ • **type**: *string* -*Defined in [ethereum-types/src/index.ts:111](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L111)* +*Defined in [ethereum-types/src/index.ts:111](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L111)*
@@ -8944,7 +13457,7 @@ ___ ▸ **sendAsync**(`payload`: [JSONRPCRequestPayload](_ethereum_types_src_index_.jsonrpcrequestpayload.md), `callback`: [JSONRPCErrorCallback](#jsonrpcerrorcallback)): *void* -*Defined in [ethereum-types/src/index.ts:14](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L14)* +*Defined in [ethereum-types/src/index.ts:14](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L14)* **Parameters:** @@ -8959,16 +13472,21 @@ Name | Type | -# Interface: JSONRPCRequestPayload +# Interface: GethCallOverrides -## Properties +## Hierarchy + +* **JSONRPCRequestPayload** + + +## Properties ### id • **id**: *number* -*Defined in [ethereum-types/src/index.ts:331](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L331)* +*Defined in [ethereum-types/src/index.ts:331](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L331)* ___ @@ -8976,7 +13494,7 @@ ___ • **jsonrpc**: *string* -*Defined in [ethereum-types/src/index.ts:332](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L332)* +*Defined in [ethereum-types/src/index.ts:332](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L332)* ___ @@ -8984,7 +13502,7 @@ ___ • **method**: *string* -*Defined in [ethereum-types/src/index.ts:330](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L330)* +*Defined in [ethereum-types/src/index.ts:330](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L330)* ___ @@ -8992,7 +13510,7 @@ ___ • **params**: *any[]* -*Defined in [ethereum-types/src/index.ts:329](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L329)* +*Defined in [ethereum-types/src/index.ts:329](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L329)*
@@ -9005,7 +13523,7 @@ ___ • **code**: *number* -*Defined in [ethereum-types/src/index.ts:337](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L337)* +*Defined in [ethereum-types/src/index.ts:337](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L337)* ___ @@ -9013,7 +13531,7 @@ ___ • **message**: *string* -*Defined in [ethereum-types/src/index.ts:336](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L336)* +*Defined in [ethereum-types/src/index.ts:336](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L336)*
@@ -9026,7 +13544,7 @@ ___ • **error**? : *[JSONRPCResponseError](#class-jsonrpcresponseerror)* -*Defined in [ethereum-types/src/index.ts:344](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L344)* +*Defined in [ethereum-types/src/index.ts:344](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L344)* ___ @@ -9034,7 +13552,7 @@ ___ • **id**: *number* -*Defined in [ethereum-types/src/index.ts:342](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L342)* +*Defined in [ethereum-types/src/index.ts:342](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L342)* ___ @@ -9042,7 +13560,7 @@ ___ • **jsonrpc**: *string* -*Defined in [ethereum-types/src/index.ts:343](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L343)* +*Defined in [ethereum-types/src/index.ts:343](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L343)* ___ @@ -9050,7 +13568,7 @@ ___ • **result**: *any* -*Defined in [ethereum-types/src/index.ts:341](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L341)* +*Defined in [ethereum-types/src/index.ts:341](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L341)*
@@ -9063,7 +13581,7 @@ ___ • **address**: *string* -*Defined in [ethereum-types/src/index.ts:435](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L435)* +*Defined in [ethereum-types/src/index.ts:444](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L444)* ___ @@ -9071,7 +13589,7 @@ ___ • **blockHash**: *string | null* -*Defined in [ethereum-types/src/index.ts:433](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L433)* +*Defined in [ethereum-types/src/index.ts:442](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L442)* ___ @@ -9079,7 +13597,7 @@ ___ • **blockNumber**: *number | null* -*Defined in [ethereum-types/src/index.ts:434](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L434)* +*Defined in [ethereum-types/src/index.ts:443](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L443)* ___ @@ -9087,7 +13605,7 @@ ___ • **data**: *string* -*Defined in [ethereum-types/src/index.ts:436](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L436)* +*Defined in [ethereum-types/src/index.ts:445](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L445)* ___ @@ -9095,7 +13613,7 @@ ___ • **logIndex**: *number | null* -*Defined in [ethereum-types/src/index.ts:430](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L430)* +*Defined in [ethereum-types/src/index.ts:439](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L439)* ___ @@ -9103,7 +13621,7 @@ ___ • **topics**: *string[]* -*Defined in [ethereum-types/src/index.ts:437](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L437)* +*Defined in [ethereum-types/src/index.ts:446](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L446)* ___ @@ -9111,7 +13629,7 @@ ___ • **transactionHash**: *string* -*Defined in [ethereum-types/src/index.ts:432](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L432)* +*Defined in [ethereum-types/src/index.ts:441](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L441)* ___ @@ -9119,7 +13637,7 @@ ___ • **transactionIndex**: *number | null* -*Defined in [ethereum-types/src/index.ts:431](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L431)* +*Defined in [ethereum-types/src/index.ts:440](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L440)*
@@ -9134,7 +13652,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[address](#address)* -*Defined in [ethereum-types/src/index.ts:435](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L435)* +*Defined in [ethereum-types/src/index.ts:444](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L444)* ___ @@ -9144,7 +13662,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockHash](#blockhash)* -*Defined in [ethereum-types/src/index.ts:433](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L433)* +*Defined in [ethereum-types/src/index.ts:442](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L442)* ___ @@ -9154,7 +13672,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockNumber](#blocknumber)* -*Defined in [ethereum-types/src/index.ts:434](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L434)* +*Defined in [ethereum-types/src/index.ts:443](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L443)* ___ @@ -9164,7 +13682,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[data](#data)* -*Defined in [ethereum-types/src/index.ts:436](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L436)* +*Defined in [ethereum-types/src/index.ts:445](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L445)* ___ @@ -9174,7 +13692,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[logIndex](#logindex)* -*Defined in [ethereum-types/src/index.ts:430](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L430)* +*Defined in [ethereum-types/src/index.ts:439](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L439)* ___ @@ -9182,7 +13700,7 @@ ___ • **removed**: *boolean* -*Defined in [ethereum-types/src/index.ts:426](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L426)* +*Defined in [ethereum-types/src/index.ts:435](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L435)* ___ @@ -9192,7 +13710,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[topics](#topics)* -*Defined in [ethereum-types/src/index.ts:437](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L437)* +*Defined in [ethereum-types/src/index.ts:446](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L446)* ___ @@ -9202,7 +13720,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionHash](#transactionhash)* -*Defined in [ethereum-types/src/index.ts:432](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L432)* +*Defined in [ethereum-types/src/index.ts:441](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L441)* ___ @@ -9212,7 +13730,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionIndex](#transactionindex)* -*Defined in [ethereum-types/src/index.ts:431](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L431)* +*Defined in [ethereum-types/src/index.ts:440](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L440)*
@@ -9231,7 +13749,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[address](#address)* -*Defined in [ethereum-types/src/index.ts:435](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L435)* +*Defined in [ethereum-types/src/index.ts:444](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L444)* ___ @@ -9241,7 +13759,7 @@ ___ *Inherited from [DecodedLogEntry](#interface-decodedlogentry).[args](#args)* -*Defined in [ethereum-types/src/index.ts:418](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L418)* +*Defined in [ethereum-types/src/index.ts:427](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L427)* ___ @@ -9251,7 +13769,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockHash](#blockhash)* -*Defined in [ethereum-types/src/index.ts:433](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L433)* +*Defined in [ethereum-types/src/index.ts:442](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L442)* ___ @@ -9261,7 +13779,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[blockNumber](#blocknumber)* -*Defined in [ethereum-types/src/index.ts:434](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L434)* +*Defined in [ethereum-types/src/index.ts:443](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L443)* ___ @@ -9271,7 +13789,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[data](#data)* -*Defined in [ethereum-types/src/index.ts:436](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L436)* +*Defined in [ethereum-types/src/index.ts:445](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L445)* ___ @@ -9281,7 +13799,7 @@ ___ *Inherited from [DecodedLogEntry](#interface-decodedlogentry).[event](#event)* -*Defined in [ethereum-types/src/index.ts:417](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L417)* +*Defined in [ethereum-types/src/index.ts:426](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L426)* ___ @@ -9291,7 +13809,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[logIndex](#logindex)* -*Defined in [ethereum-types/src/index.ts:430](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L430)* +*Defined in [ethereum-types/src/index.ts:439](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L439)* ___ @@ -9301,7 +13819,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[topics](#topics)* -*Defined in [ethereum-types/src/index.ts:437](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L437)* +*Defined in [ethereum-types/src/index.ts:446](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L446)* ___ @@ -9311,7 +13829,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionHash](#transactionhash)* -*Defined in [ethereum-types/src/index.ts:432](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L432)* +*Defined in [ethereum-types/src/index.ts:441](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L441)* ___ @@ -9321,7 +13839,7 @@ ___ *Inherited from [LogEntry](#interface-logentry).[transactionIndex](#transactionindex)* -*Defined in [ethereum-types/src/index.ts:431](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L431)* +*Defined in [ethereum-types/src/index.ts:440](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L440)*
@@ -9330,11 +13848,11 @@ ___ ## Properties -### constant +### `Optional` constant -• **constant**: *boolean* +• **constant**? : *undefined | false | true* -*Defined in [ethereum-types/src/index.ts:94](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L94)* +*Defined in [ethereum-types/src/index.ts:94](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L94)* ___ @@ -9342,7 +13860,7 @@ ___ • **inputs**: *[DataItem](#class-dataitem)[]* -*Defined in [ethereum-types/src/index.ts:92](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L92)* +*Defined in [ethereum-types/src/index.ts:92](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L92)* ___ @@ -9350,7 +13868,7 @@ ___ • **name**: *string* -*Defined in [ethereum-types/src/index.ts:91](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L91)* +*Defined in [ethereum-types/src/index.ts:91](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L91)* ___ @@ -9358,15 +13876,15 @@ ___ • **outputs**: *[DataItem](#class-dataitem)[]* -*Defined in [ethereum-types/src/index.ts:93](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L93)* +*Defined in [ethereum-types/src/index.ts:93](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L93)* ___ -### payable +### `Optional` payable -• **payable**: *boolean* +• **payable**? : *undefined | false | true* -*Defined in [ethereum-types/src/index.ts:96](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L96)* +*Defined in [ethereum-types/src/index.ts:96](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L96)* ___ @@ -9374,7 +13892,7 @@ ___ • **stateMutability**: *[StateMutability](#statemutability)* -*Defined in [ethereum-types/src/index.ts:95](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L95)* +*Defined in [ethereum-types/src/index.ts:95](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L95)* ___ @@ -9382,7 +13900,7 @@ ___ • **type**: *string* -*Defined in [ethereum-types/src/index.ts:90](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L90)* +*Defined in [ethereum-types/src/index.ts:90](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L90)*
@@ -9395,7 +13913,7 @@ ___ • **enabled**: *boolean* -*Defined in [ethereum-types/src/index.ts:709](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L709)* +*Defined in [ethereum-types/src/index.ts:725](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L725)* ___ @@ -9403,7 +13921,7 @@ ___ • **runs**? : *undefined | number* -*Defined in [ethereum-types/src/index.ts:710](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L710)* +*Defined in [ethereum-types/src/index.ts:726](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L726)*
@@ -9420,7 +13938,7 @@ ___ • **arguments**? : *[DataItem](#class-dataitem)[]* -*Defined in [ethereum-types/src/index.ts:122](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L122)* +*Defined in [ethereum-types/src/index.ts:122](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L122)* ___ @@ -9428,7 +13946,7 @@ ___ • **name**: *string* -*Defined in [ethereum-types/src/index.ts:121](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L121)* +*Defined in [ethereum-types/src/index.ts:121](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L121)* ___ @@ -9436,391 +13954,12 @@ ___ • **type**: *"error"* -*Defined in [ethereum-types/src/index.ts:120](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L120)* +*Defined in [ethereum-types/src/index.ts:120](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L120)*
-# Class: CoordinatorContract -## Constructors - - - -\+ **new CoordinatorContract**(`address`: string, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults?`: `Partial`, `logDecodeDependencies?`: undefined | object, `deployedBytecode`: string | undefined): *[CoordinatorContract](#class-coordinatorcontract)* - -*Overrides void* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:1163](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L1163)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`address` | string | - | -`supportedProvider` | [SupportedProvider](#supportedprovider) | - | -`txDefaults?` | `Partial` | - | -`logDecodeDependencies?` | undefined \| object | - | -`deployedBytecode` | string \| undefined | CoordinatorContract.deployedBytecode | - -**Returns:** *[CoordinatorContract](#class-coordinatorcontract)* - -## Properties - -### `Optional` _deployedBytecodeIfExists - -• **_deployedBytecodeIfExists**? : *`Buffer`* - - - -Defined in base-contract/lib/src/index.d.ts:32 - -___ - -### abi - -• **abi**: *[ContractAbi](#contractabi)* - - - -Defined in base-contract/lib/src/index.d.ts:28 - -___ - -### address - -• **address**: *string* - - - -Defined in base-contract/lib/src/index.d.ts:29 - -___ - -Args - -• **constructorArgs**: *any[]* - - - -Defined in base-contract/lib/src/index.d.ts:31 - -___ - -### contractName - -• **contractName**: *string* - - - -Defined in base-contract/lib/src/index.d.ts:30 - -## Methods - -### EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH - -▸ **EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:483](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L483)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### EIP712_COORDINATOR_DOMAIN_HASH - -▸ **EIP712_COORDINATOR_DOMAIN_HASH**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:533](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L533)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### EIP712_COORDINATOR_DOMAIN_NAME - -▸ **EIP712_COORDINATOR_DOMAIN_NAME**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:580](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L580)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### EIP712_COORDINATOR_DOMAIN_VERSION - -▸ **EIP712_COORDINATOR_DOMAIN_VERSION**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:627](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L627)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### EIP712_EXCHANGE_DOMAIN_HASH - -▸ **EIP712_EXCHANGE_DOMAIN_HASH**(): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:677](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L677)* - -**Returns:** *`ContractFunctionObj`* - -___ - -### assertValidCoordinatorApprovals - -▸ **assertValidCoordinatorApprovals**(`transaction`: object, `txOrigin`: string, `transactionSignature`: string, `approvalSignatures`: string[]): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:736](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L736)* - -Validates that the 0x transaction has been approved by all of the feeRecipients -that correspond to each order in the transaction's Exchange calldata. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`transaction` | object | 0x transaction containing salt, signerAddress, and data. | -`txOrigin` | string | Required signer of Ethereum transaction calling this function. | -`transactionSignature` | string | Proof that the transaction has been signed by the signer. | -`approvalSignatures` | string[] | Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata. | - -**Returns:** *`ContractFunctionObj`* - -___ - -### decodeOrdersFromFillData - -▸ **decodeOrdersFromFillData**(`data`: string): *`ContractFunctionObj>`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:811](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L811)* - -Decodes the orders from Exchange calldata representing any fill method. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`data` | string | Exchange calldata representing a fill method. | - -**Returns:** *`ContractFunctionObj>`* - -orders The orders from the Exchange calldata. - -___ - -### executeTransaction - -▸ **executeTransaction**(`transaction`: object, `txOrigin`: string, `transactionSignature`: string, `approvalSignatures`: string[]): *`ContractTxFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:919](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L919)* - -Executes a 0x transaction that has been signed by the feeRecipients that correspond to -each order in the transaction's Exchange calldata. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`transaction` | object | 0x transaction containing salt, signerAddress, and data. | -`txOrigin` | string | Required signer of Ethereum transaction calling this function. | -`transactionSignature` | string | Proof that the transaction has been signed by the signer. | -`approvalSignatures` | string[] | Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata. | - -**Returns:** *`ContractTxFunctionObj`* - -___ - -### getABIDecodedReturnData - -▸ **getABIDecodedReturnData**<**T**>(`methodName`: string, `callData`: string): *`T`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:469](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L469)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | -`callData` | string | - -**Returns:** *`T`* - -___ - -### getABIDecodedTransactionData - -▸ **getABIDecodedTransactionData**<**T**>(`methodName`: string, `callData`: string): *`T`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:462](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L462)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | -`callData` | string | - -**Returns:** *`T`* - -___ - -### getCoordinatorApprovalHash - -▸ **getCoordinatorApprovalHash**(`approval`: object): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:1060](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L1060)* - -Calculates the EIP712 hash of the Coordinator approval mesasage using the domain -separator of this contract. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`approval` | object | Coordinator approval message containing the transaction hash, and transaction signature. | - -**Returns:** *`ContractFunctionObj`* - -approvalHash EIP712 hash of the Coordinator approval message with the domain separator of this contract. - -___ - -### getFunctionSignature - -▸ **getFunctionSignature**(`methodName`: string): *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:456](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L456)* - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | - -**Returns:** *string* - -___ - -### getSelector - -▸ **getSelector**(`methodName`: string): *string* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:476](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L476)* - -**Parameters:** - -Name | Type | ------- | ------ | -`methodName` | string | - -**Returns:** *string* - -___ - -### getSignerAddress - -▸ **getSignerAddress**(`hash`: string, `signature`: string): *`ContractFunctionObj`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:1122](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L1122)* - -Recovers the address of a signer given a hash and signature. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`hash` | string | Any 32 byte hash. | -`signature` | string | Proof that the hash has been signed by signer. | - -**Returns:** *`ContractFunctionObj`* - -signerAddress Address of the signer. - -___ - -### `Static` ABI - -▸ **ABI**(): *[ContractAbi](#contractabi)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:128](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L128)* - -**Returns:** *[ContractAbi](#contractabi)* - -The contract ABI - -___ - -### `Static` deployAsync - -▸ **deployAsync**(`bytecode`: string, `abi`: [ContractAbi](#contractabi), `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange`: string, `chainId`: `BigNumber`): *`Promise`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:80](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L80)* - -**Parameters:** - -Name | Type | ------- | ------ | -`bytecode` | string | -`abi` | [ContractAbi](#contractabi) | -`supportedProvider` | [SupportedProvider](#supportedprovider) | -`txDefaults` | `Partial` | -`logDecodeDependencies` | object | -`exchange` | string | -`chainId` | `BigNumber` | - -**Returns:** *`Promise`* - -___ - -### `Static` deployFrom0xArtifactAsync - -▸ **deployFrom0xArtifactAsync**(`artifact`: `ContractArtifact` | `SimpleContractArtifact`, `supportedProvider`: [SupportedProvider](#supportedprovider), `txDefaults`: `Partial`, `logDecodeDependencies`: object, `exchange`: string, `chainId`: `BigNumber`): *`Promise`* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts#L45)* - -**Parameters:** - -Name | Type | ------- | ------ | -`artifact` | `ContractArtifact` \| `SimpleContractArtifact` | -`supportedProvider` | [SupportedProvider](#supportedprovider) | -`txDefaults` | `Partial` | -`logDecodeDependencies` | object | -`exchange` | string | -`chainId` | `BigNumber` | - -**Returns:** *`Promise`* - -___ - -### `Static` strictArgumentEncodingCheck - -▸ **strictArgumentEncodingCheck**(`inputAbi`: `DataItem`[], `args`: any[]): *string* - - - -Defined in base-contract/lib/src/index.d.ts:42 - -**Parameters:** - -Name | Type | ------- | ------ | -`inputAbi` | `DataItem`[] | -`args` | any[] | - -**Returns:** *string* - -
- @@ -9834,7 +13973,7 @@ Name | Type | • **abi**: *[ContractAbi](#contractabi)* -*Defined in [ethereum-types/src/index.ts:565](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L565)* +*Defined in [ethereum-types/src/index.ts:574](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L574)* ___ @@ -9842,7 +13981,7 @@ ___ • **devdoc**? : *[DevdocOutput](#class-devdocoutput)* -*Defined in [ethereum-types/src/index.ts:567](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L567)* +*Defined in [ethereum-types/src/index.ts:576](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L576)* ___ @@ -9850,7 +13989,7 @@ ___ • **evm**: *[EvmOutput](#class-evmoutput)* -*Defined in [ethereum-types/src/index.ts:566](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L566)* +*Defined in [ethereum-types/src/index.ts:575](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L575)*
@@ -9879,7 +14018,7 @@ ___ *Overrides [DataItem](_ethereum_types_src_index_.dataitem.md).[components](#optional-components)* -*Defined in [ethereum-types/src/index.ts:142](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L142)* +*Defined in [ethereum-types/src/index.ts:142](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L142)* ___ @@ -9889,7 +14028,7 @@ ___ *Inherited from [DataItem](#interface-dataitem).[internalType](#optional-internaltype)* -*Defined in [ethereum-types/src/index.ts:137](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L137)* +*Defined in [ethereum-types/src/index.ts:137](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L137)* ___ @@ -9899,7 +14038,7 @@ ___ *Inherited from [DataItem](#interface-dataitem).[name](#name)* -*Defined in [ethereum-types/src/index.ts:135](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L135)* +*Defined in [ethereum-types/src/index.ts:135](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L135)* ___ @@ -9909,7 +14048,7 @@ ___ *Inherited from [DataItem](#interface-dataitem).[type](#type)* -*Defined in [ethereum-types/src/index.ts:136](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L136)* +*Defined in [ethereum-types/src/index.ts:136](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L136)*
@@ -9924,7 +14063,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[data](#optional-data)* -*Defined in [ethereum-types/src/index.ts:394](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L394)* +*Defined in [ethereum-types/src/index.ts:394](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L394)* ___ @@ -9932,7 +14071,7 @@ ___ • **from**: *string* -*Defined in [ethereum-types/src/index.ts:399](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L399)* +*Defined in [ethereum-types/src/index.ts:399](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L399)* ___ @@ -9942,7 +14081,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[gas](#optional-gas)* -*Defined in [ethereum-types/src/index.ts:392](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L392)* +*Defined in [ethereum-types/src/index.ts:392](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L392)* ___ @@ -9952,7 +14091,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[gasPrice](#optional-gasprice)* -*Defined in [ethereum-types/src/index.ts:393](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L393)* +*Defined in [ethereum-types/src/index.ts:393](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L393)* ___ @@ -9962,7 +14101,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[nonce](#optional-nonce)* -*Defined in [ethereum-types/src/index.ts:395](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L395)* +*Defined in [ethereum-types/src/index.ts:395](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L395)* ___ @@ -9972,7 +14111,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[to](#optional-to)* -*Defined in [ethereum-types/src/index.ts:390](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L390)* +*Defined in [ethereum-types/src/index.ts:390](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L390)* ___ @@ -9982,7 +14121,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[value](#optional-value)* -*Defined in [ethereum-types/src/index.ts:391](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L391)* +*Defined in [ethereum-types/src/index.ts:391](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L391)*
@@ -9997,7 +14136,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[data](#optional-data)* -*Defined in [ethereum-types/src/index.ts:394](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L394)* +*Defined in [ethereum-types/src/index.ts:394](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L394)* ___ @@ -10007,7 +14146,7 @@ ___ *Inherited from [TxData](#interface-txdata).[from](#from)* -*Defined in [ethereum-types/src/index.ts:399](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L399)* +*Defined in [ethereum-types/src/index.ts:399](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L399)* ___ @@ -10017,7 +14156,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[gas](#optional-gas)* -*Defined in [ethereum-types/src/index.ts:392](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L392)* +*Defined in [ethereum-types/src/index.ts:392](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L392)* ___ @@ -10027,7 +14166,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[gasPrice](#optional-gasprice)* -*Defined in [ethereum-types/src/index.ts:393](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L393)* +*Defined in [ethereum-types/src/index.ts:393](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L393)* ___ @@ -10037,7 +14176,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[nonce](#optional-nonce)* -*Defined in [ethereum-types/src/index.ts:395](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L395)* +*Defined in [ethereum-types/src/index.ts:395](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L395)* ___ @@ -10047,7 +14186,7 @@ ___ *Inherited from [CallTxDataBase](#interface-calltxdatabase).[to](#optional-to)* -*Defined in [ethereum-types/src/index.ts:390](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L390)* +*Defined in [ethereum-types/src/index.ts:390](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L390)* ___ @@ -10057,7 +14196,7 @@ ___ *Overrides [CallTxDataBase](_ethereum_types_src_index_.calltxdatabase.md).[value](#optional-value)* -*Defined in [ethereum-types/src/index.ts:443](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L443)* +*Defined in [ethereum-types/src/index.ts:452](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L452)*
@@ -10074,7 +14213,7 @@ This interface allowed sending synchonous requests, support for which was later ▸ **send**(`payload`: [JSONRPCRequestPayload](_ethereum_types_src_index_.jsonrpcrequestpayload.md)): *[JSONRPCResponsePayload](#class-jsonrpcresponsepayload)* -*Defined in [ethereum-types/src/index.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L45)* +*Defined in [ethereum-types/src/index.ts:45](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L45)* **Parameters:** @@ -10090,7 +14229,7 @@ ___ ▸ **sendAsync**(`payload`: [JSONRPCRequestPayload](_ethereum_types_src_index_.jsonrpcrequestpayload.md), `callback`: [JSONRPCErrorCallback](#jsonrpcerrorcallback)): *void* -*Defined in [ethereum-types/src/index.ts:44](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L44)* +*Defined in [ethereum-types/src/index.ts:44](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L44)* **Parameters:** @@ -10116,7 +14255,7 @@ before the first attempts to conform to EIP1193 ▸ **send**(`payload`: [JSONRPCRequestPayload](_ethereum_types_src_index_.jsonrpcrequestpayload.md), `callback`: [JSONRPCErrorCallback](#jsonrpcerrorcallback)): *void* -*Defined in [ethereum-types/src/index.ts:54](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L54)* +*Defined in [ethereum-types/src/index.ts:54](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L54)* **Parameters:** @@ -10142,7 +14281,7 @@ however it does not conform entirely. ▸ **send**(`method`: string, `params?`: any[]): *`Promise`* -*Defined in [ethereum-types/src/index.ts:63](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L63)* +*Defined in [ethereum-types/src/index.ts:63](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L63)* **Parameters:** @@ -10168,7 +14307,7 @@ add here • **isMetaMask**? : *undefined | false | true* -*Defined in [ethereum-types/src/index.ts:31](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L31)* +*Defined in [ethereum-types/src/index.ts:31](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L31)* ___ @@ -10176,7 +14315,7 @@ ___ • **isParity**? : *undefined | false | true* -*Defined in [ethereum-types/src/index.ts:32](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L32)* +*Defined in [ethereum-types/src/index.ts:32](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L32)* ___ @@ -10184,7 +14323,7 @@ ___ • **isZeroExProvider**? : *undefined | false | true* -*Defined in [ethereum-types/src/index.ts:30](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L30)* +*Defined in [ethereum-types/src/index.ts:30](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L30)* ## Methods @@ -10192,7 +14331,7 @@ ___ ▸ **enable**(): *`Promise`* -*Defined in [ethereum-types/src/index.ts:34](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L34)* +*Defined in [ethereum-types/src/index.ts:34](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L34)* **Returns:** *`Promise`* @@ -10202,7 +14341,7 @@ ___ ▸ **sendAsync**(`payload`: [JSONRPCRequestPayload](_ethereum_types_src_index_.jsonrpcrequestpayload.md), `callback`: [JSONRPCErrorCallback](#jsonrpcerrorcallback)): *void* -*Defined in [ethereum-types/src/index.ts:35](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L35)* +*Defined in [ethereum-types/src/index.ts:35](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L35)* **Parameters:** @@ -10219,7 +14358,7 @@ ___ ▸ **stop**(): *void* -*Defined in [ethereum-types/src/index.ts:33](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L33)* +*Defined in [ethereum-types/src/index.ts:33](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L33)* **Returns:** *void* @@ -10258,7 +14397,7 @@ ___ • **isRemoved**: *boolean* -*Defined in [types/src/index.ts:844](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L844)* +*Defined in [types/src/index.ts:872](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L872)* ___ @@ -10266,7 +14405,7 @@ ___ • **log**: *`LogWithDecodedArgs`* -*Defined in [types/src/index.ts:845](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L845)* +*Defined in [types/src/index.ts:873](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L873)*
@@ -10293,6 +14432,10 @@ ___ + + + + @@ -10318,7 +14461,7 @@ ___ • **keyName**: *string* -*Defined in [types/src/index.ts:691](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L691)* +*Defined in [types/src/index.ts:719](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L719)* ___ @@ -10326,7 +14469,7 @@ ___ • **keyType**: *[Type](#class-type)* -*Defined in [types/src/index.ts:692](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L692)* +*Defined in [types/src/index.ts:720](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L720)* ___ @@ -10334,7 +14477,7 @@ ___ • **valueName**: *string* -*Defined in [types/src/index.ts:693](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L693)* +*Defined in [types/src/index.ts:721](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L721)*
@@ -10397,7 +14540,7 @@ ___ • **chains**: *`ContractChains`* -*Defined in [types/src/index.ts:861](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L861)* +*Defined in [types/src/index.ts:889](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L889)* ___ @@ -10405,7 +14548,7 @@ ___ • **compilerOutput**: *[SimpleStandardContractOutput](#class-simplestandardcontractoutput)* -*Defined in [types/src/index.ts:860](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L860)* +*Defined in [types/src/index.ts:888](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L888)* ___ @@ -10413,7 +14556,7 @@ ___ • **contractName**: *string* -*Defined in [types/src/index.ts:859](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L859)* +*Defined in [types/src/index.ts:887](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L887)* ___ @@ -10421,7 +14564,7 @@ ___ • **schemaVersion**: *string* -*Defined in [types/src/index.ts:858](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L858)* +*Defined in [types/src/index.ts:886](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L886)*
@@ -10434,7 +14577,7 @@ ___ • **object**: *string* -*Defined in [types/src/index.ts:875](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L875)* +*Defined in [types/src/index.ts:903](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L903)*
@@ -10447,7 +14590,7 @@ ___ • **bytecode**: *[SimpleEvmBytecodeOutput](#class-simpleevmbytecodeoutput)* -*Defined in [types/src/index.ts:871](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L871)* +*Defined in [types/src/index.ts:899](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L899)*
@@ -10460,7 +14603,7 @@ ___ • **abi**: *[ContractAbi](#contractabi)* -*Defined in [types/src/index.ts:865](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L865)* +*Defined in [types/src/index.ts:893](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L893)* ___ @@ -10468,7 +14611,7 @@ ___ • **devdoc**? : *[DevdocOutput](#class-devdocoutput)* -*Defined in [types/src/index.ts:867](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L867)* +*Defined in [types/src/index.ts:895](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L895)* ___ @@ -10476,7 +14619,7 @@ ___ • **evm**: *[SimpleEvmOutput](#class-simpleevmoutput)* -*Defined in [types/src/index.ts:866](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L866)* +*Defined in [types/src/index.ts:894](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L894)*
@@ -10515,165 +14658,6 @@ ___ - - - - -## Type aliases - - - - - - - - - - - -### EventCallback - -Ƭ **EventCallback**: *function* - -*Defined in [types/src/index.ts:848](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/types/src/index.ts#L848)* - -#### Type declaration: - -▸ (`err`: null | `Error`, `log?`: [DecodedLogEvent](#interface-decodedlogevent)‹*`ArgsType`*›): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`err` | null \| `Error` | -`log?` | [DecodedLogEvent](#interface-decodedlogevent)‹*`ArgsType`*› | - -___ - - - - - - - - - - - - - -
- - - - -## Type aliases - -### CoordinatorRegistryEventArgs - -Ƭ **CoordinatorRegistryEventArgs**: *[CoordinatorRegistryCoordinatorEndpointSetEventArgs](#interface-coordinatorregistrycoordinatorendpointseteventargs)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts#L37)* - -
- - - -
- - - - -## Type aliases - -### DummyERC20TokenEventArgs - -Ƭ **DummyERC20TokenEventArgs**: *[DummyERC20TokenApprovalEventArgs](#interface-dummyerc20tokenapprovaleventargs) | [DummyERC20TokenTransferEventArgs](#interface-dummyerc20tokentransfereventargs)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts#L37)* - -
- - - - -## Type aliases - -### DummyERC721TokenEventArgs - -Ƭ **DummyERC721TokenEventArgs**: *[DummyERC721TokenApprovalEventArgs](#interface-dummyerc721tokenapprovaleventargs) | [DummyERC721TokenApprovalForAllEventArgs](#interface-dummyerc721tokenapprovalforalleventargs) | [DummyERC721TokenTransferEventArgs](#interface-dummyerc721tokentransfereventargs)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts#L37)* - -
- - - - -## Type aliases - -### ERC20TokenEventArgs - -Ƭ **ERC20TokenEventArgs**: *[ERC20TokenTransferEventArgs](#interface-erc20tokentransfereventargs) | [ERC20TokenApprovalEventArgs](#interface-erc20tokenapprovaleventargs)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc20_token.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts#L37)* - -
- - - - -## Type aliases - -### ERC721TokenEventArgs - -Ƭ **ERC721TokenEventArgs**: *[ERC721TokenApprovalEventArgs](#interface-erc721tokenapprovaleventargs) | [ERC721TokenApprovalForAllEventArgs](#interface-erc721tokenapprovalforalleventargs) | [ERC721TokenTransferEventArgs](#interface-erc721tokentransfereventargs)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/erc721_token.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts#L37)* - -
- - - - -## Type aliases - -### ExchangeEventArgs - -Ƭ **ExchangeEventArgs**: *[ExchangeAssetProxyRegisteredEventArgs](#interface-exchangeassetproxyregisteredeventargs) | [ExchangeCancelEventArgs](#interface-exchangecanceleventargs) | [ExchangeCancelUpToEventArgs](#interface-exchangecanceluptoeventargs) | [ExchangeFillEventArgs](#interface-exchangefilleventargs) | [ExchangeProtocolFeeCollectorAddressEventArgs](#interface-exchangeprotocolfeecollectoraddresseventargs) | [ExchangeProtocolFeeMultiplierEventArgs](#interface-exchangeprotocolfeemultipliereventargs) | [ExchangeSignatureValidatorApprovalEventArgs](#interface-exchangesignaturevalidatorapprovaleventargs) | [ExchangeTransactionExecutionEventArgs](#interface-exchangetransactionexecutioneventargs)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/exchange.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts#L37)* - -
- - - -
- - - -
- - - -
- - - -
- - - - -## Type aliases - -### WETH9EventArgs - -Ƭ **WETH9EventArgs**: *[WETH9ApprovalEventArgs](#interface-weth9approvaleventargs) | [WETH9TransferEventArgs](#interface-weth9transfereventargs) | [WETH9DepositEventArgs](#interface-weth9depositeventargs) | [WETH9WithdrawalEventArgs](#interface-weth9withdrawaleventargs)* - -*Defined in [abi-gen-wrappers/src/generated-wrappers/weth9.ts:37](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts#L37)* - -
@@ -10691,7 +14675,7 @@ ___ â–¸ **getContractAddressesForChainOrThrow**(`chainId`: [ChainId](#enumeration-chainid)): *[ContractAddresses](#interface-contractaddresses)* -*Defined in [contract-addresses/src/index.ts:45](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/contract-addresses/src/index.ts#L45)* +*Defined in [contract-addresses/src/index.ts:67](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-addresses/src/index.ts#L67)* Used to get addresses of contracts that have been deployed to either the Ethereum mainnet or a supported testnet. Throws if there are no known @@ -10720,6 +14704,143 @@ given chainId. +
+ + + +
+ + + + +## Type aliases + +### ERC20TokenEventArgs + +Ƭ **ERC20TokenEventArgs**: *[ERC20TokenApprovalEventArgs](#interface-erc20tokenapprovaleventargs) | [ERC20TokenTransferEventArgs](#interface-erc20tokentransfereventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/erc20_token.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts#L38)* + +
+ + + + +## Type aliases + +### ERC721TokenEventArgs + +Ƭ **ERC721TokenEventArgs**: *[ERC721TokenApprovalEventArgs](#interface-erc721tokenapprovaleventargs) | [ERC721TokenApprovalForAllEventArgs](#interface-erc721tokenapprovalforalleventargs) | [ERC721TokenTransferEventArgs](#interface-erc721tokentransfereventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/erc721_token.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts#L38)* + +
+ + + + +## Type aliases + +### ExchangeEventArgs + +Ƭ **ExchangeEventArgs**: *[ExchangeAssetProxyRegisteredEventArgs](#interface-exchangeassetproxyregisteredeventargs) | [ExchangeCancelEventArgs](#interface-exchangecanceleventargs) | [ExchangeCancelUpToEventArgs](#interface-exchangecanceluptoeventargs) | [ExchangeFillEventArgs](#interface-exchangefilleventargs) | [ExchangeOwnershipTransferredEventArgs](#interface-exchangeownershiptransferredeventargs) | [ExchangeProtocolFeeCollectorAddressEventArgs](#interface-exchangeprotocolfeecollectoraddresseventargs) | [ExchangeProtocolFeeMultiplierEventArgs](#interface-exchangeprotocolfeemultipliereventargs) | [ExchangeSignatureValidatorApprovalEventArgs](#interface-exchangesignaturevalidatorapprovaleventargs) | [ExchangeTransactionExecutionEventArgs](#interface-exchangetransactionexecutioneventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/exchange.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/exchange.ts#L38)* + +
+ + + + +## Type aliases + +### ForwarderEventArgs + +Ƭ **ForwarderEventArgs**: *[ForwarderOwnershipTransferredEventArgs](#interface-forwarderownershiptransferredeventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/forwarder.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/forwarder.ts#L38)* + +
+ + + +
+ + + +
+ + + + +## Type aliases + +### ITransformERC20EventArgs + +Ƭ **ITransformERC20EventArgs**: *[ITransformERC20QuoteSignerUpdatedEventArgs](#interface-itransformerc20quotesignerupdatedeventargs) | [ITransformERC20TransformedERC20EventArgs](#interface-itransformerc20transformederc20eventargs) | [ITransformERC20TransformerDeployerUpdatedEventArgs](#interface-itransformerc20transformerdeployerupdatedeventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/i_transform_erc20.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts#L38)* + +
+ + + + +## Type aliases + +### IZeroExEventArgs + +Ƭ **IZeroExEventArgs**: *[IZeroExMetaTransactionExecutedEventArgs](#interface-izeroexmetatransactionexecutedeventargs) | [IZeroExMigratedEventArgs](#interface-izeroexmigratedeventargs) | [IZeroExOwnershipTransferredEventArgs](#interface-izeroexownershiptransferredeventargs) | [IZeroExProxyFunctionUpdatedEventArgs](#interface-izeroexproxyfunctionupdatedeventargs) | [IZeroExQuoteSignerUpdatedEventArgs](#interface-izeroexquotesignerupdatedeventargs) | [IZeroExTransformedERC20EventArgs](#interface-izeroextransformederc20eventargs) | [IZeroExTransformerDeployerUpdatedEventArgs](#interface-izeroextransformerdeployerupdatedeventargs)* + +Defined in contract-wrappers/src/generated-wrappers/i_zero_ex.ts:38 + +
+ + + + +## Type aliases + +### StakingEventArgs + +Ƭ **StakingEventArgs**: *[StakingAuthorizedAddressAddedEventArgs](#interface-stakingauthorizedaddressaddedeventargs) | [StakingAuthorizedAddressRemovedEventArgs](#interface-stakingauthorizedaddressremovedeventargs) | [StakingEpochEndedEventArgs](#interface-stakingepochendedeventargs) | [StakingEpochFinalizedEventArgs](#interface-stakingepochfinalizedeventargs) | [StakingExchangeAddedEventArgs](#interface-stakingexchangeaddedeventargs) | [StakingExchangeRemovedEventArgs](#interface-stakingexchangeremovedeventargs) | [StakingMakerStakingPoolSetEventArgs](#interface-stakingmakerstakingpoolseteventargs) | [StakingMoveStakeEventArgs](#interface-stakingmovestakeeventargs) | [StakingOperatorShareDecreasedEventArgs](#interface-stakingoperatorsharedecreasedeventargs) | [StakingOwnershipTransferredEventArgs](#interface-stakingownershiptransferredeventargs) | [StakingParamsSetEventArgs](#interface-stakingparamsseteventargs) | [StakingRewardsPaidEventArgs](#interface-stakingrewardspaideventargs) | [StakingStakeEventArgs](#interface-stakingstakeeventargs) | [StakingStakingPoolCreatedEventArgs](#interface-stakingstakingpoolcreatedeventargs) | [StakingStakingPoolEarnedRewardsInEpochEventArgs](#interface-stakingstakingpoolearnedrewardsinepocheventargs) | [StakingUnstakeEventArgs](#interface-stakingunstakeeventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/staking.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking.ts#L38)* + +
+ + + + +## Type aliases + +### StakingProxyEventArgs + +Ƭ **StakingProxyEventArgs**: *[StakingProxyAuthorizedAddressAddedEventArgs](#interface-stakingproxyauthorizedaddressaddedeventargs) | [StakingProxyAuthorizedAddressRemovedEventArgs](#interface-stakingproxyauthorizedaddressremovedeventargs) | [StakingProxyOwnershipTransferredEventArgs](#interface-stakingproxyownershiptransferredeventargs) | [StakingProxyStakingContractAttachedToProxyEventArgs](#interface-stakingproxystakingcontractattachedtoproxyeventargs) | [StakingProxyStakingContractDetachedFromProxyEventArgs](#interface-stakingproxystakingcontractdetachedfromproxyeventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/staking_proxy.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts#L38)* + +
+ + + + +## Type aliases + +### WETH9EventArgs + +Ƭ **WETH9EventArgs**: *[WETH9ApprovalEventArgs](#interface-weth9approvaleventargs) | [WETH9DepositEventArgs](#interface-weth9depositeventargs) | [WETH9TransferEventArgs](#interface-weth9transfereventargs) | [WETH9WithdrawalEventArgs](#interface-weth9withdrawaleventargs)* + +*Defined in [contract-wrappers/src/generated-wrappers/weth9.ts:38](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/contract-wrappers/src/generated-wrappers/weth9.ts#L38)* + +
+ + + +
+ + + ## Type aliases @@ -10727,7 +14848,7 @@ given chainId. Ƭ **AbiDefinition**: *[FunctionAbi](_ethereum_types_src_index_.md#functionabi) | [EventAbi](#interface-eventabi) | [RevertErrorAbi](#interface-reverterrorabi)* -*Defined in [ethereum-types/src/index.ts:80](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L80)* +*Defined in [ethereum-types/src/index.ts:80](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L80)* ___ @@ -10735,7 +14856,7 @@ ___ Ƭ **BlockParam**: *[BlockParamLiteral](#enumeration-blockparamliteral) | number* -*Defined in [ethereum-types/src/index.ts:484](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L484)* +*Defined in [ethereum-types/src/index.ts:493](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L493)* ___ @@ -10743,7 +14864,7 @@ ___ Ƭ **ConstructorStateMutability**: *"nonpayable" | "payable"* -*Defined in [ethereum-types/src/index.ts:84](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L84)* +*Defined in [ethereum-types/src/index.ts:84](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L84)* ___ @@ -10751,7 +14872,7 @@ ___ Ƭ **ContractAbi**: *[AbiDefinition](#abidefinition)[]* -*Defined in [ethereum-types/src/index.ts:78](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L78)* +*Defined in [ethereum-types/src/index.ts:78](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L78)* ___ @@ -10759,7 +14880,7 @@ ___ Ƭ **ContractEventArg**: *any* -*Defined in [ethereum-types/src/index.ts:469](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L469)* +*Defined in [ethereum-types/src/index.ts:478](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L478)* ___ @@ -10769,7 +14890,7 @@ ___ Ƭ **EIP1193Event**: *"accountsChanged" | "networkChanged" | "close" | "connect" | "notification"* -*Defined in [ethereum-types/src/index.ts:70](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L70)* +*Defined in [ethereum-types/src/index.ts:70](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L70)* Interface for providers that conform to EIP 1193 Source: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md @@ -10784,7 +14905,7 @@ ___ Ƭ **FunctionAbi**: *[MethodAbi](#interface-methodabi) | [ConstructorAbi](#interface-constructorabi) | [FallbackAbi](#interface-fallbackabi)* -*Defined in [ethereum-types/src/index.ts:82](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L82)* +*Defined in [ethereum-types/src/index.ts:82](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L82)* ___ @@ -10792,7 +14913,7 @@ ___ Ƭ **JSONRPCErrorCallback**: *function* -*Defined in [ethereum-types/src/index.ts:3](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L3)* +*Defined in [ethereum-types/src/index.ts:3](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L3)* #### Type declaration: @@ -10813,7 +14934,7 @@ ___ Ƭ **OutputField**: *"*" | "ast" | "legacyAST" | "abi" | "devdoc" | "userdoc" | "metadata" | "ir" | "evm.assembly" | "evm.legacyAssembly" | "evm.bytecode.object" | "evm.bytecode.opcodes" | "evm.bytecode.sourceMap" | "evm.bytecode.linkReferences" | "evm.deployedBytecode.object" | "evm.deployedBytecode.opcodes" | "evm.deployedBytecode.sourceMap" | "evm.deployedBytecode.linkReferences" | "evm.methodIdentifiers" | "evm.gasEstimates" | "ewasm.wast" | "ewasm.wasm"* -*Defined in [ethereum-types/src/index.ts:526](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L526)* +*Defined in [ethereum-types/src/index.ts:535](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L535)* ___ @@ -10821,7 +14942,7 @@ ___ Ƭ **ParamDescription**: *string* -*Defined in [ethereum-types/src/index.ts:562](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L562)* +*Defined in [ethereum-types/src/index.ts:571](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L571)* ___ @@ -10829,7 +14950,7 @@ ___ Ƭ **RawLog**: *[LogEntry](#interface-logentry)* -*Defined in [ethereum-types/src/index.ts:476](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L476)* +*Defined in [ethereum-types/src/index.ts:485](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L485)* ___ @@ -10837,7 +14958,7 @@ ___ Ƭ **StateMutability**: *"pure" | "view" | [ConstructorStateMutability](#constructorstatemutability)* -*Defined in [ethereum-types/src/index.ts:85](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L85)* +*Defined in [ethereum-types/src/index.ts:85](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L85)* ___ @@ -10845,7 +14966,7 @@ ___ Ƭ **SupportedProvider**: *[Web3JsProvider](_ethereum_types_src_index_.md#web3jsprovider) | [GanacheProvider](#interface-ganacheprovider) | [EIP1193Provider](#interface-eip1193provider) | [ZeroExProvider](#interface-zeroexprovider)* -*Defined in [ethereum-types/src/index.ts:9](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L9)* +*Defined in [ethereum-types/src/index.ts:9](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L9)* Do not create your own provider. Use an existing provider from a Web3 or ProviderEngine library Read more about Providers in the guides section of the 0x docs. @@ -10860,7 +14981,55 @@ ___ Ƭ **Web3JsProvider**: *[Web3JsV1Provider](#interface-web3jsv1provider) | [Web3JsV2Provider](#interface-web3jsv2provider) | [Web3JsV3Provider](#interface-web3jsv3provider)* -*Defined in [ethereum-types/src/index.ts:11](https://github.com/0xProject/0x-monorepo/blob/34538f2ce/packages/ethereum-types/src/index.ts#L11)* +*Defined in [ethereum-types/src/index.ts:11](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/ethereum-types/src/index.ts#L11)*
+ + + +## Type aliases + + + + + + + + + + + +### EventCallback + +Ƭ **EventCallback**: *function* + +*Defined in [types/src/index.ts:876](https://github.com/0xProject/0x-monorepo/blob/b1b9949e7/packages/types/src/index.ts#L876)* + +#### Type declaration: + +▸ (`err`: null | `Error`, `log?`: [DecodedLogEvent](#interface-decodedlogevent)‹*`ArgsType`*›): *void* + +**Parameters:** + +Name | Type | +------ | ------ | +`err` | null \| `Error` | +`log?` | [DecodedLogEvent](#interface-decodedlogevent)‹*`ArgsType`*› | + +___ + + + + + + + + + + + + + +
+ diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json index a668f10f8e..9e209e2964 100644 --- a/packages/contract-wrappers/package.json +++ b/packages/contract-wrappers/package.json @@ -32,7 +32,7 @@ "wrappers:generate": "abi-gen --abis ${npm_package_config_abis} --output src/generated-wrappers --backend ethers" }, "config": { - "abis": "../contract-artifacts/artifacts/@(DevUtils|ERC20Token|ERC721Token|Exchange|Forwarder|IAssetData|LibTransactionDecoder|WETH9|Coordinator|Staking|StakingProxy|IERC20BridgeSampler|ERC20BridgeSampler|GodsUnchainedValidator|Broker|ILiquidityProvider|ILiquidityProviderRegistry|MaximumGasPrice|ITransformERC20).json" + "abis": "../contract-artifacts/artifacts/@(DevUtils|ERC20Token|ERC721Token|Exchange|Forwarder|IAssetData|LibTransactionDecoder|WETH9|Coordinator|Staking|StakingProxy|IERC20BridgeSampler|ERC20BridgeSampler|GodsUnchainedValidator|Broker|ILiquidityProvider|ILiquidityProviderRegistry|MaximumGasPrice|ITransformERC20|IZeroEx).json" }, "gitpkg": { "registry": "git@github.com:0xProject/gitpkg-registry.git" diff --git a/packages/contract-wrappers/src/generated-wrappers/broker.ts b/packages/contract-wrappers/src/generated-wrappers/broker.ts index 06ae217df9..07a6f52d75 100644 --- a/packages/contract-wrappers/src/generated-wrappers/broker.ts +++ b/packages/contract-wrappers/src/generated-wrappers/broker.ts @@ -624,7 +624,7 @@ export class BrokerContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -640,8 +640,8 @@ export class BrokerContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -659,7 +659,7 @@ export class BrokerContract extends BaseContract { > { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -756,7 +756,7 @@ export class BrokerContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -772,8 +772,8 @@ export class BrokerContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -789,7 +789,7 @@ export class BrokerContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -846,7 +846,7 @@ export class BrokerContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -862,15 +862,15 @@ export class BrokerContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/coordinator.ts b/packages/contract-wrappers/src/generated-wrappers/coordinator.ts index c7966e94ca..2ea0b0b9b9 100644 --- a/packages/contract-wrappers/src/generated-wrappers/coordinator.ts +++ b/packages/contract-wrappers/src/generated-wrappers/coordinator.ts @@ -42,7 +42,7 @@ export class CoordinatorContract extends BaseContract { * @ignore */ public static deployedBytecode = - '0x6080604052600436106100b15760003560e01c8063da4fe07411610069578063ee55b9681161004e578063ee55b9681461018a578063fb6961cc146101b7578063fdd059a5146101cc576100b1565b8063da4fe07414610162578063e1c7157814610175576100b1565b806389fab5b71161009a57806389fab5b714610109578063b2562b7a1461012b578063c26cfecd14610140576100b1565b80630f7d8e39146100b357806352813679146100e9575b005b3480156100bf57600080fd5b506100d36100ce3660046116c1565b6101ec565b6040516100e09190611a14565b60405180910390f35b3480156100f557600080fd5b506100b1610104366004611888565b610455565b34801561011557600080fd5b5061011e610482565b6040516100e09190611c40565b34801561013757600080fd5b5061011e6104bb565b34801561014c57600080fd5b506101556104f4565b6040516100e09190611ba1565b6100b1610170366004611888565b6104fa565b34801561018157600080fd5b506101556105e8565b34801561019657600080fd5b506101aa6101a5366004611706565b61060c565b6040516100e09190611a35565b3480156101c357600080fd5b50610155610ac0565b3480156101d857600080fd5b506101556101e7366004611774565b610ac6565b80516000908061020a5761020a61020560008686610ad9565b610b7e565b60008360018551038151811061021c57fe5b016020015160f81c90506008811061023d5761023d61020560018787610ad9565b60008160ff16600881111561024e57fe5b9050600081600881111561025e57fe5b14156102785761027361020560028888610ad9565b61043c565b600181600881111561028657fe5b141561029b5761027361020560038888610ad9565b60028160088111156102a957fe5b141561038557826042146102c6576102c661020560008888610ad9565b6000856000815181106102d557fe5b016020015160f81c905060006102f287600163ffffffff610b8616565b9050600061030788602163ffffffff610b8616565b90506001898484846040516000815260200160405260405161032c9493929190611bce565b6020604051602081039080840390855afa15801561034e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151975061044f9650505050505050565b600381600881111561039357fe5b141561043c57826042146103b0576103b061020560008888610ad9565b6000856000815181106103bf57fe5b016020015160f81c905060006103dc87600163ffffffff610b8616565b905060006103f188602163ffffffff610b8616565b905060018960405160200161040691906119e3565b604051602081830303815290604052805190602001208484846040516000815260200160405260405161032c9493929190611bce565b61044b61020560018888610ad9565b5050505b92915050565b6060610464856080015161060c565b80519091501561047b5761047b8582868686610bb0565b5050505050565b6040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000081525081565b6040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b61050684848484610455565b6002546040517f2280c9100000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff1690632280c9109034906105659088908790600401611c53565b6000604051808303818588803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d99190810190611741565b506105e2610d5d565b50505050565b7fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f850716881565b60606000610620838263ffffffff610d7316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f9b44d5560000000000000000000000000000000000000000000000000000000014806106b357507fffffffff0000000000000000000000000000000000000000000000000000000081167fe14b58c400000000000000000000000000000000000000000000000000000000145b1561073c576106c06112e5565b83516106d690859060049063ffffffff610dbf16565b8060200190516106e991908101906117fe565b604080516001808252818301909252919250816020015b6107086112e5565b815260200190600190039081610700579050509250808360008151811061072b57fe5b602002602001018190525050610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f9694a4020000000000000000000000000000000000000000000000000000000014806107cd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f8ea8dfe400000000000000000000000000000000000000000000000000000000145b8061081957507fffffffff0000000000000000000000000000000000000000000000000000000081167fbeee2e1400000000000000000000000000000000000000000000000000000000145b8061086557507fffffffff0000000000000000000000000000000000000000000000000000000081167f78d29ac100000000000000000000000000000000000000000000000000000000145b806108b157507fffffffff0000000000000000000000000000000000000000000000000000000081167f8bc8efb300000000000000000000000000000000000000000000000000000000145b806108fd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f369da09900000000000000000000000000000000000000000000000000000000145b8061094957507fffffffff0000000000000000000000000000000000000000000000000000000081167fa6c3bf3300000000000000000000000000000000000000000000000000000000145b1561097e57825161096490849060049063ffffffff610dbf16565b8060200190516109779190810190611635565b9150610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f88ec79fb000000000000000000000000000000000000000000000000000000001480610a0f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fb718e29200000000000000000000000000000000000000000000000000000000145b15610aba57610a1c6112e5565b610a246112e5565b8451610a3a90869060049063ffffffff610dbf16565b806020019051610a4d9190810190611831565b60408051600280825260608201909252929450909250816020015b610a706112e5565b815260200190600190039081610a685790505093508184600081518110610a9357fe5b60200260200101819052508084600181518110610aac57fe5b602002602001018190525050505b50919050565b60005481565b600061044f610ad483610e46565b610e99565b606063779c522360e01b848484604051602401610af893929190611c0e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b60008160200183511015610ba757610ba76102056005855185602001610ea7565b50016020015190565b3273ffffffffffffffffffffffffffffffffffffffff841614610bd957610bd961020584610ec6565b6000610be786600154610f65565b60408051600080825260208201909252845192935091905b818114610c9057610c0e6113ac565b60405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881525090506000610c4c82610ac6565b90506000610c6d82898681518110610c6057fe5b60200260200101516101ec565b9050610c7f868263ffffffff610f7916565b95505060019092019150610bff9050565b50610ca1823263ffffffff610f7916565b875190925060005b818114610d5157600073ffffffffffffffffffffffffffffffffffffffff16898281518110610cd457fe5b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff161415610d0157610d49565b6000898281518110610d0f57fe5b60200260200101516040015190506000610d32828761101b90919063ffffffff16565b905080610d4657610d466102058884611053565b50505b600101610ca9565b50505050505050505050565b610d656110f5565b610d7157610d71611103565b565b60008160040183511015610d9457610d946102056003855185600401610ea7565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610dd857610dd861020560008585610ea7565b8351821115610df157610df16102056001848751610ea7565b8282036040519080825280601f01601f191660200182016040528015610e1e576020820181803883390190505b509050610e3f610e2d8261113c565b84610e378761113c565b018351611142565b9392505050565b604081810151825160209384015182519285019290922083517fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f85071688152948501919091529183015260608201526080902090565b600061044f60005483611206565b6060632800659560e01b848484604051602401610af893929190611bec565b606063a458d7ff60e01b82604051602401610ee19190611a14565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6000610e3f82610f7485611240565b611206565b815160405160609184906020808202808401820192910182851015610fa557610fa561020586856112c8565b82851115610fbf57610fb8858583611142565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110610fea57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250959695505050505050565b60006020835102602084018181018192505b8083101561044b5782518086141561104757600194508193505b5060208301925061102d565b606063d789b64060e01b8383604051602401611070929190611baa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600254610100900460ff1690565b47801561113957604051339082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b505b50565b60200190565b602081101561116c576001816020036101000a038019835116818551168082178652505050611201565b8282141561117957611201565b828211156111b35760208103905080820181840181515b828510156111ab578451865260209586019590940193611190565b905250611201565b60208103905080820181840183515b818612156111fc57825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111c2565b855250505b505050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6060635fc8372260e01b8383604051602401611070929190611cc9565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040805160608082018352600080835260208301529181019190915290565b803561044f81611d8c565b805161044f81611d8c565b600082601f8301126113f1578081fd5b81356114046113ff82611cfe565b611cd7565b8181529150602080830190840160005b838110156114415761142c876020843589010161144b565b83526020928301929190910190600101611414565b5050505092915050565b600082601f83011261145b578081fd5b81356114696113ff82611d1e565b915080825283602082850101111561148057600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126114a9578081fd5b81516114b76113ff82611d1e565b91508082528360208285010111156114ce57600080fd5b6114df816020840160208601611d60565b5092915050565b60006101c08083850312156114f9578182fd5b61150281611cd7565b91505061150f83836113d6565b815261151e83602084016113d6565b602082015261153083604084016113d6565b604082015261154283606084016113d6565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff808211156115a457600080fd5b6115b086838701611499565b838501526101609250828501519150808211156115cc57600080fd5b6115d886838701611499565b838501526101809250828501519150808211156115f457600080fd5b61160086838701611499565b838501526101a092508285015191508082111561161c57600080fd5b5061162985828601611499565b82840152505092915050565b60006020808385031215611647578182fd5b825167ffffffffffffffff81111561165d578283fd5b80840185601f82011261166e578384fd5b8051915061167e6113ff83611cfe565b82815283810190828501865b858110156116b3576116a18a8884518801016114e6565b8452928601929086019060010161168a565b509098975050505050505050565b600080604083850312156116d3578081fd5b82359150602083013567ffffffffffffffff8111156116f0578182fd5b6116fc8582860161144b565b9150509250929050565b600060208284031215611717578081fd5b813567ffffffffffffffff81111561172d578182fd5b6117398482850161144b565b949350505050565b600060208284031215611752578081fd5b815167ffffffffffffffff811115611768578182fd5b61173984828501611499565b600060208284031215611785578081fd5b813567ffffffffffffffff8082111561179c578283fd5b818401606081870312156117ae578384fd5b6117b86060611cd7565b925080356117c581611d8c565b8352602081810135908401526040810135828111156117e2578485fd5b6117ee8782840161144b565b6040850152509195945050505050565b60006020828403121561180f578081fd5b815167ffffffffffffffff811115611825578182fd5b611739848285016114e6565b60008060408385031215611843578182fd5b825167ffffffffffffffff8082111561185a578384fd5b611866868387016114e6565b9350602085015191508082111561187b578283fd5b506116fc858286016114e6565b6000806000806080858703121561189d578182fd5b843567ffffffffffffffff808211156118b4578384fd5b81870160a0818a0312156118c6578485fd5b6118d060a0611cd7565b92508035835260208101356020840152604081013560408401526118f789606083016113cb565b606084015260808101358281111561190d578586fd5b6119198a82840161144b565b6080850152505081955061193088602089016113cb565b94506040870135915080821115611945578384fd5b6119518883890161144b565b93506060870135915080821115611966578283fd5b50611973878288016113e1565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526119b1816020860160208601611d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845281516101c0611a9987835161197f565b87820151611aa98989018261197f565b506040820151611abc604089018261197f565b506060820151611acf606089018261197f565b506080820151608088015260a082015160a088015260c082015160c088015260e082015160e08801526101008083015181890152506101208083015181890152506101408083015182828a0152611b28838a0182611999565b915050610160915081830151888203838a0152611b458282611999565b9250505061018080830151888303828a0152611b618382611999565b9150506101a0915081830151888203838a0152611b7e8282611999565b9850505094870194505090850190600101611a5a565b5092979650505050505050565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6060810160088510611bfa57fe5b938152602081019290925260409091015290565b600060048510611c1a57fe5b84825283602083015260606040830152611c376060830184611999565b95945050505050565b600060208252610e3f6020830184611999565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152611cad60e0840182611999565b8381036020850152611cbf8186611999565b9695505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611cf657600080fd5b604052919050565b600067ffffffffffffffff821115611d14578081fd5b5060209081020190565b600067ffffffffffffffff821115611d34578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d7b578181015183820152602001611d63565b838111156105e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461113957600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820926abd0f9ec1c8b67d93fbc87771f0336fe827fb0a1927bf1606417cd86e97966c6578706572696d656e74616cf564736f6c63430005100040'; + '0x6080604052600436106100b15760003560e01c8063da4fe07411610069578063ee55b9681161004e578063ee55b9681461018a578063fb6961cc146101b7578063fdd059a5146101cc576100b1565b8063da4fe07414610162578063e1c7157814610175576100b1565b806389fab5b71161009a57806389fab5b714610109578063b2562b7a1461012b578063c26cfecd14610140576100b1565b80630f7d8e39146100b357806352813679146100e9575b005b3480156100bf57600080fd5b506100d36100ce3660046116c1565b6101ec565b6040516100e09190611a14565b60405180910390f35b3480156100f557600080fd5b506100b1610104366004611888565b610455565b34801561011557600080fd5b5061011e610482565b6040516100e09190611c40565b34801561013757600080fd5b5061011e6104bb565b34801561014c57600080fd5b506101556104f4565b6040516100e09190611ba1565b6100b1610170366004611888565b6104fa565b34801561018157600080fd5b506101556105e8565b34801561019657600080fd5b506101aa6101a5366004611706565b61060c565b6040516100e09190611a35565b3480156101c357600080fd5b50610155610ac0565b3480156101d857600080fd5b506101556101e7366004611774565b610ac6565b80516000908061020a5761020a61020560008686610ad9565b610b7e565b60008360018551038151811061021c57fe5b016020015160f81c90506008811061023d5761023d61020560018787610ad9565b60008160ff16600881111561024e57fe5b9050600081600881111561025e57fe5b14156102785761027361020560028888610ad9565b61043c565b600181600881111561028657fe5b141561029b5761027361020560038888610ad9565b60028160088111156102a957fe5b141561038557826042146102c6576102c661020560008888610ad9565b6000856000815181106102d557fe5b016020015160f81c905060006102f287600163ffffffff610b8616565b9050600061030788602163ffffffff610b8616565b90506001898484846040516000815260200160405260405161032c9493929190611bce565b6020604051602081039080840390855afa15801561034e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151975061044f9650505050505050565b600381600881111561039357fe5b141561043c57826042146103b0576103b061020560008888610ad9565b6000856000815181106103bf57fe5b016020015160f81c905060006103dc87600163ffffffff610b8616565b905060006103f188602163ffffffff610b8616565b905060018960405160200161040691906119e3565b604051602081830303815290604052805190602001208484846040516000815260200160405260405161032c9493929190611bce565b61044b61020560018888610ad9565b5050505b92915050565b6060610464856080015161060c565b80519091501561047b5761047b8582868686610bb0565b5050505050565b6040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000081525081565b6040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b61050684848484610455565b6002546040517f2280c9100000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff1690632280c9109034906105659088908790600401611c53565b6000604051808303818588803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d99190810190611741565b506105e2610d5d565b50505050565b7fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f850716881565b60606000610620838263ffffffff610d7316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f9b44d5560000000000000000000000000000000000000000000000000000000014806106b357507fffffffff0000000000000000000000000000000000000000000000000000000081167fe14b58c400000000000000000000000000000000000000000000000000000000145b1561073c576106c06112e5565b83516106d690859060049063ffffffff610dbf16565b8060200190516106e991908101906117fe565b604080516001808252818301909252919250816020015b6107086112e5565b815260200190600190039081610700579050509250808360008151811061072b57fe5b602002602001018190525050610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f9694a4020000000000000000000000000000000000000000000000000000000014806107cd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f8ea8dfe400000000000000000000000000000000000000000000000000000000145b8061081957507fffffffff0000000000000000000000000000000000000000000000000000000081167fbeee2e1400000000000000000000000000000000000000000000000000000000145b8061086557507fffffffff0000000000000000000000000000000000000000000000000000000081167f78d29ac100000000000000000000000000000000000000000000000000000000145b806108b157507fffffffff0000000000000000000000000000000000000000000000000000000081167f8bc8efb300000000000000000000000000000000000000000000000000000000145b806108fd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f369da09900000000000000000000000000000000000000000000000000000000145b8061094957507fffffffff0000000000000000000000000000000000000000000000000000000081167fa6c3bf3300000000000000000000000000000000000000000000000000000000145b1561097e57825161096490849060049063ffffffff610dbf16565b8060200190516109779190810190611635565b9150610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f88ec79fb000000000000000000000000000000000000000000000000000000001480610a0f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fb718e29200000000000000000000000000000000000000000000000000000000145b15610aba57610a1c6112e5565b610a246112e5565b8451610a3a90869060049063ffffffff610dbf16565b806020019051610a4d9190810190611831565b60408051600280825260608201909252929450909250816020015b610a706112e5565b815260200190600190039081610a685790505093508184600081518110610a9357fe5b60200260200101819052508084600181518110610aac57fe5b602002602001018190525050505b50919050565b60005481565b600061044f610ad483610e46565b610e99565b606063779c522360e01b848484604051602401610af893929190611c0e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b60008160200183511015610ba757610ba76102056005855185602001610ea7565b50016020015190565b3273ffffffffffffffffffffffffffffffffffffffff841614610bd957610bd961020584610ec6565b6000610be786600154610f65565b60408051600080825260208201909252845192935091905b818114610c9057610c0e6113ac565b60405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881525090506000610c4c82610ac6565b90506000610c6d82898681518110610c6057fe5b60200260200101516101ec565b9050610c7f868263ffffffff610f7916565b95505060019092019150610bff9050565b50610ca1823263ffffffff610f7916565b875190925060005b818114610d5157600073ffffffffffffffffffffffffffffffffffffffff16898281518110610cd457fe5b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff161415610d0157610d49565b6000898281518110610d0f57fe5b60200260200101516040015190506000610d32828761101b90919063ffffffff16565b905080610d4657610d466102058884611053565b50505b600101610ca9565b50505050505050505050565b610d656110f5565b610d7157610d71611103565b565b60008160040183511015610d9457610d946102056003855185600401610ea7565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610dd857610dd861020560008585610ea7565b8351821115610df157610df16102056001848751610ea7565b8282036040519080825280601f01601f191660200182016040528015610e1e576020820181803883390190505b509050610e3f610e2d8261113c565b84610e378761113c565b018351611142565b9392505050565b604081810151825160209384015182519285019290922083517fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f85071688152948501919091529183015260608201526080902090565b600061044f60005483611206565b6060632800659560e01b848484604051602401610af893929190611bec565b606063a458d7ff60e01b82604051602401610ee19190611a14565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6000610e3f82610f7485611240565b611206565b815160405160609184906020808202808401820192910182851015610fa557610fa561020586856112c8565b82851115610fbf57610fb8858583611142565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110610fea57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250959695505050505050565b60006020835102602084018181018192505b8083101561044b5782518086141561104757600194508193505b5060208301925061102d565b606063d789b64060e01b8383604051602401611070929190611baa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600254610100900460ff1690565b47801561113957604051339082156108fc029083906000818181858888f19350505050158015611137573d6000803e3d6000fd5b505b50565b60200190565b602081101561116c576001816020036101000a038019835116818551168082178652505050611201565b8282141561117957611201565b828211156111b35760208103905080820181840181515b828510156111ab578451865260209586019590940193611190565b905250611201565b60208103905080820181840183515b818612156111fc57825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111c2565b855250505b505050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6060635fc8372260e01b8383604051602401611070929190611cc9565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040805160608082018352600080835260208301529181019190915290565b803561044f81611d8c565b805161044f81611d8c565b600082601f8301126113f1578081fd5b81356114046113ff82611cfe565b611cd7565b8181529150602080830190840160005b838110156114415761142c876020843589010161144b565b83526020928301929190910190600101611414565b5050505092915050565b600082601f83011261145b578081fd5b81356114696113ff82611d1e565b915080825283602082850101111561148057600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126114a9578081fd5b81516114b76113ff82611d1e565b91508082528360208285010111156114ce57600080fd5b6114df816020840160208601611d60565b5092915050565b60006101c08083850312156114f9578182fd5b61150281611cd7565b91505061150f83836113d6565b815261151e83602084016113d6565b602082015261153083604084016113d6565b604082015261154283606084016113d6565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff808211156115a457600080fd5b6115b086838701611499565b838501526101609250828501519150808211156115cc57600080fd5b6115d886838701611499565b838501526101809250828501519150808211156115f457600080fd5b61160086838701611499565b838501526101a092508285015191508082111561161c57600080fd5b5061162985828601611499565b82840152505092915050565b60006020808385031215611647578182fd5b825167ffffffffffffffff81111561165d578283fd5b80840185601f82011261166e578384fd5b8051915061167e6113ff83611cfe565b82815283810190828501865b858110156116b3576116a18a8884518801016114e6565b8452928601929086019060010161168a565b509098975050505050505050565b600080604083850312156116d3578081fd5b82359150602083013567ffffffffffffffff8111156116f0578182fd5b6116fc8582860161144b565b9150509250929050565b600060208284031215611717578081fd5b813567ffffffffffffffff81111561172d578182fd5b6117398482850161144b565b949350505050565b600060208284031215611752578081fd5b815167ffffffffffffffff811115611768578182fd5b61173984828501611499565b600060208284031215611785578081fd5b813567ffffffffffffffff8082111561179c578283fd5b818401606081870312156117ae578384fd5b6117b86060611cd7565b925080356117c581611d8c565b8352602081810135908401526040810135828111156117e2578485fd5b6117ee8782840161144b565b6040850152509195945050505050565b60006020828403121561180f578081fd5b815167ffffffffffffffff811115611825578182fd5b611739848285016114e6565b60008060408385031215611843578182fd5b825167ffffffffffffffff8082111561185a578384fd5b611866868387016114e6565b9350602085015191508082111561187b578283fd5b506116fc858286016114e6565b6000806000806080858703121561189d578182fd5b843567ffffffffffffffff808211156118b4578384fd5b81870160a0818a0312156118c6578485fd5b6118d060a0611cd7565b92508035835260208101356020840152604081013560408401526118f789606083016113cb565b606084015260808101358281111561190d578586fd5b6119198a82840161144b565b6080850152505081955061193088602089016113cb565b94506040870135915080821115611945578384fd5b6119518883890161144b565b93506060870135915080821115611966578283fd5b50611973878288016113e1565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526119b1816020860160208601611d60565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b94577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845281516101c0611a9987835161197f565b87820151611aa98989018261197f565b506040820151611abc604089018261197f565b506060820151611acf606089018261197f565b506080820151608088015260a082015160a088015260c082015160c088015260e082015160e08801526101008083015181890152506101208083015181890152506101408083015182828a0152611b28838a0182611999565b915050610160915081830151888203838a0152611b458282611999565b9250505061018080830151888303828a0152611b618382611999565b9150506101a0915081830151888203838a0152611b7e8282611999565b9850505094870194505090850190600101611a5a565b5092979650505050505050565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6060810160088510611bfa57fe5b938152602081019290925260409091015290565b600060048510611c1a57fe5b84825283602083015260606040830152611c376060830184611999565b95945050505050565b600060208252610e3f6020830184611999565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152611cad60e0840182611999565b8381036020850152611cbf8186611999565b9695505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611cf657600080fd5b604052919050565b600067ffffffffffffffff821115611d14578081fd5b5060209081020190565b600067ffffffffffffffff821115611d34578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d7b578181015183820152602001611d63565b838111156105e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461113957600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820353fada6a7d942697f3b4ca6576b433bad3cc0e8814b93adb94bd3e1d3df52df6c6578706572696d656e74616cf564736f6c63430005110040'; public static contractName = 'Coordinator'; private readonly _methodABIIndex: { [name: string]: number } = {}; public static async deployFrom0xArtifactAsync( @@ -585,7 +585,7 @@ export class CoordinatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -605,7 +605,7 @@ export class CoordinatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -625,7 +625,7 @@ export class CoordinatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -645,7 +645,7 @@ export class CoordinatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -665,7 +665,7 @@ export class CoordinatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -713,7 +713,7 @@ export class CoordinatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -787,7 +787,7 @@ export class CoordinatorContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -854,7 +854,7 @@ export class CoordinatorContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -870,15 +870,15 @@ export class CoordinatorContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -915,7 +915,7 @@ export class CoordinatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -947,7 +947,7 @@ export class CoordinatorContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } diff --git a/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts b/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts index af83160db5..108d4db5f8 100644 --- a/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts +++ b/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts @@ -42,7 +42,7 @@ export class DevUtilsContract extends BaseContract { * @ignore */ public static deployedBytecode = - '0x608060405234801561001057600080fd5b50600436106102775760003560e01c8063a5cd62ba11610160578063d186037f116100d8578063e4e6e7da1161008c578063ee18599711610071578063ee185997146105d8578063ef3bb097146105e0578063ff84e7cc146105e857610277565b8063e4e6e7da14610595578063e77286eb146105b657610277565b8063d3d862d1116100bd578063d3d862d114610540578063d469502814610553578063e25cabf71461057357610277565b8063d186037f1461051a578063d36379051461052d57610277565b8063bbb2dcf61161012f578063c82037ef11610114578063c82037ef146104dc578063ca49f47c146104e4578063d001c5dc1461050757610277565b8063bbb2dcf6146104b2578063c26cfecd146104d457610277565b8063a5cd62ba14610464578063a6627e9f14610484578063a7530f1214610497578063b43cffe11461049f57610277565b80637982653e116101f35780639baf2705116101c25780639eadc835116101a75780639eadc8351461041a578063a070cac81461043e578063a0901e511461045157610277565b80639baf2705146103fd5780639cd016051461041257610277565b80637982653e1461039657806379c9c426146103b65780637d727512146103c95780638f4ce479146103dc57610277565b80634dfdac201161024a57806363eb39921161022f57806363eb39921461033d5780636f83188e14610350578063750bdb301461037357610277565b80634dfdac20146102fd578063590aa8751461031d57610277565b806304a5618a1461027c5780630d7b7d76146102a75780632322cf76146102c857806346eb65cb146102e8575b600080fd5b61028f61028a366004614296565b6105f0565b60405161029e93929190614ce9565b60405180910390f35b6102ba6102b5366004613d5a565b610689565b60405161029e929190614ef1565b6102db6102d6366004613d5a565b6106ab565b60405161029e9190614bc6565b6102fb6102f6366004614296565b6106d3565b005b61031061030b366004613c75565b610757565b60405161029e9190614b1e565b61033061032b366004613c59565b6107da565b60405161029e9190614d49565b61033061034b366004613d9e565b610889565b61036361035e366004614296565b61093c565b60405161029e9493929190614ddd565b610386610381366004614296565b6109dc565b60405161029e9493929190614c07565b6103a96103a4366004614468565b610a6e565b60405161029e9190614dca565b6102db6103c4366004614570565b610b20565b6102db6103d7366004613d5a565b610ba1565b6103ef6103ea366004614296565b611497565b60405161029e929190614be4565b61040561152a565b60405161029e9190614871565b610405611539565b61042d610428366004614296565b611548565b60405161029e959493929190614c43565b6102db61044c366004614517565b6115ed565b61031061045f366004613e20565b61166e565b610477610472366004613eee565b6116e7565b60405161029e9190614a37565b610330610492366004613df5565b6117a1565b610405611851565b6103306104ad366004613cc3565b611860565b6104c56104c0366004614296565b611916565b60405161029e93929190614d14565b6102db6119a6565b6104056119ac565b6104f76104f2366004614296565b6119bb565b60405161029e9493929190614ca6565b610310610515366004613c75565b611a4d565b6102db610528366004613d5a565b611abb565b6103a961053b366004614468565b6123b7565b61033061054e366004613fc9565b612419565b610566610561366004614296565b61246e565b60405161029e9190614bcf565b610586610581366004613f72565b612511565b60405161029e93929190614a83565b6105a86105a3366004613c75565b612649565b60405161029e929190614ba1565b6105c96105c43660046144c0565b612662565b60405161029e93929190614e6a565b6104056129d2565b6104056129e1565b6104056129f0565b600080600073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a856040518263ffffffff1660e01b815260040161062c9190614d49565b60606040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c91908101906141ec565b9250925092509193909250565b6000806106968484610ba1565b91506106a28484611abb565b90509250929050565b60008060006106ba8585610689565b915091506106c882826129ff565b925050505b92915050565b6040517f46eb65cb00000000000000000000000000000000000000000000000000000000815273__$d8b635de2bf4a097b4e18b67d0fb68e779$__906346eb65cb90610723908490600401614d49565b60006040518083038186803b15801561073b57600080fd5b505af415801561074f573d6000803e3d6000fd5b505050505b50565b606060008251905080604051908082528060200260200182016040528015610789578160200160208202803883390190505b50915060005b8181146107d2576107b3858583815181106107a657fe5b6020026020010151611abb565b8382815181106107bf57fe5b602090810291909101015260010161078f565b505092915050565b6040517f590aa87500000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063590aa8759061082d908590600401614871565b60006040518083038186803b15801561084557600080fd5b505af4158015610859573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261088191908101906142c9565b90505b919050565b6040517f63eb399200000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__906363eb3992906108e0908790879087906004016149b7565b60006040518083038186803b1580156108f857600080fd5b505af415801561090c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261093491908101906142c9565b949350505050565b60608060608073__$fddee3b26a806429350031cf3481976d2e$__636f83188e866040518263ffffffff1660e01b81526004016109799190614d49565b60006040518083038186803b15801561099157600080fd5b505af41580156109a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614333565b93509350935093509193509193565b6000806000606073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b8152600401610a1a9190614d49565b60006040518083038186803b158015610a3257600080fd5b505af4158015610a46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614070565b600080546040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__91639caa023b91610ad0916001600160a01b0316908890889088906004016149e9565b60206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109349190810190614318565b600061093484610b9c6040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e300000000000000000000000000000000000000000000000000000008152508787612a15565b612a6c565b600080610bb4838263ffffffff612a8016565b90506001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415610c0f576000610bfb84601063ffffffff612ab916565b9050610c078186612aec565b925050611490565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415610e285760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a866040518263ffffffff1660e01b8152600401610c7b9190614d49565b60606040518083038186803b158015610c9357600080fd5b505af4158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ccb91908101906141ec565b6040519194509250606091507f6352211e0000000000000000000000000000000000000000000000000000000090610d07908490602401614bc6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051610d829190614855565b600060405180830381855afa9150503d8060008114610dbd576040519150601f19603f3d011682016040523d82523d6000602084013e610dc2565b606091505b50915091506000828015610dd7575081516020145b610de2576000610df3565b610df382600c63ffffffff612ab916565b9050896001600160a01b0316816001600160a01b031614610e15576000610e18565b60015b60ff169750505050505050611490565b6001600160e01b031981167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156110c457600060608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__639eadc835876040518263ffffffff1660e01b8152600401610e969190614d49565b60006040518083038186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eea91908101906140da565b5081519296509094509250905060005b8181146110ba57828181518110610f0d57fe5b602002602001015160001415610f22576110b2565b83516060907efdd58e00000000000000000000000000000000000000000000000000000000908b90879085908110610f5657fe5b6020026020010151604051602401610f6f929190614a1e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060876001600160a01b031683604051610fea9190614855565b600060405180830381855afa9150503d8060008114611025576040519150601f19603f3d011682016040523d82523d6000602084013e61102a565b606091505b5091509150600082801561103f575081516020145b61104a57600061105b565b61105b82600063ffffffff612be416565b9050600087868151811061106b57fe5b6020026020010151828161107b57fe5b049050806110975760009b5050505050505050505050506106cd565b8b8110806110a357508b155b156110ac57809b505b50505050505b600101610efa565b5050505050611490565b6001600160e01b031981167fc339d10a0000000000000000000000000000000000000000000000000000000014156111f7576040516060907fa85e59e4000000000000000000000000000000000000000000000000000000009061113390869060009081908190602401614d5c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199094169390931790925260045491519092506000916001600160a01b03169061119a908490614855565b600060405180830381855afa9150503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111da565b606091505b50509050806111ea5760006111ee565b6000195b93505050611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156113205760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b81526004016112639190614d49565b60006040518083038186803b15801561127b57600080fd5b505af415801561128f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b79190810190614070565b5092509250506112c5612bf0565b6001600160a01b0316826001600160a01b03161480156112f257506005546001600160a01b038281169116145b1561131957600061130a611304612c08565b88612aec565b905061131581612c20565b9450505b5050611490565b6001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014156114905760608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6866040518263ffffffff1660e01b815260040161138c9190614d49565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e0919081019061422c565b80519194509250905060005b81811461148b578381815181106113ff57fe5b60200260200101516000141561141457611483565b60006114338985848151811061142657fe5b6020026020010151610ba1565b9050600085838151811061144357fe5b6020026020010151828161145357fe5b0490508061146b5760009750505050505050506106cd565b87811080611477575087155b15611480578097505b50505b6001016113ec565b505050505b5092915050565b60008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__638f4ce479846040518263ffffffff1660e01b81526004016114d19190614d49565b604080518083038186803b1580156114e857600080fd5b505af41580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115209190810190614039565b915091505b915091565b6004546001600160a01b031681565b6000546001600160a01b031681565b600080606080606073__$d8b635de2bf4a097b4e18b67d0fb68e779$__639eadc835876040518263ffffffff1660e01b81526004016115879190614d49565b60006040518083038186803b15801561159f57600080fd5b505af41580156115b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115db91908101906140da565b939a9299509097509550909350915050565b6000610934846116696040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e300000000000000000000000000000000000000000000000000000008152508787612a15565b612e1e565b606080825160405190808252806020026020018201604052801561169c578160200160208202803883390190505b50905060005b83518114611490578381815181106116b657fe5b60200260200101516001600160a01b0316318282815181106116d457fe5b60209081029190910101526001016116a2565b6000546040517f02cffc4500000000000000000000000000000000000000000000000000000000815260609173__$7a69f714cdde1cb6b62e3c39bc8c94deae$__916302cffc459161174d916001600160a01b039091169088908890889060040161489f565b60006040518083038186803b15801561176557600080fd5b505af4158015611779573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109349190810190613e53565b6040517fa6627e9f00000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063a6627e9f906117f69086908690600401614a1e565b60006040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184a91908101906142c9565b9392505050565b6006546001600160a01b031681565b6040517fb43cffe100000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063b43cffe1906118b9908890889088908890600401614965565b60006040518083038186803b1580156118d157600080fd5b505af41580156118e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261190d91908101906142c9565b95945050505050565b600060608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6856040518263ffffffff1660e01b81526004016119529190614d49565b60006040518083038186803b15801561196a57600080fd5b505af415801561197e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067c919081019061422c565b60075481565b6005546001600160a01b031681565b6000806060600073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63ca49f47c866040518263ffffffff1660e01b81526004016119f99190614d49565b60006040518083038186803b158015611a1157600080fd5b505af4158015611a25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614184565b606060008251905080604051908082528060200260200182016040528015611a7f578160200160208202803883390190505b50915060005b8181146107d257611a9c8585838151811061142657fe5b838281518110611aa857fe5b6020908102919091010152600101611a85565b600080611ace838263ffffffff612a8016565b90506001600160e01b031981167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611c395760608073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63bbb2dcf6866040518263ffffffff1660e01b8152600401611b3c9190614d49565b60006040518083038186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b90919081019061422c565b80519194509250905060005b818114611c2e57838181518110611baf57fe5b602002602001015160001415611bc457611c26565b6000611bd6898584815181106107a657fe5b90506000858381518110611be657fe5b60200260200101518281611bf657fe5b04905080611c0e5760009750505050505050506106cd565b87811080611c1a575087155b15611c23578097505b50505b600101611b9c565b506106cd9350505050565b6001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415611c9a576000611c7e84601063ffffffff612ab916565b600154909150610c0790829087906001600160a01b0316612e2d565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415611fea5760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__6304a5618a866040518263ffffffff1660e01b8152600401611d069190614d49565b60606040518083038186803b158015611d1e57600080fd5b505af4158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5691908101906141ec565b600254604051929550909350606092507fe985e9c50000000000000000000000000000000000000000000000000000000091611da2918a916001600160a01b0390911690602401614885565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051611e1d9190614855565b600060405180830381855afa9150503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5091509150811580611e7157508051602014155b80611e8d5750611e8881600063ffffffff612be416565b600114155b15611fdb576040516060907f081812fc0000000000000000000000000000000000000000000000000000000090611ec8908790602401614bc6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050856001600160a01b031681604051611f3f9190614855565b600060405180830381855afa9150503d8060008114611f7a576040519150601f19603f3d011682016040523d82523d6000602084013e611f7f565b606091505b509093509150828015611f93575081516020145b8015611fc257506002546001600160a01b0316611fb783600c63ffffffff612ab916565b6001600160a01b0316145b611fcd576000611fd0565b60015b60ff169750506110ba565b60001996505050505050611490565b6001600160e01b031981167fa7cb5fb7000000000000000000000000000000000000000000000000000000001415612211576040517f9eadc83500000000000000000000000000000000000000000000000000000000815260009073__$d8b635de2bf4a097b4e18b67d0fb68e779$__90639eadc8359061206f908790600401614d49565b60006040518083038186803b15801561208757600080fd5b505af415801561209b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120c391908101906140da565b5050600354604051929450606093507fe985e9c5000000000000000000000000000000000000000000000000000000009261210d925089916001600160a01b031690602401614885565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060836001600160a01b0316836040516121889190614855565b600060405180830381855afa9150503d80600081146121c3576040519150601f19603f3d011682016040523d82523d6000602084013e6121c8565b606091505b50915091508180156121db575080516020145b80156121f757506121f381600063ffffffff612be416565b6001145b612202576000612206565b6000195b955050505050611490565b6001600160e01b031981167fc339d10a00000000000000000000000000000000000000000000000000000000141561224d576000199150611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156114905760008073__$d8b635de2bf4a097b4e18b67d0fb68e779$__63750bdb30866040518263ffffffff1660e01b81526004016122b99190614d49565b60006040518083038186803b1580156122d157600080fd5b505af41580156122e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230d9190810190614070565b50925092505061231b612bf0565b6001600160a01b0316826001600160a01b031614801561234857506005546001600160a01b038281169116145b1561239257600061236d61235a612c08565b60055489906001600160a01b0316612e2d565b905060001981146123865761238181612c20565b61238a565b6000195b9450506123ae565b6006546001600160a01b03828116911614156123ae5760001993505b50505092915050565b600080546040517f8dccde0400000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__91638dccde0491610ad0916001600160a01b0316908890889088906004016149e9565b6040517fd3d862d100000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063d3d862d1906117f69086908690600401614b31565b6040517fd469502800000000000000000000000000000000000000000000000000000000815260009073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063d4695028906124c1908590600401614d49565b60206040518083038186803b1580156124d957600080fd5b505af41580156124ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610881919081019061401e565b60608060606000855190508060405190808252806020026020018201604052801561255657816020015b612543613691565b81526020019060019003908161253b5790505b50935080604051908082528060200260200182016040528015612583578160200160208202803883390190505b509250806040519080825280602002602001820160405280156125b0578160200160208202803883390190505b50915060005b818114612640576125ed8782815181106125cc57fe5b60200260200101518783815181106125e057fe5b6020026020010151612662565b87518890859081106125fb57fe5b6020026020010187858151811061260e57fe5b6020026020010187868151811061262157fe5b93151560209485029190910190930192909252919052526001016125b6565b50509250925092565b6060806126568484611a4d565b91506106a28484610757565b61266a613691565b600080546040517f9d3fa4b900000000000000000000000000000000000000000000000000000000815282916001600160a01b031690639d3fa4b9906126b4908890600401614e8e565b60606040518083038186803b1580156126cc57600080fd5b505afa1580156126e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127049190810190614420565b85516000546040517fa12dcc6f00000000000000000000000000000000000000000000000000000000815292955090916001600160a01b039091169063a12dcc6f906127569089908990600401614ecc565b60206040518083038186803b15801561276e57600080fd5b505afa158015612782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127a69190810190613ffe565b915060006127b387612f37565b905060006127d4886101800151896101400151612f5390919063ffffffff16565b1561280957612802826127f88a60c001518b60800151612f7890919063ffffffff16565b8a60a00151612f94565b9050612876565b60c0880151612825576128028289608001518a60a00151612f94565b6000612836848a61018001516106ab565b9050600061284d848b608001518c60a00151612f94565b90506000612864838c60c001518d60a00151612f94565b905061287082826129ff565b93505050505b61289a61289487604001518a60a00151612fb690919063ffffffff16565b826129ff565b9450600460005460208a01516040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$7a69f714cdde1cb6b62e3c39bc8c94deae$__92639caa023b92612905926001600160a01b03909216918e91908c906004016149e9565b60206040518083038186803b15801561291d57600080fd5b505af4158015612931573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129559190810190614318565b600481111561296057fe5b1461296c57600061296e565b845b945061297e886101600151612fd5565b61298757600094505b60e0880151158015906129a557506129a3886101a00151612fd5565b155b156129af57600094505b6003865160068111156129be57fe5b146129c857600094505b5050509250925092565b6001546001600160a01b031681565b6002546001600160a01b031681565b6003546001600160a01b031681565b6000818310612a0e578161184a565b5090919050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600061184a82612a7b8561318a565b613205565b60008160040183511015612aa657612aa6612aa1600385518560040161323f565b6132ae565b5001602001516001600160e01b03191690565b60008160140183511015612ada57612ada612aa1600485518560140161323f565b5001601401516001600160a01b031690565b60405160009081906060906001600160a01b038616907f70a082310000000000000000000000000000000000000000000000000000000090612b32908790602401614871565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612b859190614855565b600060405180830381855afa9150503d8060008114612bc0576040519150601f19603f3d011682016040523d82523d6000602084013e612bc5565b606091505b5091509150818015612bd8575080516020145b156107d2576106c88160005b600061184a83836132b6565b736b175474e89094c44da98b954eedeac495271d0f90565b7306af07097c9eeb7fd685c692751d5c66db49c21590565b600080612c2b612c08565b6001600160a01b0316634ba2363a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612c6557600080fd5b505af1158015612c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c9d91908101906142fc565b90506000816001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612cdc57600080fd5b505af1158015612cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d149190810190614629565b4211612d9257816001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d5557600080fd5b505af1158015612d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d8d9190810190614629565b612e05565b816001600160a01b0316639f678cca6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612dcd57600080fd5b505af1158015612de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e059190810190614629565b9050610934816b033b2e3c9fd0803ce800000086612f94565b600061184a82612a7b856132e0565b60405160009081906060906001600160a01b038716907fdd62ed3e0000000000000000000000000000000000000000000000000000000090612e759088908890602401614885565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612ec89190614855565b600060405180830381855afa9150503d8060008114612f03576040519150601f19603f3d011682016040523d82523d6000602084013e612f08565b606091505b5091509150818015612f1b575080516020145b15612f2e57612f2b816000612be4565b92505b50509392505050565b6000806000612f4584613399565b9150915061093482826129ff565b60008151835114801561184a5750508051602091820120825192909101919091201490565b60008282018381101561184a5761184a612aa16000868661359c565b600061093483612faa868563ffffffff6135bb16565b9063ffffffff6135ec16565b600082821115612fcf57612fcf612aa16002858561359c565b50900390565b60006020825181612fe257fe5b06600414612ff257506000610884565b6000613004838263ffffffff612a8016565b90506001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014613041576001915050610884565b6040517fbbb2dcf600000000000000000000000000000000000000000000000000000000815260609073__$d8b635de2bf4a097b4e18b67d0fb68e779$__9063bbb2dcf690613094908790600401614d49565b60006040518083038186803b1580156130ac57600080fd5b505af41580156130c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130e8919081019061422c565b80519093509150600090505b81811461317e576000613124600085848151811061310e57fe5b6020026020010151612a8090919063ffffffff16565b90506001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415613175576131628483613616565b1561317557600095505050505050610884565b506001016130f4565b50600195945050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc7154150881529485019590955290830191909152948101949094526001600160a01b039091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6060632800659560e01b84848460405160240161325e93929190614dbc565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915290509392505050565b805160208201fd5b600081602001835110156132d7576132d7612aa1600585518560200161323f565b50016020015190565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a75349390929091602087101561332c57fe5b601f1987018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b60008060048361014001515110156133b657506000905080611525565b6101408301516000906133cf908263ffffffff612a8016565b90506001600160e01b031981167fdc1600f300000000000000000000000000000000000000000000000000000000141561356c576101408401516040517f750bdb3000000000000000000000000000000000000000000000000000000000815260009173__$d8b635de2bf4a097b4e18b67d0fb68e779$__9163750bdb309161345a91600401614d49565b60006040518083038186803b15801561347257600080fd5b505af4158015613486573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526134ae9190810190614070565b506006549093506001600160a01b0380851691161415915061356a90505773__$ef9cb1cf4426222cc0af8204def2680bac$__63d12a7960866134ef613679565b6040518363ffffffff1660e01b815260040161350c929190614ea1565b60206040518083038186803b15801561352457600080fd5b505af4158015613538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061355c9190810190614629565b600019935093505050611525565b505b61357f8460000151856101400151610ba1565b6135928560000151866101400151611abb565b9250925050915091565b606063e946c1bb60e01b84848460405160240161325e93929190614d9a565b6000826135ca575060006106cd565b828202828482816135d757fe5b041461184a5761184a612aa16001868661359c565b60008161360257613602612aa16003858561359c565b600082848161360d57fe5b04949350505050565b8151600090600183015b818110156107d25761366185828151811061363757fe5b602002602001015186868151811061364b57fe5b6020026020010151612f5390919063ffffffff16565b15613671576001925050506106cd565b600101613620565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e90565b6040805160608101909152806000815260006020820181905260409091015290565b80356106cd81614fa4565b80516106cd81614fa4565b600082601f8301126136d9578081fd5b81356136ec6136e782614f26565b614eff565b81815291506020808301908481018184028601820187101561370d57600080fd5b60005b8481101561148b57813561372381614fa4565b84529282019290820190600101613710565b600082601f830112613745578081fd5b81356137536136e782614f26565b8181529150602080830190840160005b838110156137905761377b8760208435890101613924565b83526020928301929190910190600101613763565b5050505092915050565b600082601f8301126137aa578081fd5b81516137b86136e782614f26565b8181529150602080830190840160005b83811015613790576137e08760208451890101613972565b835260209283019291909101906001016137c8565b600082601f830112613805578081fd5b81356138136136e782614f26565b8181529150602080830190840160005b838110156137905761383b87602084358901016139c7565b83526020928301929190910190600101613823565b600082601f830112613860578081fd5b813561386e6136e782614f26565b81815291506020808301908481018184028601820187101561388f57600080fd5b60005b8481101561148b57813584529282019290820190600101613892565b600082601f8301126138be578081fd5b81516138cc6136e782614f26565b8181529150602080830190848101818402860182018710156138ed57600080fd5b60005b8481101561148b578151845292820192908201906001016138f0565b80516001600160e01b0319811681146106cd57600080fd5b600082601f830112613934578081fd5b81356139426136e782614f46565b915080825283602082850101111561395957600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613982578081fd5b81516139906136e782614f46565b91508082528360208285010111156139a757600080fd5b611490816020840160208601614f6a565b8051600581106106cd57600080fd5b60006101c08083850312156139da578182fd5b6139e381614eff565b9150506139f083836136b3565b81526139ff83602084016136b3565b6020820152613a1183604084016136b3565b6040820152613a2383606084016136b3565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115613a8557600080fd5b613a9186838701613924565b83850152610160925082850135915080821115613aad57600080fd5b613ab986838701613924565b83850152610180925082850135915080821115613ad557600080fd5b613ae186838701613924565b838501526101a0925082850135915080821115613afd57600080fd5b50613b0a85828601613924565b82840152505092915050565b60006101c0808385031215613b29578182fd5b613b3281614eff565b915050613b3f83836136be565b8152613b4e83602084016136be565b6020820152613b6083604084016136be565b6040820152613b7283606084016136be565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff80821115613bd457600080fd5b613be086838701613972565b83850152610160925082850151915080821115613bfc57600080fd5b613c0886838701613972565b83850152610180925082850151915080821115613c2457600080fd5b613c3086838701613972565b838501526101a0925082850151915080821115613c4c57600080fd5b50613b0a85828601613972565b600060208284031215613c6a578081fd5b813561184a81614fa4565b60008060408385031215613c87578081fd5b8235613c9281614fa4565b9150602083013567ffffffffffffffff811115613cad578182fd5b613cb985828601613735565b9150509250929050565b60008060008060808587031215613cd8578182fd5b8435613ce381614fa4565b9350602085013567ffffffffffffffff80821115613cff578384fd5b613d0b88838901613850565b94506040870135915080821115613d20578384fd5b613d2c88838901613850565b93506060870135915080821115613d41578283fd5b50613d4e87828801613924565b91505092959194509250565b60008060408385031215613d6c578182fd5b8235613d7781614fa4565b9150602083013567ffffffffffffffff811115613d92578182fd5b613cb985828601613924565b600080600060608486031215613db2578081fd5b8335613dbd81614fa4565b9250602084013567ffffffffffffffff811115613dd8578182fd5b613de486828701613924565b925050604084013590509250925092565b60008060408385031215613e07578182fd5b8235613e1281614fa4565b946020939093013593505050565b600060208284031215613e31578081fd5b813567ffffffffffffffff811115613e47578182fd5b610934848285016136c9565b60006020808385031215613e65578182fd5b825167ffffffffffffffff811115613e7b578283fd5b80840185601f820112613e8c578384fd5b80519150613e9c6136e783614f26565b8281528381019082850185850284018601891015613eb8578687fd5b8693505b84841015613ee257613ece89826139b8565b835260019390930192918501918501613ebc565b50979650505050505050565b600080600060608486031215613f02578081fd5b833567ffffffffffffffff80821115613f19578283fd5b613f25878388016137f5565b94506020860135915080821115613f3a578283fd5b613f46878388016136c9565b93506040860135915080821115613f5b578283fd5b50613f6886828701613850565b9150509250925092565b60008060408385031215613f84578182fd5b823567ffffffffffffffff80821115613f9b578384fd5b613fa7868387016137f5565b93506020850135915080821115613fbc578283fd5b50613cb985828601613735565b60008060408385031215613fdb578182fd5b823567ffffffffffffffff80821115613ff2578384fd5b613fa786838701613850565b60006020828403121561400f578081fd5b8151801515811461184a578182fd5b60006020828403121561402f578081fd5b61184a838361390c565b6000806040838503121561404b578182fd5b614055848461390c565b9150602083015161406581614fa4565b809150509250929050565b60008060008060808587031215614085578182fd5b845161409081614fb9565b60208601519094506140a181614fa4565b60408601519093506140b281614fa4565b606086015190925067ffffffffffffffff8111156140ce578182fd5b613d4e87828801613972565b600080600080600060a086880312156140f1578283fd5b6140fb878761390c565b9450602086015161410b81614fa4565b604087015190945067ffffffffffffffff80821115614128578485fd5b61413489838a016138ae565b94506060880151915080821115614149578283fd5b61415589838a016138ae565b9350608088015191508082111561416a578283fd5b5061417788828901613972565b9150509295509295909350565b60008060008060808587031215614199578182fd5b6141a3868661390c565b935060208501516141b381614fa4565b604086015190935067ffffffffffffffff8111156141cf578283fd5b6141db87828801613972565b606096909601519497939650505050565b600080600060608486031215614200578081fd5b61420a858561390c565b9250602084015161421a81614fa4565b80925050604084015190509250925092565b600080600060608486031215614240578081fd5b835161424b81614fb9565b602085015190935067ffffffffffffffff80821115614268578283fd5b614274878388016138ae565b93506040860151915080821115614289578283fd5b50613f688682870161379a565b6000602082840312156142a7578081fd5b813567ffffffffffffffff8111156142bd578182fd5b61093484828501613924565b6000602082840312156142da578081fd5b815167ffffffffffffffff8111156142f0578182fd5b61093484828501613972565b60006020828403121561430d578081fd5b815161184a81614fa4565b600060208284031215614329578081fd5b61184a83836139b8565b60008060008060808587031215614348578182fd5b845167ffffffffffffffff8082111561435f578384fd5b61436b88838901613972565b9550602091508187015181811115614381578485fd5b80880189601f820112614392578586fd5b805191506143a26136e783614f26565b82815284810190828601885b858110156143d7576143c58e898451880101613b16565b845292870192908701906001016143ae565b505060408b01519098509450505050808211156143f2578384fd5b6143fe888389016138ae565b93506060870151915080821115614413578283fd5b50613d4e8782880161379a565b600060608284031215614431578081fd5b61443b6060614eff565b825160078110614449578283fd5b8152602083810151908201526040928301519281019290925250919050565b60008060006060848603121561447c578081fd5b833567ffffffffffffffff811115614492578182fd5b61449e868287016139c7565b93505060208401356144af81614fa4565b929592945050506040919091013590565b600080604083850312156144d2578182fd5b823567ffffffffffffffff808211156144e9578384fd5b6144f5868387016139c7565b9350602085013591508082111561450a578283fd5b50613cb985828601613924565b60008060006060848603121561452b578081fd5b833567ffffffffffffffff811115614541578182fd5b61454d868287016139c7565b93505060208401359150604084013561456581614fa4565b809150509250925092565b600080600060608486031215614584578081fd5b833567ffffffffffffffff8082111561459b578283fd5b81860160a081890312156145ad578384fd5b6145b760a0614eff565b925080358352602081013560208401526040810135604084015260608101356145df81614fa4565b60608401526080810135828111156145f5578485fd5b61460189828401613924565b60808501525091945050506020840135915061462085604086016136b3565b90509250925092565b60006020828403121561463a578081fd5b5051919050565b6001600160a01b0316815260200190565b600061465e8383614731565b505060600190565b6001600160a01b03169052565b600081518084526020840180819550602083028101915060208501845b848110156146be5782840388526146a8848351614705565b6020988901989094509190910190600101614690565b50919695505050505050565b6000815180845260208401935060208301825b828110156146fb5781518652602095860195909101906001016146dd565b5093949350505050565b6000815180845261471d816020860160208601614f6a565b601f01601f19169290920160200192915050565b80516007811061473d57fe5b825260208181015190830152604090810151910152565b60006101c0614764848451614666565b60208301516147766020860182614666565b5060408301516147896040860182614666565b50606083015161479c6060860182614666565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152506101408084015182828701526147f583870182614705565b915050610160915081840151858203838701526148128282614705565b92505050610180808401518583038287015261482e8382614705565b9150506101a09150818401518582038387015261484b8282614705565b9695505050505050565b60008251614867818460208701614f6a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6000608082016001600160a01b038716835260206080818501528187516148c68185614bc6565b91508193508281028201838a01865b838110156148ff5786830385526148ed838351614754565b948601949250908501906001016148d5565b505086810360408801528094508851925061491a8382614bc6565b94505050818701845b8281101561494457614936858351614641565b945090830190600101614923565b50505050828103606084015261495a81856146ca565b979650505050505050565b60006001600160a01b03861682526080602083015261498760808301866146ca565b828103604084015261499981866146ca565b83810360608501526149ab8186614705565b98975050505050505050565b60006001600160a01b0385168252606060208301526149d96060830185614705565b9050826040830152949350505050565b60006001600160a01b03808716835260806020840152614a0c6080840187614754565b94166040830152506060015292915050565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b81811015614a78578351614a6481614f9a565b835260209384019390920191600101614a51565b509095945050505050565b60006060820160608352808651614a9a8184614bc6565b915060209250828801845b82811015614ac657614ab8848351614652565b935090840190600101614aa5565b50505083810382850152614ada81876146ca565b84810360408601528551808252908301915082860190845b81811015614b10578251151584529284019291840191600101614af2565b509198975050505050505050565b60006020825261184a60208301846146ca565b600060408252614b4460408301856146ca565b602083820381850152818551808452828401915082838202850101838801865b83811015614b9257601f19878403018552614b80838351614705565b94860194925090850190600101614b64565b50909998505050505050505050565b600060408252614bb460408301856146ca565b828103602084015261190d81856146ca565b90815260200190565b6001600160e01b031991909116815260200190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b60006001600160e01b0319861682526001600160a01b0380861660208401528085166040840152506080606083015261484b6080830184614705565b60006001600160e01b0319871682526001600160a01b038616602083015260a06040830152614c7560a08301866146ca565b8281036060840152614c8781866146ca565b8381036080850152614c998186614705565b9998505050505050505050565b60006001600160e01b0319861682526001600160a01b038516602083015260806040830152614cd86080830185614705565b905082606083015295945050505050565b6001600160e01b03199390931683526001600160a01b03919091166020830152604082015260600190565b60006001600160e01b03198516825260606020830152614d3760608301856146ca565b828103604084015261484b8185614673565b60006020825261184a6020830184614705565b600060808252614d6f6080830187614705565b6001600160a01b03958616602084015293909416604082015260ff9190911660609091015292915050565b6060810160048510614da857fe5b938152602081019290925260409091015290565b6060810160088510614da857fe5b60208101614dd783614f9a565b91905290565b600060808252614df06080830187614705565b602083820381850152818751808452828401915082838202850101838a01865b83811015614e3e57601f19878403018552614e2c838351614754565b94860194925090850190600101614e10565b50508681036040880152614e52818a6146ca565b945050505050828103606084015261495a8185614673565b60a08101614e788286614731565b8360608301528215156080830152949350505050565b60006020825261184a6020830184614754565b600060408252614eb46040830185614754565b90506001600160a01b03831660208301529392505050565b600060408252614edf6040830185614754565b828103602084015261190d8185614705565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715614f1e57600080fd5b604052919050565b600067ffffffffffffffff821115614f3c578081fd5b5060209081020190565b600067ffffffffffffffff821115614f5c578081fd5b50601f01601f191660200190565b60005b83811015614f85578181015183820152602001614f6d565b83811115614f94576000848401525b50505050565b6005811061075457fe5b6001600160a01b038116811461075457600080fd5b6001600160e01b03198116811461075457600080fdfea365627a7a72315820f05bfff91cf6f387ce89e4ca5ccc415a4c291e39b349e6d1c630a5574b2fee306c6578706572696d656e74616cf564736f6c63430005100040'; + '0x608060405234801561001057600080fd5b50600436106102775760003560e01c8063a5cd62ba11610160578063d186037f116100d8578063e4e6e7da1161008c578063ee18599711610071578063ee185997146105d8578063ef3bb097146105e0578063ff84e7cc146105e857610277565b8063e4e6e7da14610595578063e77286eb146105b657610277565b8063d3d862d1116100bd578063d3d862d114610540578063d469502814610553578063e25cabf71461057357610277565b8063d186037f1461051a578063d36379051461052d57610277565b8063bbb2dcf61161012f578063c82037ef11610114578063c82037ef146104dc578063ca49f47c146104e4578063d001c5dc1461050757610277565b8063bbb2dcf6146104b2578063c26cfecd146104d457610277565b8063a5cd62ba14610464578063a6627e9f14610484578063a7530f1214610497578063b43cffe11461049f57610277565b80637982653e116101f35780639baf2705116101c25780639eadc835116101a75780639eadc8351461041a578063a070cac81461043e578063a0901e511461045157610277565b80639baf2705146103fd5780639cd016051461041257610277565b80637982653e1461039657806379c9c426146103b65780637d727512146103c95780638f4ce479146103dc57610277565b80634dfdac201161024a57806363eb39921161022f57806363eb39921461033d5780636f83188e14610350578063750bdb301461037357610277565b80634dfdac20146102fd578063590aa8751461031d57610277565b806304a5618a1461027c5780630d7b7d76146102a75780632322cf76146102c857806346eb65cb146102e8575b600080fd5b61028f61028a366004614168565b6105f0565b60405161029e93929190614d64565b60405180910390f35b6102ba6102b5366004613c2c565b610689565b60405161029e929190614f6d565b6102db6102d6366004613c2c565b6106ab565b60405161029e9190614c41565b6102fb6102f6366004614168565b6106d3565b005b61031061030b366004613b47565b610757565b60405161029e9190614b99565b61033061032b366004613b2b565b6107da565b60405161029e9190614dc4565b61033061034b366004613c70565b610889565b61036361035e366004614168565b61093c565b60405161029e9493929190614e59565b610386610381366004614168565b6109dc565b60405161029e9493929190614c82565b6103a96103a43660046144b3565b610a6e565b60405161029e9190614e45565b6102db6103c43660046145bb565b610b20565b6102db6103d7366004613c2c565b610ba1565b6103ef6103ea366004614168565b611497565b60405161029e929190614c5f565b61040561152a565b60405161029e91906148c4565b610405611539565b61042d610428366004614168565b611548565b60405161029e959493929190614cbe565b6102db61044c366004614562565b6115ed565b61031061045f366004613cf2565b61166e565b610477610472366004613dc0565b6116e7565b60405161029e9190614aad565b610330610492366004613cc7565b6117a1565b610405611851565b6103306104ad366004613b95565b611860565b6104c56104c0366004614168565b611916565b60405161029e93929190614d8f565b6102db6119a6565b6104056119ac565b6104f76104f2366004614168565b6119bb565b60405161029e9493929190614d21565b610310610515366004613b47565b611a4d565b6102db610528366004613c2c565b611abb565b6103a961053b3660046144b3565b612446565b61033061054e366004613e9b565b6124a8565b610566610561366004614168565b6124fd565b60405161029e9190614c4a565b610586610581366004613e44565b6125a0565b60405161029e93929190614afa565b6105a86105a3366004613b47565b6126d8565b60405161029e929190614c1c565b6105c96105c436600461450b565b6126f1565b60405161029e93929190614ee6565b610405612960565b61040561296f565b61040561297e565b600080600073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a856040518263ffffffff1660e01b815260040161062c9190614dc4565b60606040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c91908101906140be565b9250925092509193909250565b6000806106968484610ba1565b91506106a28484611abb565b90509250929050565b60008060006106ba8585610689565b915091506106c8828261298d565b925050505b92915050565b6040517f46eb65cb00000000000000000000000000000000000000000000000000000000815273__$af40232205bf188fa8dd573e0f47eaeabc$__906346eb65cb90610723908490600401614dc4565b60006040518083038186803b15801561073b57600080fd5b505af415801561074f573d6000803e3d6000fd5b505050505b50565b606060008251905080604051908082528060200260200182016040528015610789578160200160208202803883390190505b50915060005b8181146107d2576107b3858583815181106107a657fe5b6020026020010151611abb565b8382815181106107bf57fe5b602090810291909101015260010161078f565b505092915050565b6040517f590aa87500000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063590aa8759061082d9085906004016148c4565b60006040518083038186803b15801561084557600080fd5b505af4158015610859573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610881919081019061419b565b90505b919050565b6040517f63eb399200000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__906363eb3992906108e090879087908790600401614a2d565b60006040518083038186803b1580156108f857600080fd5b505af415801561090c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610934919081019061419b565b949350505050565b60608060608073__$d80c8447db5aca01fdd367a509db3f8167$__636f83188e866040518263ffffffff1660e01b81526004016109799190614dc4565b60006040518083038186803b15801561099157600080fd5b505af41580156109a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614209565b93509350935093509193509193565b6000806000606073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b8152600401610a1a9190614dc4565b60006040518083038186803b158015610a3257600080fd5b505af4158015610a46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190613f42565b600080546040517f9caa023b00000000000000000000000000000000000000000000000000000000815273__$51238773fd6195a8a6f152a329b1854152$__91639caa023b91610ad0916001600160a01b031690889088908890600401614a5f565b60206040518083038186803b158015610ae857600080fd5b505af4158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061093491908101906141ea565b600061093484610b9c6040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876129a3565b6129fa565b600080610bb4838263ffffffff612a0e16565b90506001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415610c0f576000610bfb84601063ffffffff612a4716565b9050610c078186612a7a565b925050611490565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415610e285760008073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a866040518263ffffffff1660e01b8152600401610c7b9190614dc4565b60606040518083038186803b158015610c9357600080fd5b505af4158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ccb91908101906140be565b6040519194509250606091507f6352211e0000000000000000000000000000000000000000000000000000000090610d07908490602401614c41565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051610d8291906148a8565b600060405180830381855afa9150503d8060008114610dbd576040519150601f19603f3d011682016040523d82523d6000602084013e610dc2565b606091505b50915091506000828015610dd7575081516020145b610de2576000610df3565b610df382600c63ffffffff612a4716565b9050896001600160a01b0316816001600160a01b031614610e15576000610e18565b60015b60ff169750505050505050611490565b6001600160e01b031981167fa7cb5fb70000000000000000000000000000000000000000000000000000000014156110c457600060608073__$af40232205bf188fa8dd573e0f47eaeabc$__639eadc835876040518263ffffffff1660e01b8152600401610e969190614dc4565b60006040518083038186803b158015610eae57600080fd5b505af4158015610ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eea9190810190613fac565b5081519296509094509250905060005b8181146110ba57828181518110610f0d57fe5b602002602001015160001415610f22576110b2565b83516060907efdd58e00000000000000000000000000000000000000000000000000000000908b90879085908110610f5657fe5b6020026020010151604051602401610f6f929190614a94565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060876001600160a01b031683604051610fea91906148a8565b600060405180830381855afa9150503d8060008114611025576040519150601f19603f3d011682016040523d82523d6000602084013e61102a565b606091505b5091509150600082801561103f575081516020145b61104a57600061105b565b61105b82600063ffffffff612b7216565b9050600087868151811061106b57fe5b6020026020010151828161107b57fe5b049050806110975760009b5050505050505050505050506106cd565b8b8110806110a357508b155b156110ac57809b505b50505050505b600101610efa565b5050505050611490565b6001600160e01b031981167fc339d10a0000000000000000000000000000000000000000000000000000000014156111f7576040516060907fa85e59e4000000000000000000000000000000000000000000000000000000009061113390869060009081908190602401614dd7565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199094169390931790925260045491519092506000916001600160a01b03169061119a9084906148a8565b600060405180830381855afa9150503d80600081146111d5576040519150601f19603f3d011682016040523d82523d6000602084013e6111da565b606091505b50509050806111ea5760006111ee565b6000195b93505050611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156113205760008073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b81526004016112639190614dc4565b60006040518083038186803b15801561127b57600080fd5b505af415801561128f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112b79190810190613f42565b5092509250506112c5612b7e565b6001600160a01b0316826001600160a01b03161480156112f257506005546001600160a01b038281169116145b1561131957600061130a611304612b96565b88612a7a565b905061131581612bae565b9450505b5050611490565b6001600160e01b031981167f94cfcdd70000000000000000000000000000000000000000000000000000000014156114905760608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6866040518263ffffffff1660e01b815260040161138c9190614dc4565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906140fe565b80519194509250905060005b81811461148b578381815181106113ff57fe5b60200260200101516000141561141457611483565b60006114338985848151811061142657fe5b6020026020010151610ba1565b9050600085838151811061144357fe5b6020026020010151828161145357fe5b0490508061146b5760009750505050505050506106cd565b87811080611477575087155b15611480578097505b50505b6001016113ec565b505050505b5092915050565b60008073__$af40232205bf188fa8dd573e0f47eaeabc$__638f4ce479846040518263ffffffff1660e01b81526004016114d19190614dc4565b604080518083038186803b1580156114e857600080fd5b505af41580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115209190810190613f0b565b915091505b915091565b6004546001600160a01b031681565b6000546001600160a01b031681565b600080606080606073__$af40232205bf188fa8dd573e0f47eaeabc$__639eadc835876040518263ffffffff1660e01b81526004016115879190614dc4565b60006040518083038186803b15801561159f57600080fd5b505af41580156115b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115db9190810190613fac565b939a9299509097509550909350915050565b6000610934846116696040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876129a3565b612dac565b606080825160405190808252806020026020018201604052801561169c578160200160208202803883390190505b50905060005b83518114611490578381815181106116b657fe5b60200260200101516001600160a01b0316318282815181106116d457fe5b60209081029190910101526001016116a2565b6000546040517f02cffc4500000000000000000000000000000000000000000000000000000000815260609173__$51238773fd6195a8a6f152a329b1854152$__916302cffc459161174d916001600160a01b0390911690889088908890600401614915565b60006040518083038186803b15801561176557600080fd5b505af4158015611779573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109349190810190613d25565b6040517fa6627e9f00000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063a6627e9f906117f69086908690600401614a94565b60006040518083038186803b15801561180e57600080fd5b505af4158015611822573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184a919081019061419b565b9392505050565b6006546001600160a01b031681565b6040517fb43cffe100000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063b43cffe1906118b99088908890889088906004016149db565b60006040518083038186803b1580156118d157600080fd5b505af41580156118e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261190d919081019061419b565b95945050505050565b600060608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6856040518263ffffffff1660e01b81526004016119529190614dc4565b60006040518083038186803b15801561196a57600080fd5b505af415801561197e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067c91908101906140fe565b60075481565b6005546001600160a01b031681565b6000806060600073__$af40232205bf188fa8dd573e0f47eaeabc$__63ca49f47c866040518263ffffffff1660e01b81526004016119f99190614dc4565b60006040518083038186803b158015611a1157600080fd5b505af4158015611a25573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cd9190810190614056565b606060008251905080604051908082528060200260200182016040528015611a7f578160200160208202803883390190505b50915060005b8181146107d257611a9c8585838151811061142657fe5b838281518110611aa857fe5b6020908102919091010152600101611a85565b600080611ace838263ffffffff612a0e16565b90506001600160e01b031981167f94cfcdd7000000000000000000000000000000000000000000000000000000001415611c395760608073__$af40232205bf188fa8dd573e0f47eaeabc$__63bbb2dcf6866040518263ffffffff1660e01b8152600401611b3c9190614dc4565b60006040518083038186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b9091908101906140fe565b80519194509250905060005b818114611c2e57838181518110611baf57fe5b602002602001015160001415611bc457611c26565b6000611bd6898584815181106107a657fe5b90506000858381518110611be657fe5b60200260200101518281611bf657fe5b04905080611c0e5760009750505050505050506106cd565b87811080611c1a575087155b15611c23578097505b50505b600101611b9c565b506106cd9350505050565b6001600160e01b031981167ff47261b0000000000000000000000000000000000000000000000000000000001415611c9a576000611c7e84601063ffffffff612a4716565b600154909150610c0790829087906001600160a01b0316612dbb565b6001600160e01b031981167f02571792000000000000000000000000000000000000000000000000000000001415611fea5760008073__$af40232205bf188fa8dd573e0f47eaeabc$__6304a5618a866040518263ffffffff1660e01b8152600401611d069190614dc4565b60606040518083038186803b158015611d1e57600080fd5b505af4158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5691908101906140be565b600254604051929550909350606092507fe985e9c50000000000000000000000000000000000000000000000000000000091611da2918a916001600160a01b03909116906024016148d8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060846001600160a01b031683604051611e1d91906148a8565b600060405180830381855afa9150503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5091509150811580611e7157508051602014155b80611e8d5750611e8881600063ffffffff612b7216565b600114155b15611fdb576040516060907f081812fc0000000000000000000000000000000000000000000000000000000090611ec8908790602401614c41565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050856001600160a01b031681604051611f3f91906148a8565b600060405180830381855afa9150503d8060008114611f7a576040519150601f19603f3d011682016040523d82523d6000602084013e611f7f565b606091505b509093509150828015611f93575081516020145b8015611fc257506002546001600160a01b0316611fb783600c63ffffffff612a4716565b6001600160a01b0316145b611fcd576000611fd0565b60015b60ff169750506110ba565b60001996505050505050611490565b6001600160e01b031981167fa7cb5fb7000000000000000000000000000000000000000000000000000000001415612211576040517f9eadc83500000000000000000000000000000000000000000000000000000000815260009073__$af40232205bf188fa8dd573e0f47eaeabc$__90639eadc8359061206f908790600401614dc4565b60006040518083038186803b15801561208757600080fd5b505af415801561209b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120c39190810190613fac565b5050600354604051929450606093507fe985e9c5000000000000000000000000000000000000000000000000000000009261210d925089916001600160a01b0316906024016148d8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060006060836001600160a01b03168360405161218891906148a8565b600060405180830381855afa9150503d80600081146121c3576040519150601f19603f3d011682016040523d82523d6000602084013e6121c8565b606091505b50915091508180156121db575080516020145b80156121f757506121f381600063ffffffff612b7216565b6001145b612202576000612206565b6000195b955050505050611490565b6001600160e01b031981167fc339d10a00000000000000000000000000000000000000000000000000000000141561224d576000199150611490565b6001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156114905760008073__$af40232205bf188fa8dd573e0f47eaeabc$__63750bdb30866040518263ffffffff1660e01b81526004016122b99190614dc4565b60006040518083038186803b1580156122d157600080fd5b505af41580156122e5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230d9190810190613f42565b50925092505061231b612b7e565b6001600160a01b0316826001600160a01b031614801561234857506005546001600160a01b038281169116145b1561239257600061236d61235a612b96565b60055489906001600160a01b0316612dbb565b905060001981146123865761238181612bae565b61238a565b6000195b94505061243d565b6006546001600160a01b038281169116141561243d5773__$8ab3d6b0b5fe290c724f8d6cfdac7eabfb$__630e70a03387836123cc612ec5565b6040518463ffffffff1660e01b81526004016123ea939291906148f2565b60206040518083038186803b15801561240257600080fd5b505af4158015612416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061243a9190810190614673565b93505b50505092915050565b600080546040517f8dccde0400000000000000000000000000000000000000000000000000000000815273__$51238773fd6195a8a6f152a329b1854152$__91638dccde0491610ad0916001600160a01b031690889088908890600401614a5f565b6040517fd3d862d100000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063d3d862d1906117f69086908690600401614bac565b6040517fd469502800000000000000000000000000000000000000000000000000000000815260009073__$af40232205bf188fa8dd573e0f47eaeabc$__9063d469502890612550908590600401614dc4565b60206040518083038186803b15801561256857600080fd5b505af415801561257c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108819190810190613ef0565b6060806060600085519050806040519080825280602002602001820160405280156125e557816020015b6125d26136a6565b8152602001906001900390816125ca5790505b50935080604051908082528060200260200182016040528015612612578160200160208202803883390190505b5092508060405190808252806020026020018201604052801561263f578160200160208202803883390190505b50915060005b8181146126cf5761267c87828151811061265b57fe5b602002602001015187838151811061266f57fe5b60200260200101516126f1565b875188908590811061268a57fe5b6020026020010187858151811061269d57fe5b602002602001018786815181106126b057fe5b9315156020948502919091019093019290925291905252600101612645565b50509250925092565b6060806126e58484611a4d565b91506106a28484610757565b6126f96136a6565b600080546040517f9d3fa4b900000000000000000000000000000000000000000000000000000000815282916001600160a01b031690639d3fa4b990612743908890600401614f0a565b60606040518083038186803b15801561275b57600080fd5b505afa15801561276f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612793919081019061446b565b85516000546040517fa12dcc6f00000000000000000000000000000000000000000000000000000000815292955090916001600160a01b039091169063a12dcc6f906127e59089908990600401614f48565b60206040518083038186803b1580156127fd57600080fd5b505afa158015612811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128359190810190613ed0565b9150600061284287612edd565b90506000612863886101800151896101400151612f0990919063ffffffff16565b1561289857612891826128878a60c001518b60800151612f2e90919063ffffffff16565b8a60a00151612f4a565b9050612905565b60c08801516128b4576128918289608001518a60a00151612f4a565b60006128c5848a61018001516106ab565b905060006128dc848b608001518c60a00151612f4a565b905060006128f3838c60c001518d60a00151612f4a565b90506128ff828261298d565b93505050505b61292961292387604001518a60a00151612f6c90919063ffffffff16565b8261298d565b945061293488612f8b565b61293d57600094505b60038651600681111561294c57fe5b1461295657600094505b5050509250925092565b6001546001600160a01b031681565b6002546001600160a01b031681565b6003546001600160a01b031681565b600081831061299c578161184a565b5090919050565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b600061184a82612a0985612ff2565b61306d565b60008160040183511015612a3457612a34612a2f60038551856004016130a7565b613116565b5001602001516001600160e01b03191690565b60008160140183511015612a6857612a68612a2f60048551856014016130a7565b5001601401516001600160a01b031690565b60405160009081906060906001600160a01b038616907f70a082310000000000000000000000000000000000000000000000000000000090612ac09087906024016148c4565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612b1391906148a8565b600060405180830381855afa9150503d8060008114612b4e576040519150601f19603f3d011682016040523d82523d6000602084013e612b53565b606091505b5091509150818015612b66575080516020145b156107d2576106c88160005b600061184a838361311e565b736b175474e89094c44da98b954eedeac495271d0f90565b7306af07097c9eeb7fd685c692751d5c66db49c21590565b600080612bb9612b96565b6001600160a01b0316634ba2363a6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612bf357600080fd5b505af1158015612c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c2b91908101906141ce565b90506000816001600160a01b03166320aba08b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612c6a57600080fd5b505af1158015612c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ca29190810190614673565b4211612d2057816001600160a01b031663c92aecc46040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612ce357600080fd5b505af1158015612cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d1b9190810190614673565b612d93565b816001600160a01b0316639f678cca6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d5b57600080fd5b505af1158015612d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d939190810190614673565b9050610934816b033b2e3c9fd0803ce800000086612f4a565b600061184a82612a0985613148565b60405160009081906060906001600160a01b038716907fdd62ed3e0000000000000000000000000000000000000000000000000000000090612e0390889088906024016148d8565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b0319909416939093179092529051612e5691906148a8565b600060405180830381855afa9150503d8060008114612e91576040519150601f19603f3d011682016040523d82523d6000602084013e612e96565b606091505b5091509150818015612ea9575080516020145b15612ebc57612eb9816000612b72565b92505b50509392505050565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e90565b6000806000612eeb84613201565b91509150612ef9828261298d565b925061093483856080015161298d565b60008151835114801561184a5750508051602091820120825192909101919091201490565b60008282018381101561184a5761184a612a2f60008686613414565b600061093483612f60868563ffffffff61343316565b9063ffffffff61346416565b600082821115612f8557612f85612a2f60028585613414565b50900390565b6000612f9b82610140015161348e565b8015612fbc575060c08201511580612fbc5750612fbc82610180015161348e565b8015612fd15750612fd182610160015161348e565b8015610881575060e082015115806108815750610881826101a0015161348e565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc7154150881529485019590955290830191909152948101949094526001600160a01b039091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6060632800659560e01b8484846040516024016130c693929190614e37565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915290509392505050565b805160208201fd5b6000816020018351101561313f5761313f612a2f60058551856020016130a7565b50016020015190565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a75349390929091602087101561319457fe5b601f1987018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b600080600483610140015151101561321e57506000905080611525565b610140830151600090613237908263ffffffff612a0e16565b90506001600160e01b031981167fdc1600f30000000000000000000000000000000000000000000000000000000014156133e4576101408401516040517f750bdb3000000000000000000000000000000000000000000000000000000000815260009173__$af40232205bf188fa8dd573e0f47eaeabc$__9163750bdb30916132c291600401614dc4565b60006040518083038186803b1580156132da57600080fd5b505af41580156132ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133169190810190613f42565b506006549093506001600160a01b038085169116141591506133e290505773__$8ab3d6b0b5fe290c724f8d6cfdac7eabfb$__63d12a796086613357612ec5565b6040518363ffffffff1660e01b8152600401613374929190614f1d565b60206040518083038186803b15801561338c57600080fd5b505af41580156133a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133c49190810190614673565b6133d78660000151876101400151611abb565b935093505050611525565b505b6133f78460000151856101400151610ba1565b61340a8560000151866101400151611abb565b9250925050915091565b606063e946c1bb60e01b8484846040516024016130c693929190614e15565b600082613442575060006106cd565b8282028284828161344f57fe5b041461184a5761184a612a2f60018686613414565b60008161347a5761347a612a2f60038585613414565b600082848161348557fe5b04949350505050565b6000602082518161349b57fe5b066004146134ab57506000610884565b60006134bd838263ffffffff612a0e16565b90506001600160e01b031981167f94cfcdd700000000000000000000000000000000000000000000000000000000146134fa576001915050610884565b6040517fbbb2dcf600000000000000000000000000000000000000000000000000000000815260609073__$af40232205bf188fa8dd573e0f47eaeabc$__9063bbb2dcf69061354d908790600401614dc4565b60006040518083038186803b15801561356557600080fd5b505af4158015613579573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135a191908101906140fe565b80519093509150600090505b8181146136375760006135dd60008584815181106135c757fe5b6020026020010151612a0e90919063ffffffff16565b90506001600160e01b031981167f0257179200000000000000000000000000000000000000000000000000000000141561362e5761361b8483613643565b1561362e57600095505050505050610884565b506001016135ad565b50600195945050505050565b8151600090600183015b818110156107d25761368e85828151811061366457fe5b602002602001015186868151811061367857fe5b6020026020010151612f0990919063ffffffff16565b1561369e576001925050506106cd565b60010161364d565b6040805160608101909152806000815260006020820181905260409091015290565b80356106cd81615016565b80516106cd81615016565b600082601f8301126136ee578081fd5b81356137016136fc82614fa2565b614f7b565b81815291506020808301908481018184028601820187101561372257600080fd5b60005b8481101561148b57813561373881615016565b84529282019290820190600101613725565b600082601f83011261375a578081fd5b81356137686136fc82614fa2565b8181529150602080830190840160005b838110156137a5576137908760208435890101613939565b83526020928301929190910190600101613778565b5050505092915050565b600082601f8301126137bf578081fd5b81516137cd6136fc82614fa2565b8181529150602080830190840160005b838110156137a5576137f58760208451890101613987565b835260209283019291909101906001016137dd565b600082601f83011261381a578081fd5b81356138286136fc82614fa2565b8181529150602080830190840160005b838110156137a55761385087602084358901016139dc565b83526020928301929190910190600101613838565b600082601f830112613875578081fd5b81356138836136fc82614fa2565b8181529150602080830190848101818402860182018710156138a457600080fd5b60005b8481101561148b578135845292820192908201906001016138a7565b600082601f8301126138d3578081fd5b81516138e16136fc82614fa2565b81815291506020808301908481018184028601820187101561390257600080fd5b60005b8481101561148b57815184529282019290820190600101613905565b80516001600160e01b0319811681146106cd57600080fd5b600082601f830112613949578081fd5b81356139576136fc82614fc2565b915080825283602082850101111561396e57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613997578081fd5b81516139a56136fc82614fc2565b91508082528360208285010111156139bc57600080fd5b611490816020840160208601614fe6565b8051600581106106cd57600080fd5b60006101c08083850312156139ef578182fd5b6139f881614f7b565b915050613a0583836136c8565b8152613a1483602084016136c8565b6020820152613a2683604084016136c8565b6040820152613a3883606084016136c8565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff80821115613a9a57600080fd5b613aa686838701613939565b83850152610160925082850135915080821115613ac257600080fd5b613ace86838701613939565b83850152610180925082850135915080821115613aea57600080fd5b613af686838701613939565b838501526101a0925082850135915080821115613b1257600080fd5b50613b1f85828601613939565b82840152505092915050565b600060208284031215613b3c578081fd5b813561184a81615016565b60008060408385031215613b59578081fd5b8235613b6481615016565b9150602083013567ffffffffffffffff811115613b7f578182fd5b613b8b8582860161374a565b9150509250929050565b60008060008060808587031215613baa578182fd5b8435613bb581615016565b9350602085013567ffffffffffffffff80821115613bd1578384fd5b613bdd88838901613865565b94506040870135915080821115613bf2578384fd5b613bfe88838901613865565b93506060870135915080821115613c13578283fd5b50613c2087828801613939565b91505092959194509250565b60008060408385031215613c3e578182fd5b8235613c4981615016565b9150602083013567ffffffffffffffff811115613c64578182fd5b613b8b85828601613939565b600080600060608486031215613c84578081fd5b8335613c8f81615016565b9250602084013567ffffffffffffffff811115613caa578182fd5b613cb686828701613939565b925050604084013590509250925092565b60008060408385031215613cd9578182fd5b8235613ce481615016565b946020939093013593505050565b600060208284031215613d03578081fd5b813567ffffffffffffffff811115613d19578182fd5b610934848285016136de565b60006020808385031215613d37578182fd5b825167ffffffffffffffff811115613d4d578283fd5b80840185601f820112613d5e578384fd5b80519150613d6e6136fc83614fa2565b8281528381019082850185850284018601891015613d8a578687fd5b8693505b84841015613db457613da089826139cd565b835260019390930192918501918501613d8e565b50979650505050505050565b600080600060608486031215613dd4578081fd5b833567ffffffffffffffff80821115613deb578283fd5b613df78783880161380a565b94506020860135915080821115613e0c578283fd5b613e18878388016136de565b93506040860135915080821115613e2d578283fd5b50613e3a86828701613865565b9150509250925092565b60008060408385031215613e56578182fd5b823567ffffffffffffffff80821115613e6d578384fd5b613e798683870161380a565b93506020850135915080821115613e8e578283fd5b50613b8b8582860161374a565b60008060408385031215613ead578182fd5b823567ffffffffffffffff80821115613ec4578384fd5b613e7986838701613865565b600060208284031215613ee1578081fd5b8151801515811461184a578182fd5b600060208284031215613f01578081fd5b61184a8383613921565b60008060408385031215613f1d578182fd5b613f278484613921565b91506020830151613f3781615016565b809150509250929050565b60008060008060808587031215613f57578182fd5b8451613f628161502b565b6020860151909450613f7381615016565b6040860151909350613f8481615016565b606086015190925067ffffffffffffffff811115613fa0578182fd5b613c2087828801613987565b600080600080600060a08688031215613fc3578283fd5b613fcd8787613921565b94506020860151613fdd81615016565b604087015190945067ffffffffffffffff80821115613ffa578485fd5b61400689838a016138c3565b9450606088015191508082111561401b578283fd5b61402789838a016138c3565b9350608088015191508082111561403c578283fd5b5061404988828901613987565b9150509295509295909350565b6000806000806080858703121561406b578182fd5b6140758686613921565b9350602085015161408581615016565b604086015190935067ffffffffffffffff8111156140a1578283fd5b6140ad87828801613987565b606096909601519497939650505050565b6000806000606084860312156140d2578081fd5b6140dc8585613921565b925060208401516140ec81615016565b80925050604084015190509250925092565b600080600060608486031215614112578081fd5b835161411d8161502b565b602085015190935067ffffffffffffffff8082111561413a578283fd5b614146878388016138c3565b9350604086015191508082111561415b578283fd5b50613e3a868287016137af565b600060208284031215614179578081fd5b813567ffffffffffffffff81111561418f578182fd5b61093484828501613939565b6000602082840312156141ac578081fd5b815167ffffffffffffffff8111156141c2578182fd5b61093484828501613987565b6000602082840312156141df578081fd5b815161184a81615016565b6000602082840312156141fb578081fd5b81516005811061184a578182fd5b6000806000806080858703121561421e578182fd5b845167ffffffffffffffff811115614234578283fd5b61424087828801613987565b945050602085015167ffffffffffffffff81111561425c578283fd5b86601f828801011261426c578283fd5b8086015161427c6136fc82614fa2565b8181526020808201919089850101865b84811015614415578151868c01016101c0601f19828f030112156142ae578889fd5b6142b96101c0614f7b565b6142c68e602084016136d3565b81526142d58e604084016136d3565b60208201526142e78e606084016136d3565b60408201526142f98e608084016136d3565b606082015260a0820151608082015260c082015160a082015260e082015160c082015261010082015160e082015261012082015161010082015261014082015161012082015261016082015167ffffffffffffffff811115614359578a8bfd5b6143688f602083860101613987565b6101408301525061018082015167ffffffffffffffff811115614389578a8bfd5b6143988f602083860101613987565b610160830152506101a082015167ffffffffffffffff8111156143b9578a8bfd5b6143c88f602083860101613987565b610180830152506101c082015167ffffffffffffffff8111156143e9578a8bfd5b6143f88f602083860101613987565b6101a083015250855250602093840193919091019060010161428c565b505080965050505050604085015167ffffffffffffffff811115614437578283fd5b614443878288016138c3565b925050606085015167ffffffffffffffff81111561445f578182fd5b613c20878288016137af565b60006060828403121561447c578081fd5b6144866060614f7b565b825160078110614494578283fd5b8152602083810151908201526040928301519281019290925250919050565b6000806000606084860312156144c7578081fd5b833567ffffffffffffffff8111156144dd578182fd5b6144e9868287016139dc565b93505060208401356144fa81615016565b929592945050506040919091013590565b6000806040838503121561451d578182fd5b823567ffffffffffffffff80821115614534578384fd5b614540868387016139dc565b93506020850135915080821115614555578283fd5b50613b8b85828601613939565b600080600060608486031215614576578081fd5b833567ffffffffffffffff81111561458c578182fd5b614598868287016139dc565b9350506020840135915060408401356145b081615016565b809150509250925092565b6000806000606084860312156145cf578081fd5b833567ffffffffffffffff808211156145e6578283fd5b81860160a081890312156145f8578384fd5b61460260a0614f7b565b925080358352602081013560208401526040810135604084015261462988606083016136c8565b606084015260808101358281111561463f578485fd5b61464b89828401613939565b60808501525091945050506020840135915061466a85604086016136c8565b90509250925092565b600060208284031215614684578081fd5b5051919050565b6001600160a01b0316815260200190565b1515815260200190565b60006146b28383614784565b505060600190565b6001600160a01b03169052565b60008282518085526020808601955080818302840101818601855b8481101561471057601f198684030189526146fe838351614758565b988401989250908301906001016146e2565b5090979650505050505050565b6000815180845260208401935060208301825b8281101561474e578151865260209586019590910190600101614730565b5093949350505050565b60008151808452614770816020860160208601614fe6565b601f01601f19169290920160200192915050565b80516007811061479057fe5b825260208181015190830152604090810151910152565b60006101c06147b78484516146ba565b60208301516147c960208601826146ba565b5060408301516147dc60408601826146ba565b5060608301516147ef60608601826146ba565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e085015261010080840151818601525061012080840151818601525061014080840151828287015261484883870182614758565b915050610160915081840151858203838701526148658282614758565b9250505061018080840151858303828701526148818382614758565b9150506101a09150818401518582038387015261489e8282614758565b9695505050505050565b600082516148ba818460208701614fe6565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000608082016001600160a01b0387168352602060808185015281875161493c8185614c41565b91508193508281028201838a01865b838110156149755786830385526149638383516147a7565b9486019492509085019060010161494b565b50508681036040880152809450885192506149908382614c41565b94505050818701845b828110156149ba576149ac85835161468b565b945090830190600101614999565b5050505082810360608401526149d0818561471d565b979650505050505050565b60006001600160a01b0386168252608060208301526149fd608083018661471d565b8281036040840152614a0f818661471d565b8381036060850152614a218186614758565b98975050505050505050565b60006001600160a01b038516825260606020830152614a4f6060830185614758565b9050826040830152949350505050565b60006001600160a01b03808716835260806020840152614a8260808401876147a7565b94166040830152506060015292915050565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000918401906040840190835b81811015614aef57835160058110614adb57fe5b835260209384019390920191600101614ac7565b509095945050505050565b60006060820160608352808651614b118184614c41565b9150602088019250835b81811015614b3f57614b2e8385516146a6565b602094909401939250600101614b1b565b50508381036020850152614b53818761471d565b9150508281036040840152808451614b6b8184614c41565b9150602086019250835b8181101561471057614b8883855161469c565b602094909401939250600101614b75565b60006020825261184a602083018461471d565b600060408252614bbf604083018561471d565b602083820381850152818551808452828401915082838202850101838801865b83811015614c0d57601f19878403018552614bfb838351614758565b94860194925090850190600101614bdf565b50909998505050505050505050565b600060408252614c2f604083018561471d565b828103602084015261190d818561471d565b90815260200190565b6001600160e01b031991909116815260200190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b60006001600160e01b0319861682526001600160a01b0380861660208401528085166040840152506080606083015261489e6080830184614758565b60006001600160e01b0319871682526001600160a01b038616602083015260a06040830152614cf060a083018661471d565b8281036060840152614d02818661471d565b8381036080850152614d148186614758565b9998505050505050505050565b60006001600160e01b0319861682526001600160a01b038516602083015260806040830152614d536080830185614758565b905082606083015295945050505050565b6001600160e01b03199390931683526001600160a01b03919091166020830152604082015260600190565b60006001600160e01b03198516825260606020830152614db2606083018561471d565b828103604084015261489e81856146c7565b60006020825261184a6020830184614758565b600060808252614dea6080830187614758565b6001600160a01b03958616602084015293909416604082015260ff9190911660609091015292915050565b6060810160048510614e2357fe5b938152602081019290925260409091015290565b6060810160088510614e2357fe5b6020810160058310614e5357fe5b91905290565b600060808252614e6c6080830187614758565b602083820381850152818751808452828401915082838202850101838a01865b83811015614eba57601f19878403018552614ea88383516147a7565b94860194925090850190600101614e8c565b50508681036040880152614ece818a61471d565b94505050505082810360608401526149d081856146c7565b60a08101614ef48286614784565b8360608301528215156080830152949350505050565b60006020825261184a60208301846147a7565b600060408252614f3060408301856147a7565b90506001600160a01b03831660208301529392505050565b600060408252614f5b60408301856147a7565b828103602084015261190d8185614758565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715614f9a57600080fd5b604052919050565b600067ffffffffffffffff821115614fb8578081fd5b5060209081020190565b600067ffffffffffffffff821115614fd8578081fd5b50601f01601f191660200190565b60005b83811015615001578181015183820152602001614fe9565b83811115615010576000848401525b50505050565b6001600160a01b038116811461075457600080fd5b6001600160e01b03198116811461075457600080fdfea365627a7a7231582042d7fae961b1460c70c7ec8ff1688f8680c3323368dee844634a86b8a2f15fdb6c6578706572696d656e74616cf564736f6c63430005110040'; public static contractName = 'DevUtils'; private readonly _methodABIIndex: { [name: string]: number } = {}; public static async deployFrom0xArtifactAsync( @@ -1602,7 +1602,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1622,7 +1622,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1653,7 +1653,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1690,7 +1690,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1723,7 +1723,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1758,7 +1758,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1793,7 +1793,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1827,7 +1827,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1862,7 +1862,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1943,7 +1943,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -1986,7 +1986,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2029,7 +2029,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -2066,7 +2066,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -2100,7 +2100,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -2134,7 +2134,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -2175,7 +2175,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -2200,7 +2200,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2220,7 +2220,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2240,7 +2240,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2260,7 +2260,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2291,7 +2291,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2307,15 +2307,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2346,7 +2346,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2362,15 +2362,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2404,7 +2404,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2420,8 +2420,8 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -2431,7 +2431,7 @@ export class DevUtilsContract extends BaseContract { ): Promise<[BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2462,7 +2462,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2478,15 +2478,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2517,7 +2517,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2533,15 +2533,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2575,7 +2575,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2591,8 +2591,8 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -2602,7 +2602,7 @@ export class DevUtilsContract extends BaseContract { ): Promise<[BigNumber[], BigNumber[]]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2628,7 +2628,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2675,7 +2675,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -2729,7 +2729,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2745,8 +2745,8 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -2758,7 +2758,7 @@ export class DevUtilsContract extends BaseContract { > { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2821,7 +2821,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2837,8 +2837,8 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -2854,7 +2854,7 @@ export class DevUtilsContract extends BaseContract { > { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2913,7 +2913,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2929,15 +2929,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2994,7 +2994,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3010,15 +3010,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3076,7 +3076,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3092,15 +3092,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3137,7 +3137,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -3169,7 +3169,7 @@ export class DevUtilsContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3185,15 +3185,15 @@ export class DevUtilsContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3222,7 +3222,7 @@ export class DevUtilsContract extends BaseContract { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); } @@ -3243,7 +3243,7 @@ export class DevUtilsContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts b/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts index f382931e80..43af87bf3e 100644 --- a/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts +++ b/packages/contract-wrappers/src/generated-wrappers/erc20_bridge_sampler.ts @@ -896,7 +896,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -931,7 +931,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -986,7 +986,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1042,7 +1042,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1083,7 +1083,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1121,7 +1121,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1162,7 +1162,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1208,7 +1208,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1248,7 +1248,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1280,7 +1280,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1317,7 +1317,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1356,7 +1356,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1398,7 +1398,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1437,7 +1437,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1478,7 +1478,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1524,7 +1524,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1564,7 +1564,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1596,7 +1596,7 @@ export class ERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts b/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts index 0a10c06517..ad3663cfc1 100644 --- a/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts +++ b/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts @@ -435,7 +435,7 @@ export class ERC20TokenContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -465,7 +465,7 @@ export class ERC20TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -481,15 +481,15 @@ export class ERC20TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -515,7 +515,7 @@ export class ERC20TokenContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -539,7 +539,7 @@ export class ERC20TokenContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -569,7 +569,7 @@ export class ERC20TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -585,15 +585,15 @@ export class ERC20TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -625,7 +625,7 @@ export class ERC20TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -641,15 +641,15 @@ export class ERC20TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts b/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts index 6e97f136fe..7c812416ea 100644 --- a/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts +++ b/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts @@ -534,7 +534,7 @@ export class ERC721TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -550,15 +550,15 @@ export class ERC721TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -585,7 +585,7 @@ export class ERC721TokenContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -611,7 +611,7 @@ export class ERC721TokenContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -633,7 +633,7 @@ export class ERC721TokenContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -660,7 +660,7 @@ export class ERC721TokenContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -692,7 +692,7 @@ export class ERC721TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -708,15 +708,15 @@ export class ERC721TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -764,7 +764,7 @@ export class ERC721TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -780,15 +780,15 @@ export class ERC721TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -823,7 +823,7 @@ export class ERC721TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -839,15 +839,15 @@ export class ERC721TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -881,7 +881,7 @@ export class ERC721TokenContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -897,15 +897,15 @@ export class ERC721TokenContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/exchange.ts b/packages/contract-wrappers/src/generated-wrappers/exchange.ts index 3b5de54cee..bb5e048f4e 100644 --- a/packages/contract-wrappers/src/generated-wrappers/exchange.ts +++ b/packages/contract-wrappers/src/generated-wrappers/exchange.ts @@ -3233,7 +3233,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3253,7 +3253,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3275,7 +3275,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3320,7 +3320,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3336,15 +3336,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3384,7 +3384,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3400,15 +3400,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3469,7 +3469,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3485,8 +3485,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -3504,7 +3504,7 @@ export class ExchangeContract extends BaseContract { > { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3573,7 +3573,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3589,8 +3589,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -3608,7 +3608,7 @@ export class ExchangeContract extends BaseContract { > { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3677,7 +3677,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3693,8 +3693,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -3712,7 +3712,7 @@ export class ExchangeContract extends BaseContract { > { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3811,7 +3811,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3827,8 +3827,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -3855,7 +3855,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3969,7 +3969,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3985,8 +3985,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -4013,7 +4013,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4078,7 +4078,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4094,15 +4094,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4131,7 +4131,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4147,15 +4147,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4176,7 +4176,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4196,7 +4196,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4222,7 +4222,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4238,15 +4238,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4285,7 +4285,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4301,15 +4301,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4367,7 +4367,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4383,8 +4383,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -4400,7 +4400,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4464,7 +4464,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4480,8 +4480,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -4497,7 +4497,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4524,7 +4524,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4550,7 +4550,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4595,7 +4595,7 @@ export class ExchangeContract extends BaseContract { ): Promise<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4629,7 +4629,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4676,7 +4676,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4713,7 +4713,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4772,7 +4772,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4788,8 +4788,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -4805,7 +4805,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4871,7 +4871,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4887,8 +4887,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -4904,7 +4904,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -4969,7 +4969,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -4985,8 +4985,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -5002,7 +5002,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5068,7 +5068,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5084,8 +5084,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -5101,7 +5101,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5196,7 +5196,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5212,8 +5212,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -5240,7 +5240,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5351,7 +5351,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5367,8 +5367,8 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -5395,7 +5395,7 @@ export class ExchangeContract extends BaseContract { }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5439,7 +5439,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5459,7 +5459,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5487,7 +5487,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5503,15 +5503,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5533,7 +5533,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5553,7 +5553,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5573,7 +5573,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5601,7 +5601,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5617,15 +5617,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5653,7 +5653,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5669,15 +5669,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5704,7 +5704,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5720,15 +5720,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5758,7 +5758,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5774,15 +5774,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5825,7 +5825,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5841,15 +5841,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5870,7 +5870,7 @@ export class ExchangeContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -5897,7 +5897,7 @@ export class ExchangeContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -5913,15 +5913,15 @@ export class ExchangeContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/forwarder.ts b/packages/contract-wrappers/src/generated-wrappers/forwarder.ts index 0816971340..4740c45472 100644 --- a/packages/contract-wrappers/src/generated-wrappers/forwarder.ts +++ b/packages/contract-wrappers/src/generated-wrappers/forwarder.ts @@ -785,7 +785,7 @@ export class ForwarderContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -805,7 +805,7 @@ export class ForwarderContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -825,7 +825,7 @@ export class ForwarderContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -856,7 +856,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -872,15 +872,15 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -943,7 +943,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -959,8 +959,8 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -970,7 +970,7 @@ export class ForwarderContract extends BaseContract { ): Promise<[BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1037,7 +1037,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1053,8 +1053,8 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -1064,7 +1064,7 @@ export class ForwarderContract extends BaseContract { ): Promise<[BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1128,7 +1128,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1144,8 +1144,8 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, @@ -1155,7 +1155,7 @@ export class ForwarderContract extends BaseContract { ): Promise<[BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1202,7 +1202,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1218,15 +1218,15 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1274,7 +1274,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1290,15 +1290,15 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1324,7 +1324,7 @@ export class ForwarderContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1351,7 +1351,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1367,15 +1367,15 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1405,7 +1405,7 @@ export class ForwarderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1421,15 +1421,15 @@ export class ForwarderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/gods_unchained_validator.ts b/packages/contract-wrappers/src/generated-wrappers/gods_unchained_validator.ts index 67ed233daf..487085c671 100644 --- a/packages/contract-wrappers/src/generated-wrappers/gods_unchained_validator.ts +++ b/packages/contract-wrappers/src/generated-wrappers/gods_unchained_validator.ts @@ -296,7 +296,7 @@ export class GodsUnchainedValidatorContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts b/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts index 720383f44a..e86e231599 100644 --- a/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts +++ b/packages/contract-wrappers/src/generated-wrappers/i_asset_data.ts @@ -377,7 +377,7 @@ export class IAssetDataContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -393,15 +393,15 @@ export class IAssetDataContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -437,7 +437,7 @@ export class IAssetDataContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -453,15 +453,15 @@ export class IAssetDataContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -492,7 +492,7 @@ export class IAssetDataContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -508,15 +508,15 @@ export class IAssetDataContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -545,7 +545,7 @@ export class IAssetDataContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -561,15 +561,15 @@ export class IAssetDataContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -601,7 +601,7 @@ export class IAssetDataContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -617,15 +617,15 @@ export class IAssetDataContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -662,7 +662,7 @@ export class IAssetDataContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -678,15 +678,15 @@ export class IAssetDataContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts b/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts index ebb3db4029..ef0c2dc001 100644 --- a/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts +++ b/packages/contract-wrappers/src/generated-wrappers/i_erc20_bridge_sampler.ts @@ -865,7 +865,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -900,7 +900,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -954,7 +954,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1008,7 +1008,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1049,7 +1049,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1088,7 +1088,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1129,7 +1129,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1175,7 +1175,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1215,7 +1215,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1247,7 +1247,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1284,7 +1284,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1323,7 +1323,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1361,7 +1361,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1402,7 +1402,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1448,7 +1448,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1488,7 +1488,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1520,7 +1520,7 @@ export class IERC20BridgeSamplerContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider.ts b/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider.ts index 5182ba1eea..652c2b6fab 100644 --- a/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider.ts +++ b/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider.ts @@ -359,7 +359,7 @@ export class ILiquidityProviderContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -375,15 +375,15 @@ export class ILiquidityProviderContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -420,7 +420,7 @@ export class ILiquidityProviderContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -455,7 +455,7 @@ export class ILiquidityProviderContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider_registry.ts b/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider_registry.ts index 632fe6f41a..cad071c486 100644 --- a/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider_registry.ts +++ b/packages/contract-wrappers/src/generated-wrappers/i_liquidity_provider_registry.ts @@ -280,7 +280,7 @@ export class ILiquidityProviderRegistryContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts b/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts index 1fa812fef1..c2a9f824bf 100644 --- a/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts +++ b/packages/contract-wrappers/src/generated-wrappers/i_transform_erc20.ts @@ -36,14 +36,20 @@ import * as ethers from 'ethers'; // tslint:enable:no-unused-variable export type ITransformERC20EventArgs = + | ITransformERC20QuoteSignerUpdatedEventArgs | ITransformERC20TransformedERC20EventArgs | ITransformERC20TransformerDeployerUpdatedEventArgs; export enum ITransformERC20Events { + QuoteSignerUpdated = 'QuoteSignerUpdated', TransformedERC20 = 'TransformedERC20', TransformerDeployerUpdated = 'TransformerDeployerUpdated', } +export interface ITransformERC20QuoteSignerUpdatedEventArgs extends DecodedLogArgs { + quoteSigner: string; +} + export interface ITransformERC20TransformedERC20EventArgs extends DecodedLogArgs { taker: string; inputToken: string; @@ -173,6 +179,19 @@ export class ITransformERC20Contract extends BaseContract { */ public static ABI(): ContractAbi { const abi = [ + { + anonymous: false, + inputs: [ + { + name: 'quoteSigner', + type: 'address', + indexed: false, + }, + ], + name: 'QuoteSignerUpdated', + outputs: [], + type: 'event', + }, { anonymous: false, inputs: [ @@ -222,39 +241,49 @@ export class ITransformERC20Contract extends BaseContract { { inputs: [ { - name: 'callDataHash', - type: 'bytes32', - }, - { - name: 'taker', - type: 'address', - }, - { - name: 'inputToken', - type: 'address', - }, - { - name: 'outputToken', - type: 'address', - }, - { - name: 'inputTokenAmount', - type: 'uint256', - }, - { - name: 'minOutputTokenAmount', - type: 'uint256', - }, - { - name: 'transformations', - type: 'tuple[]', + name: 'args', + type: 'tuple', components: [ { - name: 'deploymentNonce', - type: 'uint32', + name: 'taker', + type: 'address', }, { - name: 'data', + name: 'inputToken', + type: 'address', + }, + { + name: 'outputToken', + type: 'address', + }, + { + name: 'inputTokenAmount', + type: 'uint256', + }, + { + name: 'minOutputTokenAmount', + type: 'uint256', + }, + { + name: 'transformations', + type: 'tuple[]', + components: [ + { + name: 'deploymentNonce', + type: 'uint32', + }, + { + name: 'data', + type: 'bytes', + }, + ], + }, + { + name: 'callDataHash', + type: 'bytes32', + }, + { + name: 'callDataSignature', type: 'bytes', }, ], @@ -282,6 +311,18 @@ export class ITransformERC20Contract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, + { + inputs: [], + name: 'getQuoteSigner', + outputs: [ + { + name: 'signer', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, { inputs: [], name: 'getTransformWallet', @@ -306,6 +347,18 @@ export class ITransformERC20Contract extends BaseContract { stateMutability: 'view', type: 'function', }, + { + inputs: [ + { + name: 'quoteSigner', + type: 'address', + }, + ], + name: 'setQuoteSigner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, { inputs: [ { @@ -442,36 +495,22 @@ export class ITransformERC20Contract extends BaseContract { /** * Internal version of `transformERC20()`. Only callable from within. - * @param callDataHash Hash of the ingress calldata. - * @param taker The taker address. - * @param inputToken The token being provided by the taker. If - * `0xeee...`, ETH is implied and should be provided with the call.` - * @param outputToken The token to be acquired by the taker. `0xeee...` - * implies ETH. - * @param inputTokenAmount The amount of `inputToken` to take from the taker. - * @param minOutputTokenAmount The minimum amount of `outputToken` the taker - * must receive for the entire transformation to succeed. - * @param transformations The transformations to execute on the token - * balance(s) in sequence. + * @param args A `TransformERC20Args` struct. */ - public _transformERC20( - callDataHash: string, - taker: string, - inputToken: string, - outputToken: string, - inputTokenAmount: BigNumber, - minOutputTokenAmount: BigNumber, - transformations: Array<{ deploymentNonce: number | BigNumber; data: string }>, - ): ContractTxFunctionObj { + public _transformERC20(args: { + taker: string; + inputToken: string; + outputToken: string; + inputTokenAmount: BigNumber; + minOutputTokenAmount: BigNumber; + transformations: Array<{ deploymentNonce: number | BigNumber; data: string }>; + callDataHash: string; + callDataSignature: string; + }): ContractTxFunctionObj { const self = (this as any) as ITransformERC20Contract; - assert.isString('callDataHash', callDataHash); - assert.isString('taker', taker); - assert.isString('inputToken', inputToken); - assert.isString('outputToken', outputToken); - assert.isBigNumber('inputTokenAmount', inputTokenAmount); - assert.isBigNumber('minOutputTokenAmount', minOutputTokenAmount); - assert.isArray('transformations', transformations); - const functionSignature = '_transformERC20(bytes32,address,address,address,uint256,uint256,(uint32,bytes)[])'; + + const functionSignature = + '_transformERC20((address,address,address,uint256,uint256,(uint32,bytes)[],bytes32,bytes))'; return { async sendTransactionAsync( @@ -479,7 +518,7 @@ export class ITransformERC20Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -495,15 +534,15 @@ export class ITransformERC20Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -511,22 +550,14 @@ export class ITransformERC20Contract extends BaseContract { return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - return self._strictEncodeArguments(functionSignature, [ - callDataHash, - taker.toLowerCase(), - inputToken.toLowerCase(), - outputToken.toLowerCase(), - inputTokenAmount, - minOutputTokenAmount, - transformations, - ]); + return self._strictEncodeArguments(functionSignature, [args]); }, }; } /** * Deploy a new flash wallet instance and replace the current one with it. * Useful if we somehow break the current wallet instance. - * Anyone can call this. + * Only callable by the owner. */ public createTransformWallet(): ContractTxFunctionObj { const self = (this as any) as ITransformERC20Contract; @@ -538,7 +569,7 @@ export class ITransformERC20Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -554,15 +585,64 @@ export class ITransformERC20Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, []); + }, + }; + } + /** + * Return the optional signer for `transformERC20()` calldata. + */ + public getQuoteSigner(): ContractTxFunctionObj { + const self = (this as any) as ITransformERC20Contract; + const functionSignature = 'getQuoteSigner()'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -588,7 +668,7 @@ export class ITransformERC20Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -604,15 +684,15 @@ export class ITransformERC20Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -637,7 +717,7 @@ export class ITransformERC20Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -653,15 +733,15 @@ export class ITransformERC20Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -674,15 +754,14 @@ export class ITransformERC20Contract extends BaseContract { }; } /** - * Replace the allowed deployer for transformers. + * Replace the optional signer for `transformERC20()` calldata. * Only callable by the owner. - * @param transformerDeployer The address of the trusted deployer for - * transformers. + * @param quoteSigner The address of the new calldata signer. */ - public setTransformerDeployer(transformerDeployer: string): ContractTxFunctionObj { + public setQuoteSigner(quoteSigner: string): ContractTxFunctionObj { const self = (this as any) as ITransformERC20Contract; - assert.isString('transformerDeployer', transformerDeployer); - const functionSignature = 'setTransformerDeployer(address)'; + assert.isString('quoteSigner', quoteSigner); + const functionSignature = 'setQuoteSigner(address)'; return { async sendTransactionAsync( @@ -690,7 +769,7 @@ export class ITransformERC20Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -706,15 +785,68 @@ export class ITransformERC20Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [quoteSigner.toLowerCase()]); + }, + }; + } + /** + * Replace the allowed deployer for transformers. + * Only callable by the owner. + * @param transformerDeployer The address of the new trusted deployer + * for transformers. + */ + public setTransformerDeployer(transformerDeployer: string): ContractTxFunctionObj { + const self = (this as any) as ITransformERC20Contract; + assert.isString('transformerDeployer', transformerDeployer); + const functionSignature = 'setTransformerDeployer(address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -760,7 +892,7 @@ export class ITransformERC20Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -776,15 +908,15 @@ export class ITransformERC20Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/i_zero_ex.ts b/packages/contract-wrappers/src/generated-wrappers/i_zero_ex.ts new file mode 100644 index 0000000000..94ffa18680 --- /dev/null +++ b/packages/contract-wrappers/src/generated-wrappers/i_zero_ex.ts @@ -0,0 +1,2815 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma enum-naming +// tslint:disable:whitespace no-unbound-method no-trailing-whitespace +// tslint:disable:no-unused-variable +import { + AwaitTransactionSuccessOpts, + ContractFunctionObj, + ContractTxFunctionObj, + SendTransactionOpts, + BaseContract, + SubscriptionManager, + PromiseWithTransactionHash, + methodAbiToFunctionSignature, + linkLibrariesInBytecode, +} from '@0x/base-contract'; +import { schemas } from '@0x/json-schemas'; +import { + BlockParam, + BlockParamLiteral, + BlockRange, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + LogWithDecodedArgs, + MethodAbi, + TransactionReceiptWithDecodedLogs, + TxData, + TxDataPayable, + SupportedProvider, +} from 'ethereum-types'; +import { BigNumber, classUtils, hexUtils, logUtils, providerUtils } from '@0x/utils'; +import { EventCallback, IndexedFilterValues, SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import { assert } from '@0x/assert'; +import * as ethers from 'ethers'; +// tslint:enable:no-unused-variable + +export type IZeroExEventArgs = + | IZeroExMetaTransactionExecutedEventArgs + | IZeroExMigratedEventArgs + | IZeroExOwnershipTransferredEventArgs + | IZeroExProxyFunctionUpdatedEventArgs + | IZeroExQuoteSignerUpdatedEventArgs + | IZeroExTransformedERC20EventArgs + | IZeroExTransformerDeployerUpdatedEventArgs; + +export enum IZeroExEvents { + MetaTransactionExecuted = 'MetaTransactionExecuted', + Migrated = 'Migrated', + OwnershipTransferred = 'OwnershipTransferred', + ProxyFunctionUpdated = 'ProxyFunctionUpdated', + QuoteSignerUpdated = 'QuoteSignerUpdated', + TransformedERC20 = 'TransformedERC20', + TransformerDeployerUpdated = 'TransformerDeployerUpdated', +} + +export interface IZeroExMetaTransactionExecutedEventArgs extends DecodedLogArgs { + hash: string; + selector: string; + signer: string; + sender: string; +} + +export interface IZeroExMigratedEventArgs extends DecodedLogArgs { + caller: string; + migrator: string; + newOwner: string; +} + +export interface IZeroExOwnershipTransferredEventArgs extends DecodedLogArgs { + previousOwner: string; + newOwner: string; +} + +export interface IZeroExProxyFunctionUpdatedEventArgs extends DecodedLogArgs { + selector: string; + oldImpl: string; + newImpl: string; +} + +export interface IZeroExQuoteSignerUpdatedEventArgs extends DecodedLogArgs { + quoteSigner: string; +} + +export interface IZeroExTransformedERC20EventArgs extends DecodedLogArgs { + taker: string; + inputToken: string; + outputToken: string; + inputTokenAmount: BigNumber; + outputTokenAmount: BigNumber; +} + +export interface IZeroExTransformerDeployerUpdatedEventArgs extends DecodedLogArgs { + transformerDeployer: string; +} + +/* istanbul ignore next */ +// tslint:disable:array-type +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class IZeroExContract extends BaseContract { + /** + * @ignore + */ + public static deployedBytecode: string | undefined; + public static contractName = 'IZeroEx'; + private readonly _methodABIIndex: { [name: string]: number } = {}; + private readonly _subscriptionManager: SubscriptionManager; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + logDecodeDependencies: { [contractName: string]: ContractArtifact | SimpleContractArtifact }, + ): Promise { + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (artifact.compilerOutput === undefined) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + const logDecodeDependenciesAbiOnly: { [contractName: string]: ContractAbi } = {}; + if (Object.keys(logDecodeDependencies) !== undefined) { + for (const key of Object.keys(logDecodeDependencies)) { + logDecodeDependenciesAbiOnly[key] = logDecodeDependencies[key].compilerOutput.abi; + } + } + return IZeroExContract.deployAsync(bytecode, abi, provider, txDefaults, logDecodeDependenciesAbiOnly); + } + + public static async deployWithLibrariesFrom0xArtifactAsync( + artifact: ContractArtifact, + libraryArtifacts: { [libraryName: string]: ContractArtifact }, + supportedProvider: SupportedProvider, + txDefaults: Partial, + logDecodeDependencies: { [contractName: string]: ContractArtifact | SimpleContractArtifact }, + ): Promise { + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (artifact.compilerOutput === undefined) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const abi = artifact.compilerOutput.abi; + const logDecodeDependenciesAbiOnly: { [contractName: string]: ContractAbi } = {}; + if (Object.keys(logDecodeDependencies) !== undefined) { + for (const key of Object.keys(logDecodeDependencies)) { + logDecodeDependenciesAbiOnly[key] = logDecodeDependencies[key].compilerOutput.abi; + } + } + const libraryAddresses = await IZeroExContract._deployLibrariesAsync( + artifact, + libraryArtifacts, + new Web3Wrapper(provider), + txDefaults, + ); + const bytecode = linkLibrariesInBytecode(artifact, libraryAddresses); + return IZeroExContract.deployAsync(bytecode, abi, provider, txDefaults, logDecodeDependenciesAbiOnly); + } + + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + logDecodeDependencies: { [contractName: string]: ContractAbi }, + ): Promise { + assert.isHexString('bytecode', bytecode); + assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`IZeroEx successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new IZeroExContract( + txReceipt.contractAddress as string, + provider, + txDefaults, + logDecodeDependencies, + ); + contractInstance.constructorArgs = []; + return contractInstance; + } + + /** + * @returns The contract ABI + */ + public static ABI(): ContractAbi { + const abi = [ + { + anonymous: false, + inputs: [ + { + name: 'hash', + type: 'bytes32', + indexed: false, + }, + { + name: 'selector', + type: 'bytes4', + indexed: true, + }, + { + name: 'signer', + type: 'address', + indexed: false, + }, + { + name: 'sender', + type: 'address', + indexed: false, + }, + ], + name: 'MetaTransactionExecuted', + outputs: [], + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + name: 'caller', + type: 'address', + indexed: false, + }, + { + name: 'migrator', + type: 'address', + indexed: false, + }, + { + name: 'newOwner', + type: 'address', + indexed: false, + }, + ], + name: 'Migrated', + outputs: [], + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + name: 'previousOwner', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + type: 'address', + indexed: true, + }, + ], + name: 'OwnershipTransferred', + outputs: [], + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + name: 'selector', + type: 'bytes4', + indexed: true, + }, + { + name: 'oldImpl', + type: 'address', + indexed: false, + }, + { + name: 'newImpl', + type: 'address', + indexed: false, + }, + ], + name: 'ProxyFunctionUpdated', + outputs: [], + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + name: 'quoteSigner', + type: 'address', + indexed: false, + }, + ], + name: 'QuoteSignerUpdated', + outputs: [], + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + name: 'taker', + type: 'address', + indexed: true, + }, + { + name: 'inputToken', + type: 'address', + indexed: false, + }, + { + name: 'outputToken', + type: 'address', + indexed: false, + }, + { + name: 'inputTokenAmount', + type: 'uint256', + indexed: false, + }, + { + name: 'outputTokenAmount', + type: 'uint256', + indexed: false, + }, + ], + name: 'TransformedERC20', + outputs: [], + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + name: 'transformerDeployer', + type: 'address', + indexed: false, + }, + ], + name: 'TransformerDeployerUpdated', + outputs: [], + type: 'event', + }, + { + inputs: [ + { + name: 'sender', + type: 'address', + }, + { + name: 'mtx', + type: 'tuple', + components: [ + { + name: 'signer', + type: 'address', + }, + { + name: 'sender', + type: 'address', + }, + { + name: 'minGasPrice', + type: 'uint256', + }, + { + name: 'maxGasPrice', + type: 'uint256', + }, + { + name: 'expirationTimeSeconds', + type: 'uint256', + }, + { + name: 'salt', + type: 'uint256', + }, + { + name: 'callData', + type: 'bytes', + }, + { + name: 'value', + type: 'uint256', + }, + { + name: 'feeToken', + type: 'address', + }, + { + name: 'feeAmount', + type: 'uint256', + }, + ], + }, + { + name: 'signature', + type: 'bytes', + }, + ], + name: '_executeMetaTransaction', + outputs: [ + { + name: 'returnResult', + type: 'bytes', + }, + ], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + name: 'token', + type: 'address', + }, + { + name: 'owner', + type: 'address', + }, + { + name: 'to', + type: 'address', + }, + { + name: 'amount', + type: 'uint256', + }, + ], + name: '_spendERC20Tokens', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + name: 'args', + type: 'tuple', + components: [ + { + name: 'taker', + type: 'address', + }, + { + name: 'inputToken', + type: 'address', + }, + { + name: 'outputToken', + type: 'address', + }, + { + name: 'inputTokenAmount', + type: 'uint256', + }, + { + name: 'minOutputTokenAmount', + type: 'uint256', + }, + { + name: 'transformations', + type: 'tuple[]', + components: [ + { + name: 'deploymentNonce', + type: 'uint32', + }, + { + name: 'data', + type: 'bytes', + }, + ], + }, + { + name: 'callDataHash', + type: 'bytes32', + }, + { + name: 'callDataSignature', + type: 'bytes', + }, + ], + }, + ], + name: '_transformERC20', + outputs: [ + { + name: 'outputTokenAmount', + type: 'uint256', + }, + ], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + name: 'mtxs', + type: 'tuple[]', + components: [ + { + name: 'signer', + type: 'address', + }, + { + name: 'sender', + type: 'address', + }, + { + name: 'minGasPrice', + type: 'uint256', + }, + { + name: 'maxGasPrice', + type: 'uint256', + }, + { + name: 'expirationTimeSeconds', + type: 'uint256', + }, + { + name: 'salt', + type: 'uint256', + }, + { + name: 'callData', + type: 'bytes', + }, + { + name: 'value', + type: 'uint256', + }, + { + name: 'feeToken', + type: 'address', + }, + { + name: 'feeAmount', + type: 'uint256', + }, + ], + }, + { + name: 'signatures', + type: 'bytes[]', + }, + ], + name: 'batchExecuteMetaTransactions', + outputs: [ + { + name: 'returnResults', + type: 'bytes[]', + }, + ], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [], + name: 'createTransformWallet', + outputs: [ + { + name: 'wallet', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + name: 'mtx', + type: 'tuple', + components: [ + { + name: 'signer', + type: 'address', + }, + { + name: 'sender', + type: 'address', + }, + { + name: 'minGasPrice', + type: 'uint256', + }, + { + name: 'maxGasPrice', + type: 'uint256', + }, + { + name: 'expirationTimeSeconds', + type: 'uint256', + }, + { + name: 'salt', + type: 'uint256', + }, + { + name: 'callData', + type: 'bytes', + }, + { + name: 'value', + type: 'uint256', + }, + { + name: 'feeToken', + type: 'address', + }, + { + name: 'feeAmount', + type: 'uint256', + }, + ], + }, + { + name: 'signature', + type: 'bytes', + }, + ], + name: 'executeMetaTransaction', + outputs: [ + { + name: 'returnResult', + type: 'bytes', + }, + ], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + name: 'selector', + type: 'bytes4', + }, + { + name: 'impl', + type: 'address', + }, + ], + name: 'extend', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'getAllowanceTarget', + outputs: [ + { + name: 'target', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'selector', + type: 'bytes4', + }, + ], + name: 'getFunctionImplementation', + outputs: [ + { + name: 'impl', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'mtx', + type: 'tuple', + components: [ + { + name: 'signer', + type: 'address', + }, + { + name: 'sender', + type: 'address', + }, + { + name: 'minGasPrice', + type: 'uint256', + }, + { + name: 'maxGasPrice', + type: 'uint256', + }, + { + name: 'expirationTimeSeconds', + type: 'uint256', + }, + { + name: 'salt', + type: 'uint256', + }, + { + name: 'callData', + type: 'bytes', + }, + { + name: 'value', + type: 'uint256', + }, + { + name: 'feeToken', + type: 'address', + }, + { + name: 'feeAmount', + type: 'uint256', + }, + ], + }, + ], + name: 'getMetaTransactionExecutedBlock', + outputs: [ + { + name: 'blockNumber', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'mtx', + type: 'tuple', + components: [ + { + name: 'signer', + type: 'address', + }, + { + name: 'sender', + type: 'address', + }, + { + name: 'minGasPrice', + type: 'uint256', + }, + { + name: 'maxGasPrice', + type: 'uint256', + }, + { + name: 'expirationTimeSeconds', + type: 'uint256', + }, + { + name: 'salt', + type: 'uint256', + }, + { + name: 'callData', + type: 'bytes', + }, + { + name: 'value', + type: 'uint256', + }, + { + name: 'feeToken', + type: 'address', + }, + { + name: 'feeAmount', + type: 'uint256', + }, + ], + }, + ], + name: 'getMetaTransactionHash', + outputs: [ + { + name: 'mtxHash', + type: 'bytes32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'mtxHash', + type: 'bytes32', + }, + ], + name: 'getMetaTransactionHashExecutedBlock', + outputs: [ + { + name: 'blockNumber', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getQuoteSigner', + outputs: [ + { + name: 'signer', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'selector', + type: 'bytes4', + }, + { + name: 'idx', + type: 'uint256', + }, + ], + name: 'getRollbackEntryAtIndex', + outputs: [ + { + name: 'impl', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'selector', + type: 'bytes4', + }, + ], + name: 'getRollbackLength', + outputs: [ + { + name: 'rollbackLength', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'token', + type: 'address', + }, + { + name: 'owner', + type: 'address', + }, + ], + name: 'getSpendableERC20BalanceOf', + outputs: [ + { + name: 'amount', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getTransformWallet', + outputs: [ + { + name: 'wallet', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getTransformerDeployer', + outputs: [ + { + name: 'deployer', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'hash', + type: 'bytes32', + }, + { + name: 'signer', + type: 'address', + }, + { + name: 'signature', + type: 'bytes', + }, + ], + name: 'isValidHashSignature', + outputs: [ + { + name: 'isValid', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'target', + type: 'address', + }, + { + name: 'data', + type: 'bytes', + }, + { + name: 'newOwner', + type: 'address', + }, + ], + name: 'migrate', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + name: 'ownerAddress', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + name: 'selector', + type: 'bytes4', + }, + { + name: 'targetImpl', + type: 'address', + }, + ], + name: 'rollback', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + name: 'quoteSigner', + type: 'address', + }, + ], + name: 'setQuoteSigner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + name: 'transformerDeployer', + type: 'address', + }, + ], + name: 'setTransformerDeployer', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + name: 'newOwner', + type: 'address', + }, + ], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + name: 'inputToken', + type: 'address', + }, + { + name: 'outputToken', + type: 'address', + }, + { + name: 'inputTokenAmount', + type: 'uint256', + }, + { + name: 'minOutputTokenAmount', + type: 'uint256', + }, + { + name: 'transformations', + type: 'tuple[]', + components: [ + { + name: 'deploymentNonce', + type: 'uint32', + }, + { + name: 'data', + type: 'bytes', + }, + ], + }, + ], + name: 'transformERC20', + outputs: [ + { + name: 'outputTokenAmount', + type: 'uint256', + }, + ], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + name: 'hash', + type: 'bytes32', + }, + { + name: 'signer', + type: 'address', + }, + { + name: 'signature', + type: 'bytes', + }, + ], + name: 'validateHashSignature', + outputs: [], + stateMutability: 'view', + type: 'function', + }, + ] as ContractAbi; + return abi; + } + + protected static async _deployLibrariesAsync( + artifact: ContractArtifact, + libraryArtifacts: { [libraryName: string]: ContractArtifact }, + web3Wrapper: Web3Wrapper, + txDefaults: Partial, + libraryAddresses: { [libraryName: string]: string } = {}, + ): Promise<{ [libraryName: string]: string }> { + const links = artifact.compilerOutput.evm.bytecode.linkReferences; + // Go through all linked libraries, recursively deploying them if necessary. + for (const link of Object.values(links)) { + for (const libraryName of Object.keys(link)) { + if (!libraryAddresses[libraryName]) { + // Library not yet deployed. + const libraryArtifact = libraryArtifacts[libraryName]; + if (!libraryArtifact) { + throw new Error(`Missing artifact for linked library "${libraryName}"`); + } + // Deploy any dependent libraries used by this library. + await IZeroExContract._deployLibrariesAsync( + libraryArtifact, + libraryArtifacts, + web3Wrapper, + txDefaults, + libraryAddresses, + ); + // Deploy this library. + const linkedLibraryBytecode = linkLibrariesInBytecode(libraryArtifact, libraryAddresses); + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: linkedLibraryBytecode, + ...txDefaults, + }, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const { contractAddress } = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`${libraryArtifact.contractName} successfully deployed at ${contractAddress}`); + libraryAddresses[libraryArtifact.contractName] = contractAddress as string; + } + } + } + return libraryAddresses; + } + + public getFunctionSignature(methodName: string): string { + const index = this._methodABIIndex[methodName]; + const methodAbi = IZeroExContract.ABI()[index] as MethodAbi; // tslint:disable-line:no-unnecessary-type-assertion + const functionSignature = methodAbiToFunctionSignature(methodAbi); + return functionSignature; + } + + public getABIDecodedTransactionData(methodName: string, callData: string): T { + const functionSignature = this.getFunctionSignature(methodName); + const self = (this as any) as IZeroExContract; + const abiEncoder = self._lookupAbiEncoder(functionSignature); + const abiDecodedCallData = abiEncoder.strictDecode(callData); + return abiDecodedCallData; + } + + public getABIDecodedReturnData(methodName: string, callData: string): T { + const functionSignature = this.getFunctionSignature(methodName); + const self = (this as any) as IZeroExContract; + const abiEncoder = self._lookupAbiEncoder(functionSignature); + const abiDecodedCallData = abiEncoder.strictDecodeReturnValue(callData); + return abiDecodedCallData; + } + + public getSelector(methodName: string): string { + const functionSignature = this.getFunctionSignature(methodName); + const self = (this as any) as IZeroExContract; + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.getSelector(); + } + + /** + * Execute a meta-transaction via `sender`. Privileged variant. + * Only callable from within. + * @param sender Who is executing the meta-transaction.. + * @param mtx The meta-transaction. + * @param signature The signature by `mtx.signer`. + */ + public _executeMetaTransaction( + sender: string, + mtx: { + signer: string; + sender: string; + minGasPrice: BigNumber; + maxGasPrice: BigNumber; + expirationTimeSeconds: BigNumber; + salt: BigNumber; + callData: string; + value: BigNumber; + feeToken: string; + feeAmount: BigNumber; + }, + signature: string, + ): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('sender', sender); + + assert.isString('signature', signature); + const functionSignature = + '_executeMetaTransaction(address,(address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256),bytes)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [sender.toLowerCase(), mtx, signature]); + }, + }; + } + /** + * Transfers ERC20 tokens from `owner` to `to`. + * Only callable from within. + * @param token The token to spend. + * @param owner The owner of the tokens. + * @param to The recipient of the tokens. + * @param amount The amount of `token` to transfer. + */ + public _spendERC20Tokens(token: string, owner: string, to: string, amount: BigNumber): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('token', token); + assert.isString('owner', owner); + assert.isString('to', to); + assert.isBigNumber('amount', amount); + const functionSignature = '_spendERC20Tokens(address,address,address,uint256)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [ + token.toLowerCase(), + owner.toLowerCase(), + to.toLowerCase(), + amount, + ]); + }, + }; + } + /** + * Internal version of `transformERC20()`. Only callable from within. + * @param args A `TransformERC20Args` struct. + */ + public _transformERC20(args: { + taker: string; + inputToken: string; + outputToken: string; + inputTokenAmount: BigNumber; + minOutputTokenAmount: BigNumber; + transformations: Array<{ deploymentNonce: number | BigNumber; data: string }>; + callDataHash: string; + callDataSignature: string; + }): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + + const functionSignature = + '_transformERC20((address,address,address,uint256,uint256,(uint32,bytes)[],bytes32,bytes))'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [args]); + }, + }; + } + /** + * Execute multiple meta-transactions. + * @param mtxs The meta-transactions. + * @param signatures The signature by each respective `mtx.signer`. + */ + public batchExecuteMetaTransactions( + mtxs: Array<{ + signer: string; + sender: string; + minGasPrice: BigNumber; + maxGasPrice: BigNumber; + expirationTimeSeconds: BigNumber; + salt: BigNumber; + callData: string; + value: BigNumber; + feeToken: string; + feeAmount: BigNumber; + }>, + signatures: string[], + ): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isArray('mtxs', mtxs); + assert.isArray('signatures', signatures); + const functionSignature = + 'batchExecuteMetaTransactions((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256)[],bytes[])'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [mtxs, signatures]); + }, + }; + } + /** + * Deploy a new flash wallet instance and replace the current one with it. + * Useful if we somehow break the current wallet instance. + * Only callable by the owner. + */ + public createTransformWallet(): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + const functionSignature = 'createTransformWallet()'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, []); + }, + }; + } + /** + * Execute a single meta-transaction. + * @param mtx The meta-transaction. + * @param signature The signature by `mtx.signer`. + */ + public executeMetaTransaction( + mtx: { + signer: string; + sender: string; + minGasPrice: BigNumber; + maxGasPrice: BigNumber; + expirationTimeSeconds: BigNumber; + salt: BigNumber; + callData: string; + value: BigNumber; + feeToken: string; + feeAmount: BigNumber; + }, + signature: string, + ): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + + assert.isString('signature', signature); + const functionSignature = + 'executeMetaTransaction((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256),bytes)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [mtx, signature]); + }, + }; + } + /** + * Register or replace a function. + * @param selector The function selector. + * @param impl The implementation contract for the function. + */ + public extend(selector: string, impl: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('selector', selector); + assert.isString('impl', impl); + const functionSignature = 'extend(bytes4,address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [selector, impl.toLowerCase()]); + }, + }; + } + /** + * Get the address of the allowance target. + */ + public getAllowanceTarget(): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + const functionSignature = 'getAllowanceTarget()'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, []); + }, + }; + } + /** + * Get the implementation contract of a registered function. + * @param selector The function selector. + */ + public getFunctionImplementation(selector: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('selector', selector); + const functionSignature = 'getFunctionImplementation(bytes4)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [selector]); + }, + }; + } + /** + * Get the block at which a meta-transaction has been executed. + * @param mtx The meta-transaction. + */ + public getMetaTransactionExecutedBlock(mtx: { + signer: string; + sender: string; + minGasPrice: BigNumber; + maxGasPrice: BigNumber; + expirationTimeSeconds: BigNumber; + salt: BigNumber; + callData: string; + value: BigNumber; + feeToken: string; + feeAmount: BigNumber; + }): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + + const functionSignature = + 'getMetaTransactionExecutedBlock((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256))'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [mtx]); + }, + }; + } + /** + * Get the EIP712 hash of a meta-transaction. + * @param mtx The meta-transaction. + */ + public getMetaTransactionHash(mtx: { + signer: string; + sender: string; + minGasPrice: BigNumber; + maxGasPrice: BigNumber; + expirationTimeSeconds: BigNumber; + salt: BigNumber; + callData: string; + value: BigNumber; + feeToken: string; + feeAmount: BigNumber; + }): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + + const functionSignature = + 'getMetaTransactionHash((address,address,uint256,uint256,uint256,uint256,bytes,uint256,address,uint256))'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [mtx]); + }, + }; + } + /** + * Get the block at which a meta-transaction hash has been executed. + * @param mtxHash The meta-transaction hash. + */ + public getMetaTransactionHashExecutedBlock(mtxHash: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('mtxHash', mtxHash); + const functionSignature = 'getMetaTransactionHashExecutedBlock(bytes32)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [mtxHash]); + }, + }; + } + /** + * Return the optional signer for `transformERC20()` calldata. + */ + public getQuoteSigner(): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + const functionSignature = 'getQuoteSigner()'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, []); + }, + }; + } + /** + * Retrieve an entry in the rollback history for a function. + * @param selector The function selector. + * @param idx The index in the rollback history. + */ + public getRollbackEntryAtIndex(selector: string, idx: BigNumber): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('selector', selector); + assert.isBigNumber('idx', idx); + const functionSignature = 'getRollbackEntryAtIndex(bytes4,uint256)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [selector, idx]); + }, + }; + } + /** + * Retrieve the length of the rollback history for a function. + * @param selector The function selector. + */ + public getRollbackLength(selector: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('selector', selector); + const functionSignature = 'getRollbackLength(bytes4)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [selector]); + }, + }; + } + /** + * Gets the maximum amount of an ERC20 token `token` that can be + * pulled from `owner`. + * @param token The token to spend. + * @param owner The owner of the tokens. + */ + public getSpendableERC20BalanceOf(token: string, owner: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('token', token); + assert.isString('owner', owner); + const functionSignature = 'getSpendableERC20BalanceOf(address,address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [token.toLowerCase(), owner.toLowerCase()]); + }, + }; + } + /** + * Return the current wallet instance that will serve as the execution + * context for transformations. + */ + public getTransformWallet(): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + const functionSignature = 'getTransformWallet()'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, []); + }, + }; + } + /** + * Return the allowed deployer for transformers. + */ + public getTransformerDeployer(): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + const functionSignature = 'getTransformerDeployer()'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, []); + }, + }; + } + /** + * Check that `hash` was signed by `signer` given `signature`. + * @param hash The hash that was signed. + * @param signer The signer of the hash. + * @param signature The signature. The last byte of this signature should + * be a member of the `SignatureType` enum. + */ + public isValidHashSignature(hash: string, signer: string, signature: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('hash', hash); + assert.isString('signer', signer); + assert.isString('signature', signature); + const functionSignature = 'isValidHashSignature(bytes32,address,bytes)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [hash, signer.toLowerCase(), signature]); + }, + }; + } + /** + * Execute a migration function in the context of the ZeroEx contract. + * The result of the function being called should be the magic bytes + * 0x2c64c5ef (`keccack('MIGRATE_SUCCESS')`). Only callable by the owner. + * The owner will be temporarily set to `address(this)` inside the call. + * Before returning, the owner will be set to `newOwner`. + * @param target The migrator contract address. + * @param data The call data. + * @param newOwner The address of the new owner. + */ + public migrate(target: string, data: string, newOwner: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('target', target); + assert.isString('data', data); + assert.isString('newOwner', newOwner); + const functionSignature = 'migrate(address,bytes,address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [ + target.toLowerCase(), + data, + newOwner.toLowerCase(), + ]); + }, + }; + } + /** + * The owner of this contract. + */ + public owner(): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + const functionSignature = 'owner()'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, []); + }, + }; + } + /** + * Roll back to a prior implementation of a function. + * @param selector The function selector. + * @param targetImpl The address of an older implementation of the function. + */ + public rollback(selector: string, targetImpl: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('selector', selector); + assert.isString('targetImpl', targetImpl); + const functionSignature = 'rollback(bytes4,address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [selector, targetImpl.toLowerCase()]); + }, + }; + } + /** + * Replace the optional signer for `transformERC20()` calldata. + * Only callable by the owner. + * @param quoteSigner The address of the new calldata signer. + */ + public setQuoteSigner(quoteSigner: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('quoteSigner', quoteSigner); + const functionSignature = 'setQuoteSigner(address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [quoteSigner.toLowerCase()]); + }, + }; + } + /** + * Replace the allowed deployer for transformers. + * Only callable by the owner. + * @param transformerDeployer The address of the new trusted deployer + * for transformers. + */ + public setTransformerDeployer(transformerDeployer: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('transformerDeployer', transformerDeployer); + const functionSignature = 'setTransformerDeployer(address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [transformerDeployer.toLowerCase()]); + }, + }; + } + /** + * Transfers ownership of the contract to a new address. + * @param newOwner The address that will become the owner. + */ + public transferOwnership(newOwner: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('newOwner', newOwner); + const functionSignature = 'transferOwnership(address)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + }, + }; + } + /** + * Executes a series of transformations to convert an ERC20 `inputToken` + * to an ERC20 `outputToken`. + * @param inputToken The token being provided by the sender. If + * `0xeee...`, ETH is implied and should be provided with the call.` + * @param outputToken The token to be acquired by the sender. `0xeee...` + * implies ETH. + * @param inputTokenAmount The amount of `inputToken` to take from the sender. + * @param minOutputTokenAmount The minimum amount of `outputToken` the sender + * must receive for the entire transformation to succeed. + * @param transformations The transformations to execute on the token + * balance(s) in sequence. + */ + public transformERC20( + inputToken: string, + outputToken: string, + inputTokenAmount: BigNumber, + minOutputTokenAmount: BigNumber, + transformations: Array<{ deploymentNonce: number | BigNumber; data: string }>, + ): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('inputToken', inputToken); + assert.isString('outputToken', outputToken); + assert.isBigNumber('inputTokenAmount', inputTokenAmount); + assert.isBigNumber('minOutputTokenAmount', minOutputTokenAmount); + assert.isArray('transformations', transformations); + const functionSignature = 'transformERC20(address,address,uint256,uint256,(uint32,bytes)[])'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [ + inputToken.toLowerCase(), + outputToken.toLowerCase(), + inputTokenAmount, + minOutputTokenAmount, + transformations, + ]); + }, + }; + } + /** + * Validate that `hash` was signed by `signer` given `signature`. + * Reverts otherwise. + * @param hash The hash that was signed. + * @param signer The signer of the hash. + * @param signature The signature. The last byte of this signature should + * be a member of the `SignatureType` enum. + */ + public validateHashSignature(hash: string, signer: string, signature: string): ContractTxFunctionObj { + const self = (this as any) as IZeroExContract; + assert.isString('hash', hash); + assert.isString('signer', signer); + assert.isString('signature', signature); + const functionSignature = 'validateHashSignature(bytes32,address,bytes)'; + + return { + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( + { data: this.getABIEncodedTransactionData(), ...txData }, + this.estimateGasAsync.bind(this), + ); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); + } + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ + data: this.getABIEncodedTransactionData(), + ...txData, + }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const rawCallResult = await self._performCallAsync( + { data: this.getABIEncodedTransactionData(), ...callData }, + defaultBlock, + ); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [hash, signer.toLowerCase(), signature]); + }, + }; + } + + /** + * Subscribe to an event type emitted by the IZeroEx contract. + * @param eventName The IZeroEx contract event you would like to subscribe to. + * @param indexFilterValues An object where the keys are indexed args returned by the event and + * the value is the value you are interested in. E.g `{maker: aUserAddressHex}` + * @param callback Callback that gets called when a log is added/removed + * @param isVerbose Enable verbose subscription warnings (e.g recoverable network issues encountered) + * @return Subscription token used later to unsubscribe + */ + public subscribe( + eventName: IZeroExEvents, + indexFilterValues: IndexedFilterValues, + callback: EventCallback, + isVerbose: boolean = false, + blockPollingIntervalMs?: number, + ): string { + assert.doesBelongToStringEnum('eventName', eventName, IZeroExEvents); + assert.doesConformToSchema('indexFilterValues', indexFilterValues, schemas.indexFilterValuesSchema); + assert.isFunction('callback', callback); + const subscriptionToken = this._subscriptionManager.subscribe( + this.address, + eventName, + indexFilterValues, + IZeroExContract.ABI(), + callback, + isVerbose, + blockPollingIntervalMs, + ); + return subscriptionToken; + } + + /** + * Cancel a subscription + * @param subscriptionToken Subscription token returned by `subscribe()` + */ + public unsubscribe(subscriptionToken: string): void { + this._subscriptionManager.unsubscribe(subscriptionToken); + } + + /** + * Cancels all existing subscriptions + */ + public unsubscribeAll(): void { + this._subscriptionManager.unsubscribeAll(); + } + + /** + * Gets historical logs without creating a subscription + * @param eventName The IZeroEx contract event you would like to subscribe to. + * @param blockRange Block range to get logs from. + * @param indexFilterValues An object where the keys are indexed args returned by the event and + * the value is the value you are interested in. E.g `{_from: aUserAddressHex}` + * @return Array of logs that match the parameters + */ + public async getLogsAsync( + eventName: IZeroExEvents, + blockRange: BlockRange, + indexFilterValues: IndexedFilterValues, + ): Promise>> { + assert.doesBelongToStringEnum('eventName', eventName, IZeroExEvents); + assert.doesConformToSchema('blockRange', blockRange, schemas.blockRangeSchema); + assert.doesConformToSchema('indexFilterValues', indexFilterValues, schemas.indexFilterValuesSchema); + const logs = await this._subscriptionManager.getLogsAsync( + this.address, + eventName, + blockRange, + indexFilterValues, + IZeroExContract.ABI(), + ); + return logs; + } + + constructor( + address: string, + supportedProvider: SupportedProvider, + txDefaults?: Partial, + logDecodeDependencies?: { [contractName: string]: ContractAbi }, + deployedBytecode: string | undefined = IZeroExContract.deployedBytecode, + ) { + super( + 'IZeroEx', + IZeroExContract.ABI(), + address, + supportedProvider, + txDefaults, + logDecodeDependencies, + deployedBytecode, + ); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); + this._subscriptionManager = new SubscriptionManager( + IZeroExContract.ABI(), + this._web3Wrapper, + ); + IZeroExContract.ABI().forEach((item, index) => { + if (item.type === 'function') { + const methodAbi = item as MethodAbi; + this._methodABIIndex[methodAbi.name] = index; + } + }); + } +} + +// tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align +// tslint:enable:trailing-comma whitespace no-trailing-whitespace diff --git a/packages/contract-wrappers/src/generated-wrappers/maximum_gas_price.ts b/packages/contract-wrappers/src/generated-wrappers/maximum_gas_price.ts index 0a8b09e012..d3072b2e03 100644 --- a/packages/contract-wrappers/src/generated-wrappers/maximum_gas_price.ts +++ b/packages/contract-wrappers/src/generated-wrappers/maximum_gas_price.ts @@ -263,7 +263,7 @@ export class MaximumGasPriceContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -290,7 +290,7 @@ export class MaximumGasPriceContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/staking.ts b/packages/contract-wrappers/src/generated-wrappers/staking.ts index d00625ed17..c19a7802ac 100644 --- a/packages/contract-wrappers/src/generated-wrappers/staking.ts +++ b/packages/contract-wrappers/src/generated-wrappers/staking.ts @@ -1709,7 +1709,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1725,15 +1725,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1760,7 +1760,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1776,15 +1776,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1810,7 +1810,7 @@ export class StakingContract extends BaseContract { ): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1833,7 +1833,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1854,7 +1854,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1874,7 +1874,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1894,7 +1894,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1922,7 +1922,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1948,7 +1948,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1982,7 +1982,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1998,15 +1998,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2026,7 +2026,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2046,7 +2046,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2079,7 +2079,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2095,15 +2095,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2131,7 +2131,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2147,15 +2147,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2175,7 +2175,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2206,7 +2206,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2222,15 +2222,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2254,7 +2254,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2280,7 +2280,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2311,7 +2311,7 @@ export class StakingContract extends BaseContract { ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2349,7 +2349,7 @@ export class StakingContract extends BaseContract { ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2380,7 +2380,7 @@ export class StakingContract extends BaseContract { ): Promise<[BigNumber, number, BigNumber, number, number]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2416,7 +2416,7 @@ export class StakingContract extends BaseContract { ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2448,7 +2448,7 @@ export class StakingContract extends BaseContract { ): Promise<{ operator: string; operatorShare: number }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2479,7 +2479,7 @@ export class StakingContract extends BaseContract { ): Promise<{ feesCollected: BigNumber; weightedStake: BigNumber; membersStake: BigNumber }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2509,7 +2509,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2541,7 +2541,7 @@ export class StakingContract extends BaseContract { ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2570,7 +2570,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2595,7 +2595,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2622,7 +2622,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2638,15 +2638,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2673,7 +2673,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2689,15 +2689,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2717,7 +2717,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2737,7 +2737,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2773,7 +2773,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2789,15 +2789,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2817,7 +2817,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2855,7 +2855,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2871,15 +2871,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2904,7 +2904,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2932,7 +2932,7 @@ export class StakingContract extends BaseContract { ): Promise<[BigNumber, BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -2959,7 +2959,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -2975,15 +2975,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3012,7 +3012,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3028,15 +3028,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3063,7 +3063,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3079,15 +3079,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3107,7 +3107,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3128,7 +3128,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3172,7 +3172,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3188,15 +3188,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3230,7 +3230,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3246,15 +3246,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3274,7 +3274,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3301,7 +3301,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3317,15 +3317,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3354,7 +3354,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3370,15 +3370,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3399,7 +3399,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3419,7 +3419,7 @@ export class StakingContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -3447,7 +3447,7 @@ export class StakingContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -3463,15 +3463,15 @@ export class StakingContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts b/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts index 1f271ee273..9f0fef466a 100644 --- a/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts +++ b/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts @@ -836,7 +836,7 @@ export class StakingProxyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -852,15 +852,15 @@ export class StakingProxyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -886,7 +886,7 @@ export class StakingProxyContract extends BaseContract { ): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -911,7 +911,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -938,7 +938,7 @@ export class StakingProxyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -954,15 +954,15 @@ export class StakingProxyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -983,7 +983,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1004,7 +1004,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1032,7 +1032,7 @@ export class StakingProxyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1048,15 +1048,15 @@ export class StakingProxyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1076,7 +1076,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1096,7 +1096,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1116,7 +1116,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1136,7 +1136,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1161,7 +1161,7 @@ export class StakingProxyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1177,15 +1177,15 @@ export class StakingProxyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1205,7 +1205,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1229,7 +1229,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1249,7 +1249,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1269,7 +1269,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1289,7 +1289,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1310,7 +1310,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1338,7 +1338,7 @@ export class StakingProxyContract extends BaseContract { ): Promise<[BigNumber, BigNumber, BigNumber]> { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1365,7 +1365,7 @@ export class StakingProxyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1381,15 +1381,15 @@ export class StakingProxyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1418,7 +1418,7 @@ export class StakingProxyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1434,15 +1434,15 @@ export class StakingProxyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1462,7 +1462,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1483,7 +1483,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1503,7 +1503,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1530,7 +1530,7 @@ export class StakingProxyContract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -1546,15 +1546,15 @@ export class StakingProxyContract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1575,7 +1575,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -1595,7 +1595,7 @@ export class StakingProxyContract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/generated-wrappers/weth9.ts b/packages/contract-wrappers/src/generated-wrappers/weth9.ts index e5de378a61..506aa75ceb 100644 --- a/packages/contract-wrappers/src/generated-wrappers/weth9.ts +++ b/packages/contract-wrappers/src/generated-wrappers/weth9.ts @@ -559,7 +559,7 @@ export class WETH9Contract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -583,7 +583,7 @@ export class WETH9Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -599,15 +599,15 @@ export class WETH9Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -628,7 +628,7 @@ export class WETH9Contract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -648,7 +648,7 @@ export class WETH9Contract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -670,7 +670,7 @@ export class WETH9Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -686,15 +686,15 @@ export class WETH9Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -714,7 +714,7 @@ export class WETH9Contract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -734,7 +734,7 @@ export class WETH9Contract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -754,7 +754,7 @@ export class WETH9Contract extends BaseContract { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -778,7 +778,7 @@ export class WETH9Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -794,15 +794,15 @@ export class WETH9Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -827,7 +827,7 @@ export class WETH9Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -843,15 +843,15 @@ export class WETH9Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); @@ -874,7 +874,7 @@ export class WETH9Contract extends BaseContract { opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( - { ...txData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { @@ -890,15 +890,15 @@ export class WETH9Contract extends BaseContract { }, async estimateGasAsync(txData?: Partial | undefined): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ - ...txData, data: this.getABIEncodedTransactionData(), + ...txData, }); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync( - { ...callData, data: this.getABIEncodedTransactionData() }, + { data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock, ); const abiEncoder = self._lookupAbiEncoder(functionSignature); diff --git a/packages/contract-wrappers/src/index.ts b/packages/contract-wrappers/src/index.ts index a9d2342fb4..363416beb6 100644 --- a/packages/contract-wrappers/src/index.ts +++ b/packages/contract-wrappers/src/index.ts @@ -87,9 +87,22 @@ export { ITransformERC20Contract, ITransformERC20EventArgs, ITransformERC20Events, + ITransformERC20QuoteSignerUpdatedEventArgs, ITransformERC20TransformerDeployerUpdatedEventArgs, ITransformERC20TransformedERC20EventArgs, } from './generated-wrappers/i_transform_erc20'; +export { + IZeroExContract, + IZeroExEventArgs, + IZeroExEvents, + IZeroExMetaTransactionExecutedEventArgs, + IZeroExMigratedEventArgs, + IZeroExOwnershipTransferredEventArgs, + IZeroExProxyFunctionUpdatedEventArgs, + IZeroExQuoteSignerUpdatedEventArgs, + IZeroExTransformedERC20EventArgs, + IZeroExTransformerDeployerUpdatedEventArgs, +} from './generated-wrappers/i_zero_ex'; export { BlockRange, SupportedProvider,