UNPKG

@verified-network/verified-sdk

Version:

An SDK to develop applications on the Verified Network

645 lines 3.56 MB
{ "contractName": "SecondaryIssueManager", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "poolId", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "security", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "closures", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "platform", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "collection", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "feecollection", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "poolId", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "seller", "type": "address" }, { "indexed": false, "internalType": "address", "name": "investor", "type": "address" }, { "indexed": true, "internalType": "address", "name": "securityTraded", "type": "address" }, { "indexed": false, "internalType": "address", "name": "currencySettled", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": false, "internalType": "bytes32", "name": "tradeRef", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32", "name": "DPID", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "subscribers", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "poolid", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "transferor", "type": "address" }, { "indexed": false, "internalType": "address", "name": "transferee", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "unitsToTransfer", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "security", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "currency", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "settlementStatus", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32", "name": "tradeRef", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "tradeSettled", "type": "event" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_factory", "type": "address" }, { "internalType": "uint256", "name": "_issueFeePercentage", "type": "uint256" }, { "internalType": "address", "name": "_client", "type": "address" }, { "internalType": "address", "name": "_vault", "type": "address" }, { "internalType": "address", "name": "_distribution", "type": "address" }, { "internalType": "address", "name": "_products", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "setFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "security", "type": "address" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint256", "name": "securityOutstanding", "type": "uint256" }, { "internalType": "uint256", "name": "securityOffered", "type": "uint256" }, { "internalType": "uint256", "name": "minSecurityOrder", "type": "uint256" }, { "internalType": "uint256", "name": "cashAmount", "type": "uint256" } ], "name": "issueSecondary", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "security", "type": "address" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint256", "name": "swapfee", "type": "uint256" } ], "name": "setIssuingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "security", "type": "address" }, { "internalType": "address", "name": "currency", "type": "address" } ], "name": "getIssuingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "components": [ { "internalType": "address", "name": "partyAddress", "type": "address" }, { "internalType": "bytes32", "name": "partyRef", "type": "bytes32" }, { "internalType": "bytes32", "name": "counterpartyRef", "type": "bytes32" }, { "internalType": "uint256", "name": "dt", "type": "uint256" }, { "internalType": "uint256", "name": "securityTraded", "type": "uint256" }, { "internalType": "uint256", "name": "currencyTraded", "type": "uint256" } ], "internalType": "struct ITrade.trade", "name": "tradeToReport", "type": "tuple" }, { "internalType": "contract IOrder", "name": "orderbook", "type": "address" } ], "name": "requestSettlement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "dpid", "type": "bytes32" }, { "internalType": "bytes32", "name": "poolId", "type": "bytes32" } ], "name": "getSettlementRequests", "outputs": [ { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "bytes32", "name": "ref", "type": "bytes32" } ], "name": "getSettlementRequest", "outputs": [ { "components": [ { "internalType": "contract IOrder", "name": "orderPool", "type": "address" }, { "internalType": "address", "name": "transferor", "type": "address" }, { "internalType": "address", "name": "transferee", "type": "address" }, { "internalType": "address", "name": "security", "type": "address" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "bytes32", "name": "status", "type": "bytes32" }, { "internalType": "bytes32", "name": "DPID", "type": "bytes32" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "unitsToTransfer", "type": "uint256" }, { "internalType": "uint256", "name": "consideration", "type": "uint256" }, { "internalType": "uint256", "name": "executionDate", "type": "uint256" }, { "internalType": "bytes32", "name": "partyRef", "type": "bytes32" }, { "internalType": "bytes32", "name": "counterpartyRef", "type": "bytes32" } ], "internalType": "struct ISettlor.settlement", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" } ], "name": "close", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "ref", "type": "bytes32" }, { "internalType": "bytes32", "name": "status", "type": "bytes32" } ], "name": "setSettlementStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "poolId", "type": "bytes32" } ], "name": "getSubscribers", "outputs": [ { "components": [ { "internalType": "address", "name": "investor", "type": "address" }, { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "internalType": "struct ISettlor.subscriptions[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "getTradingFeeCollected", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.7.1+commit.f4a555be\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"closures\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"platform\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"feecollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"securityTraded\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currencySettled\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tradeRef\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"DPID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"subscribers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"transferee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unitsToTransfer\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"settlementStatus\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tradeRef\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"tradeSettled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getIssuingFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ref\",\"type\":\"bytes32\"}],\"name\":\"getSettlementRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IOrder\",\"name\":\"orderPool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"transferee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"status\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"DPID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unitsToTransfer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"consideration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executionDate\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"partyRef\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"counterpartyRef\",\"type\":\"bytes32\"}],\"internalType\":\"struct ISettlor.settlement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dpid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getSettlementRequests\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getSubscribers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct ISettlor.subscriptions[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getTradingFeeCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_issueFeePercentage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_client\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_distribution\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_products\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"securityOutstanding\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"securityOffered\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSecurityOrder\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashAmount\",\"type\":\"uint256\"}],\"name\":\"issueSecondary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"partyAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"partyRef\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"counterpartyRef\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"dt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"securityTraded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currencyTraded\",\"type\":\"uint256\"}],\"internalType\":\"struct ITrade.trade\",\"name\":\"tradeToReport\",\"type\":\"tuple\"},{\"internalType\":\"contract IOrder\",\"name\":\"orderbook\",\"type\":\"address\"}],\"name\":\"requestSettlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"}],\"name\":\"setFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"swapfee\",\"type\":\"uint256\"}],\"name\":\"setIssuingFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ref\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"status\",\"type\":\"bytes32\"}],\"name\":\"setSettlementStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getSettlementRequest(bytes32)\":{\"params\":{\"ref\":\"reference to the trade\"}},\"getSettlementRequests(bytes32,bytes32)\":{\"params\":{\"dpid\":\"identifier of depository participant (eg, transfer agent) that is authorized to settle the asset \"}},\"getSubscribers(bytes32)\":{\"params\":{\"poolId\":\"pool identity\"}},\"getTradingFeeCollected(address)\":{\"params\":{\"_token\":\"address of token in which fee is collected\"}},\"initialize(address,uint256,address,address,address,address)\":{\"params\":{\"_client\":\"address of Verified client contract\",\"_factory\":\"reference to the secondary issue pool factory contract\",\"_issueFeePercentage\":\"percentage of trading fee to be charged by the asset manager\",\"_vault\":\"address of balancer vault\"}},\"issueSecondary(address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"cashAmount\":\"amount of currency issued in pool\",\"currency\":\"reference to cash (settlement) token\",\"minSecurityOrder\":\"minimum order size of securities issued in pool\",\"security\":\"reference to asset issued\",\"securityOffered\":\"amount of security to issue\",\"securityOutstanding\":\"total number of securities outstanding\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"requestSettlement((address,bytes32,bytes32,uint256,uint256,uint256),address)\":{\"params\":{\"tradeToReport\":\"data structure holding order matching data\"}},\"setSettlementStatus(bytes32,bytes32)\":{\"params\":{\"ref\":\"reference to the trade executed\",\"status\":\"settlement status\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSettlementRequest(bytes32)\":{\"notice\":\"Fetches a specific trade settlement request \"},\"getSettlementRequests(bytes32,bytes32)\":{\"notice\":\"Fetches trade settlement requests for depository participant\"},\"getSubscribers(bytes32)\":{\"notice\":\"Retrieve investors in secondary pools\"},\"getTradingFeeCollected(address)\":{\"notice\":\"Fetch trading fee collected in Balancer vault\"},\"initialize(address,uint256,address,address,address,address)\":{\"notice\":\"Initializes this asset management contract\"},\"issueSecondary(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Joins existing (secondary) tokenized assets into pool by primary issue token holders\"},\"requestSettlement((address,bytes32,bytes32,uint256,uint256,uint256),address)\":{\"notice\":\"Used by Secondary pools to request settlement for trades\"},\"setSettlementStatus(bytes32,bytes32)\":{\"notice\":\"Sets settlement status for trades executed\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/SecondaryIssueManager.sol\":\"SecondaryIssueManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@balancer-labs/v2-solidity-utils/contracts/helpers/BalancerErrors.sol\":{\"keccak256\":\"0x14f18d0c0051d5412a250536a9850f2698fe1ede9e4760d94142762a039f053b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://21535a4a50a1f1acf80c543b1e44fc80671787a0364c1e3f0437e7c499f15258\",\"dweb:/ipfs/QmR9EMgjmdQRJHFrmD2Tjb9BqN2rNgvi6je5yh71oxebav\"]},\"@balancer-labs/v2-solidity-utils/contracts/helpers/ISignaturesValidator.sol\":{\"keccak256\":\"0x2fe46b13b7c8bfc6f5c539c0b73d6325813f383f551b71fb6bca8dafd06964e1\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8e651ae7a3a3652c8bb7aaa42c2cce5924310df62a923d9ec50ddb9c850d2995\",\"dweb:/ipfs/QmTHz9y18L5FD7v9GcvxGWSLJuin2KCUEYoARTgz8njce8\"]},\"@balancer-labs/v2-solidity-utils/contracts/helpers/ITemporarilyPausable.sol\":{\"keccak256\":\"0xb3e5b7c63f80b80ef3f0138eac56c397a439bf6b667fc06d5061aa869828b562\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://978d66fba0721a1a67e29a32eaddab8d1f92ab2fb2d611724ea8d0d3c9b0e95b\",\"dweb:/ipfs/QmfG4foZvx3NDZao7d4VvGzL4Uxtk8VWNJXvgo9fiAJxZv\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol\":{\"keccak256\":\"0x38720507bb6c838df83953d1ffa88b97d0e06baefa0e3e387303cb8a090a49f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://fd74d7d2f8881dcc5a3aa4ce732f84b2cbb15de117e1fc4735a3d58a4062524a\",\"dweb:/ipfs/QmSYxuM8HhMn3oPxZ66PbukDikGPkHs3FLD7miFbky2EfW\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/LogExpMath.sol\":{\"keccak256\":\"0x66c6a4efc58bcc18d11fdc3236ec53f6044944918e86116f3aa3deee1daac8ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5deeae731108f0d2fed1ae8c6bcb2796b5a93f6c260019306d175bd3baa2988\",\"dweb:/ipfs/QmexvLdJbGMSrmaAVrZDaHVfCaAzQpV2ZybQMnfX4zXsPU\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/Math.sol\":{\"keccak256\":\"0xb665c41c5d079058a53d3041d464ca5b6cac21de6a1e9ec514185c85eff2c5fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43c8834672f4fb25263aa8bed735fe6f4cd41d3ccbacfb519dd986a09136ae3f\",\"dweb:/ipfs/QmWiQXi9jiPWAbcBkxA99qfjv1Qx3R1tgZmgbeSsp7j42m\"]},\"@balancer-labs/v2-solidity-utils/contracts/misc/IWETH.sol\":{\"keccak256\":\"0x19a0628bedbe48178a4c90509a40d750d5039677b964ec533a24361a8d97274b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c55887c89f152f00e5d65389061de28fada0e73eb5f41ebd16a3b8e65846cb1a\",\"dweb:/ipfs/QmNbVtaA44BGvKnKiCT4bEtjZu1ZD5ZJ6XrgBDh5qVEGcP\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol\":{\"keccak256\":\"0x4bd56e87f0041ba666a540160962cd9f1eed11164a9a91af180550d69da4c8bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f43b33f08fe77242331b6209b35cf4f40ab38b9a6adae52adbd156603fc7b004\",\"dweb:/ipfs/QmQDr8qkAwrY5yuVizRbeMnNmaJGoVz8fqEdyKeSi7Z8eU\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol\":{\"keccak256\":\"0xd828a935a72a6d182912abba290e4debb8c684c36fd756088f7acb30e0b2bb76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e6ac013b95e9622917c5ad388dc73f0a389a76341597731746e54547aa9de8a\",\"dweb:/ipfs/QmPB8qWcRPZaDsASgQpf5a6i2YrZ4TDV3Ebi25Mn9EAdf4\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol\":{\"keccak256\":\"0x53e476d8641ec8d7502efcfaa666981c22fced87c553cf8bb206790af68798c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3eb7bbe7b8706130bd7c646766bec6d8ffb5792c20aac3b127f2a09aee9d8bc4\",\"dweb:/ipfs/QmcQdUBz6AozKU4rvBYLbZqcKy85fXPkKnhCbnthQi9k61\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol\":{\"keccak256\":\"0xafe0542eb14932a66ce6280fbe9991130ead5bbcb7836d0a822fc4a59810c100\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://140c69f688c58bbf08f7b1b6f76dd89d72f9c84a3aab8ad1194679ee0acaa6e6\",\"dweb:/ipfs/QmUCub3NpdGK1U4xjSwsCHNZnRokcM9NMhRtC2kLefYef8\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol\":{\"keccak256\":\"0x70ecf1d48c285d78718bd2e159345677038ed8a81c74444bedd6a5c61af9aff6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8c7c210e449ea5d284abeaaed82e3bb3c203b57d8b3e5dfb6daedf76eaae31d1\",\"dweb:/ipfs/QmfJWLPhCG6PcHNJMLNDbAM6nd2ZVFCexCXvJ9qQmRaNbn\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IAuthorizer.sol\":{\"keccak256\":\"0x792871e208bba1dad291f8d1cffad86f4afa5e2360816bd9c43481f7297155f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://af8ab65258e294c8ba0a5feee91208789f641181d225364b02123d38d9eec7d0\",\"dweb:/ipfs/Qmb5HUXRaSrHJafwK1H8XRjcCTnAZMShTvBNhr1ovA1j2m\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol\":{\"keccak256\":\"0x5ceb7a9b209c01659b25898622a2415414e12a7200559e57283fd511fe96c92a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35a6ee6cb389f2675c1b64f9813862d3503524ee05067ba88172c9298d4f5e3c\",\"dweb:/ipfs/QmZGPUaoKfRigdo2U9U3695j9wX97GRSzgiK8c6zhVjjFY\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IProtocolFeesCollector.sol\":{\"keccak256\":\"0xacad6dfbdf2395aeb8b793b3cb5d9ee2702d8d5f667084ff7bfa248f64700f47\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b8a27ce7efd29cb653529a2e2c6a828f5bd973b286dc166d12a8f81426bca68a\",\"dweb:/ipfs/QmPFuddzXwjK58qDG4z1n9S9Yff865yCToAStRbdfWMo1D\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IVault.sol\":{\"keccak256\":\"0x8a0904cb11d6571fdc0051b2de6b675d0e1cf8af45c1a5467d047812f1086223\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://e428d19d1bd18504c5c8a797b0a80515072f4d7fc278df73b9fec0ab8efe155d\",\"dweb:/ipfs/QmYeJPPQKAckBVvuhU9XXiZR4aSrVNu3WcfTmSsXJJYey3\"]},\"project:/contracts/SecondaryIssueManager.sol\":{\"keccak256\":\"0x36a4cde23182bb8d55e82a439f94527d939cd015d19a810e257e07206bb5be35\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://77b78e3aee32c52a186d74bb08d7bea12c80647bb077bac2fba77936241f2392\",\"dweb:/ipfs/QmXNcYZqsKxPWqbQ4X2GUNUDvq6UjSDLLiVerACg5LedCR\"]},\"project:/contracts/interfaces/IFactory.sol\":{\"keccak256\":\"0x441c3a2cf365fae2c81f6bf8990efd6406bc20ece65372a83418181ce0008766\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12173165996b7a28c02cc3ca333e7b7371ffa96b07507ad98827a102db64d854\",\"dweb:/ipfs/QmXL1KhBX7GEYqE5sU2Bpeum7MwdoXzjKdQ8Noiq6PwMtt\"]},\"project:/contracts/interfaces/IOrder.sol\":{\"keccak256\":\"0x9dd8d53eb2a83fcbbcb196d9a937f0578f2b3809c0b81f37abc16a800a3c53dc\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://51423294c6d889c40d42d6434d5109df5cea2ff36436419fb101d0acba7522ac\",\"dweb:/ipfs/QmSuKCuk6Gx4QDgjefVRDscsoUg89C6StB2cWnvw25KpY9\"]},\"project:/contracts/interfaces/ISecondaryIssuePool.sol\":{\"keccak256\":\"0x2f9732c285d31af8286a0fd490f3370f91a7f431fffdb068ece2e1bcbc38026c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33f49c566d565afc8cb1ff78a46d9bd0eb305bd1250a0828b4b75df70d1f8d19\",\"dweb:/ipfs/QmRDDZsY6FjkkX1U5HMUya7ab8pfZaGisvR9JatTg8WVuK\"]},\"project:/contracts/interfaces/ISecondaryIssuePoolFactory.sol\":{\"keccak256\":\"0x5e1b8432df02701e3e87cc57ea11bc62101a48fac1f359c011a01f4914656a74\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://bf3f1e88cb70d687b7858de1a225e48f026e0136a42bd7ba7871225239386e0a\",\"dweb:/ipfs/QmU9xpnLnok5GtZ2QjcWV4bGUvipRhWuEqicVVWUMuZfHR\"]},\"project:/contracts/interfaces/ISecurity.sol\":{\"keccak256\":\"0xc1682b23224bb0ecd24a4b3012d66518be83b4889fc77d72d1349c6e89edf597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e02d526937045d1b94ea1de574a858c40440f2680a890a026e4c21de553fe3df\",\"dweb:/ipfs/QmdAFt9bHaa22hTDmrApWFLqUodF1jMDoDMLrrJfwodF3v\"]},\"project:/contracts/interfaces/ISettlor.sol\":{\"keccak256\":\"0xaac3251ebb64276130f09334b9ca5ec88c7ebf15ae0bbc409b4ef810f2af8a83\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://e0dc22788473be827fa41586ad798b41503586ef08cb0fa490bf4a0d62897f8f\",\"dweb:/ipfs/QmeJreBnW5tRrrDSBuj7VAibBv7ZVbHwNKEH1mU4zk3mFR\"]},\"project:/contracts/interfaces/ITrade.sol\":{\"keccak256\":\"0x5971eefd26d48a5afd8a3be49b11b1a0def2dd259863f6844ab7675c835875af\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://9dbf1e2f97b4c91b9af646b0d7f56d508c431e247e1f0642f17e035ca7fa4453\",\"dweb:/ipfs/QmXKr1oBP7vmgv8xRf8BLn6xtCbUQLqU3xQjGZMxavC5RS\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xc07d8f7ca84f495b2c124ca6e6ae8ccccc49360eb7a2de6bf12f8e8ddc32571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7dc9da4650c81341695284d924d73b0b59dd50770e8b27ae9fb8c4b84d63c75\",\"dweb:/ipfs/QmXvSwN1eqhrtDVPozZ8FF6LYhMF6hFJFpRuZbd9mo2Zwd\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3613a108061005f6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b431657c11610066578063b431657c146101e7578063bfa0caa7146101fa578063c9fca3c71461021a578063f2fde38b1461023a576100f5565b80638da5cb5b14610199578063905ec5ce146101ae5780639f2a0ccc146101c1578063a2dc2ab7146101d4576100f5565b806369fe0e2d116100d357806369fe0e2d1461014b578063715018a61461015e57806371eedc7f1461016657806379a7dc0e14610179576100f5565b806304967159146100fa5780632d9167461461010f57806339c79e0c14610138575b600080fd5b61010d6101083660046131da565b61024d565b005b61012261011d366004612f3e565b610332565b60405161012f91906135f8565b60405180910390f35b61010d6101463660046131aa565b610465565b61010d6101593660046131aa565b6109cb565b61010d6109ee565b61010d6101743660046132a2565b610a44565b61018c6101873660046131aa565b6111f2565b60405161012f91906138bf565b6101a16112cd565b60405161012f919061347d565b61010d6101bc366004612fee565b6112dc565b6101226101cf366004612f76565b611c2b565b61010d6101e2366004613046565b611c58565b61010d6101f5366004612fae565b611cca565b61020d6102083660046131aa565b611da5565b60405161012f919061356f565b61022d6102283660046131da565b611f16565b60405161012f919061352b565b61010d610248366004612f3e565b612046565b60008281526006602052604080822060030154600f54915163e0a87de160e01b815233936001600160a01b03928316939092169063e0a87de19061029590859060040161347d565b60206040518083038186803b1580156102ad57600080fd5b505afa1580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e59190612f5a565b9050826001600160a01b0316816001600160a01b0316146103215760405162461bcd60e51b815260040161031890613723565b60405180910390fd5b61032b85856120c4565b5050505050565b6010546000906001600160a01b0316331461035f5760405162461bcd60e51b8152600401610318906137b2565b6001600160a01b0382166000908152600d60205260409020546103828180612b07565b6001600160a01b038085166000818152600d60205260409081902093909355601054925163a9059cbb60e01b8152909263a9059cbb926103c9929116908590600401613512565b602060405180830381600087803b1580156103e357600080fd5b505af11580156103f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041b919061318a565b50306001600160a01b03167feaad90c8664cdf61d60bd7ba6745a881fd1c38d9f4ff0b373b4365cdeeb0f9e8824260405161045792919061346f565b60405180910390a292915050565b6000818152600a602052604080822054600f54915163e0a87de160e01b815233936001600160a01b03928316939092169063e0a87de1906104aa90859060040161347d565b60206040518083038186803b1580156104c257600080fd5b505afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa9190612f5a565b9050826001600160a01b0316816001600160a01b03161461052d5760405162461bcd60e51b815260040161031890613723565b6000848152600960209081526040808320548151636945c1fd60e01b815291516001600160a01b0390911692636945c1fd9260048082019391829003018186803b15801561057a57600080fd5b505afa15801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b29190612f5a565b600254604051631f29a8cd60e31b81529192506060916001600160a01b039091169063f94d4668906105e89089906004016135f8565b60006040518083038186803b15801561060057600080fd5b505afa158015610614573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261063c91908101906130be565b50509050606061064b82612b1d565b90506060825167ffffffffffffffff8111801561066757600080fd5b50604051908082528060200260200182016040528015610691578160200160208202803683370190505b50905061069c612ddd565b6040518060800160405280848152602001838152602001600160006040516020016106c89291906136a1565b60408051808303601f1901815291815290825260006020909201919091526002549051638bdb391360e01b81529192506001600160a01b031690638bdb39139061071c908c90309081908790600401613601565b600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b50505060008a8152600a6020526040908190205490518b92507f56eadf552f1d54f8f73fbbf801097c1c4d7bb3d77d5ac2bebfd0a8151642d55a9161079c916001600160a01b03909116904290613512565b60405180910390a26000898152600b6020526040908190205490516370a0823160e01b81526001600160a01b038088169263a9059cbb9291169083906370a08231906107ec90309060040161347d565b60206040518083038186803b15801561080457600080fd5b505afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c91906131c2565b6040518363ffffffff1660e01b8152600401610859929190613512565b602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab919061318a565b506000898152600a6020818152604080842054600b8352938190205492909152516370a0823160e01b81526001600160a01b039283169263a9059cbb92169083906370a082319061090090309060040161347d565b60206040518083038186803b15801561091857600080fd5b505afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095091906131c2565b6040518363ffffffff1660e01b815260040161096d929190613512565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bf919061318a565b50505050505050505050565b6109e9336109d76112cd565b6001600160a01b0316146101aa612b20565b600355565b6109fa336109d76112cd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33600090815260086020526040902054610a705760405162461bcd60e51b815260040161031890613891565b610a78612e07565b6020830151604051632bbc239560e11b81526001600160a01b03841691635778472a91610aa891906004016135f8565b60a06040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190613228565b9050610b02612e07565b6040808501519051632bbc239560e11b81526001600160a01b03851691635778472a91610b3291906004016135f8565b60a06040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190613228565b90506000836001600160a01b0316632541897f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b505afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf79190612f5a565b90506000846001600160a01b0316636945c1fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3457600080fd5b505afa158015610c48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6c9190612f5a565b90506000826001600160a01b031685602001516001600160a01b031614610c94578351610c97565b84515b90506000826001600160a01b031685602001516001600160a01b031614610cbf578551610cc2565b84515b60808901519091506000610cd586612b32565b90506000610d08610cf28c60a00151610ced89612c3e565b612cd9565b610d038d60800151610ced8b612c3e565b612ce5565b9050610d12612e36565b604051806101a001604052808c6001600160a01b03168152602001876001600160a01b03168152602001866001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b031681526020016650656e64696e6760c81b8152602001848152602001838152602001858152602001610d9c8e60a00151610ced8b612c3e565b81526020018d606001518152602001896001600160a01b03168c602001516001600160a01b031614610dd2578d60400151610dd8565b8d602001515b8152602001886001600160a01b03168b602001516001600160a01b031614610e04578d60200151610e0a565b8d604001515b815250905060008c602001518d60400151604051602001610e2c92919061346f565b60408051808303601f1901815291815281516020928301206000818152600680855290839020865181546001600160a01b03199081166001600160a01b0392831617835595880151600183018054881691831691909117905593870151600282018054871691861691909117905560608701516003820180548716918616919091179055608087015160048201805490961694169390931790935560a0850151600583015560c08501519282019290925560e0840151600782015561010084015160088201556101208401516009820155610140840151600a820155610160840151600b820155610180840151600c909101559050610f29612ea2565b6040518060a00160405280886001600160a01b031681526020018b6001600160a01b031681526020018a6001600160a01b0316815260200187815260200185815250905060008d6001600160a01b03166338fff2d06040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa857600080fd5b505afa158015610fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe091906131c2565b9050600c60008281526020019081526020016000208290806001815401808255809150506001900390600