@venusprotocol/protocol-reserve 1.6.0-dev.1 → 1.6.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +1 -1
  2. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +1 -1
  3. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  4. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +1 -1
  5. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  6. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  7. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  8. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  9. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +1 -1
  10. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  11. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  12. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  13. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +1 -1
  14. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  15. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  16. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  17. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  18. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  19. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  20. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  21. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  22. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +1 -1
  23. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +1 -1
  24. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +1 -1
  25. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +1 -1
  26. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +1 -1
  27. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  28. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  29. package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  30. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +1 -1
  31. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  32. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +1 -1
  33. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +1 -1
  34. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  35. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  36. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +1 -1
  37. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +1 -1
  38. package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.dbg.json +1 -1
  39. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +1 -1
  40. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +1 -1
  41. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +1 -1
  42. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +1 -1
  43. package/artifacts/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.dbg.json +1 -1
  44. package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +1 -1
  45. package/artifacts/build-info/{edc419076b46914ce81b28cdf6fbe9e4.json → d1fcd0a2f344488c087ed41d687ed735.json} +1 -1
  46. package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.dbg.json +1 -1
  47. package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.dbg.json +1 -1
  48. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.dbg.json +1 -1
  49. package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.dbg.json +1 -1
  50. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +1 -1
  51. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.dbg.json +1 -1
  52. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.dbg.json +1 -1
  53. package/artifacts/contracts/Interfaces/IRiskFundConverter.sol/IRiskFundConverter.dbg.json +1 -1
  54. package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.dbg.json +1 -1
  55. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.dbg.json +1 -1
  56. package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.dbg.json +1 -1
  57. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +1 -1
  58. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.dbg.json +1 -1
  59. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.dbg.json +1 -1
  60. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.dbg.json +1 -1
  61. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.dbg.json +1 -1
  62. package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.dbg.json +1 -1
  63. package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.dbg.json +1 -1
  64. package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.json +50 -2
  65. package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.dbg.json +1 -1
  66. package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.dbg.json +1 -1
  67. package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.dbg.json +1 -1
  68. package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +1 -1
  69. package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.dbg.json +1 -1
  70. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.dbg.json +1 -1
  71. package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.dbg.json +1 -1
  72. package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.dbg.json +1 -1
  73. package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.dbg.json +1 -1
  74. package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.dbg.json +1 -1
  75. package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.dbg.json +1 -1
  76. package/contracts/ProtocolReserve/XVSVaultTreasury.sol +26 -0
  77. package/deployments/bscmainnet/XVSVaultTreasury_Implementation.json +91 -27
  78. package/deployments/bscmainnet/solcInputs/f56c48e0e517617d548c496f99aa8709.json +237 -0
  79. package/deployments/bscmainnet.json +49 -1
  80. package/deployments/bscmainnet_addresses.json +1 -1
  81. package/deployments/bsctestnet/XVSVaultTreasury_Implementation.json +91 -27
  82. package/deployments/bsctestnet/solcInputs/f56c48e0e517617d548c496f99aa8709.json +237 -0
  83. package/deployments/bsctestnet.json +49 -1
  84. package/deployments/bsctestnet_addresses.json +1 -1
  85. package/dist/hardhat.config.d.ts.map +1 -1
  86. package/dist/hardhat.config.js +1 -0
  87. package/dist/hardhat.config.js.map +1 -1
  88. package/dist/typechain/factories/XVSVaultTreasury__factory.d.ts +1 -1
  89. package/dist/typechain/factories/XVSVaultTreasury__factory.d.ts.map +1 -1
  90. package/dist/typechain/factories/XVSVaultTreasury__factory.js +49 -1
  91. package/dist/typechain/factories/XVSVaultTreasury__factory.js.map +1 -1
  92. package/package.json +2 -1
  93. package/typechain/XVSVaultTreasury.d.ts +65 -0
  94. package/typechain/factories/XVSVaultTreasury__factory.ts +49 -1
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -139,6 +139,31 @@
139
139
  "name": "OwnershipTransferred",
140
140
  "type": "event"
141
141
  },
142
+ {
143
+ "anonymous": false,
144
+ "inputs": [
145
+ {
146
+ "indexed": true,
147
+ "internalType": "address",
148
+ "name": "token",
149
+ "type": "address"
150
+ },
151
+ {
152
+ "indexed": true,
153
+ "internalType": "address",
154
+ "name": "to",
155
+ "type": "address"
156
+ },
157
+ {
158
+ "indexed": false,
159
+ "internalType": "uint256",
160
+ "name": "amount",
161
+ "type": "uint256"
162
+ }
163
+ ],
164
+ "name": "SweepToken",
165
+ "type": "event"
166
+ },
142
167
  {
143
168
  "anonymous": false,
144
169
  "inputs": [
@@ -281,6 +306,29 @@
281
306
  "stateMutability": "nonpayable",
282
307
  "type": "function"
283
308
  },
309
+ {
310
+ "inputs": [
311
+ {
312
+ "internalType": "address",
313
+ "name": "tokenAddress",
314
+ "type": "address"
315
+ },
316
+ {
317
+ "internalType": "address",
318
+ "name": "to",
319
+ "type": "address"
320
+ },
321
+ {
322
+ "internalType": "uint256",
323
+ "name": "amount",
324
+ "type": "uint256"
325
+ }
326
+ ],
327
+ "name": "sweepToken",
328
+ "outputs": [],
329
+ "stateMutability": "nonpayable",
330
+ "type": "function"
331
+ },
284
332
  {
285
333
  "inputs": [
286
334
  {
@@ -308,8 +356,8 @@
308
356
  "type": "function"
309
357
  }
310
358
  ],
311
- "bytecode": "0x60a06040523480156200001157600080fd5b506040516200165738038062001657833981016040819052620000349162000149565b6200003f816200005d565b6001600160a01b0381166080526200005662000088565b506200017b565b6001600160a01b03811662000085576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff1615620000f55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000147576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b6080516114b2620001a560003960008181610162015281816104f6015261066b01526114b26000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806379ba509711610081578063b4a0bdf31161005b578063b4a0bdf3146101c5578063e30c3978146101e3578063f2fde38b1461020157600080fd5b806379ba50971461018c5780638da5cb5b146101945780639a02c39a146101b257600080fd5b8063485cc955116100b2578063485cc9551461014a57806354a617ed1461015d578063715018a61461018457600080fd5b80630e32cb86146100d957806314d35a63146100ee5780631b9ce57514610101575b600080fd5b6100ec6100e7366004611294565b610214565b005b6100ec6100fc366004611294565b610228565b60fb546101219073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ec6101583660046112b8565b610239565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6100ec6103ca565b6100ec6103de565b60335473ffffffffffffffffffffffffffffffffffffffff16610121565b6100ec6101c03660046112f1565b610476565b60975473ffffffffffffffffffffffffffffffffffffffff16610121565b60655473ffffffffffffffffffffffffffffffffffffffff16610121565b6100ec61020f366004611294565b6106ee565b61021c61079e565b61022581610805565b50565b61023061079e565b61022581610914565b600054610100900460ff16158080156102595750600054600160ff909116105b806102735750303b158015610273575060005460ff166001145b6102ea5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561034857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610351836109ab565b610359610a39565b61036282610914565b80156103c557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6103d261079e565b6103dc6000610abe565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461046d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016102e1565b61022581610abe565b61047e610aef565b6104bc6040518060400160405280601581526020017f66756e645856535661756c742875696e74323536290000000000000000000000815250610b48565b6104c581610c25565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610552573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610576919061130a565b9050818110156105b2576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb54604080517f24f52bbf000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916324f52bbf9160048083019260209291908290030181865afa158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611323565b905061065181610c5f565b61069273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168285610cac565b8073ffffffffffffffffffffffffffffffffffffffff167f15daab32014613a1f6e3f4500519c6ae9f7b172530faeac09157815d4f395381846040516106da91815260200190565b60405180910390a25050610225600160c955565b6106f661079e565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561075960335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff1633146103dc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102e1565b73ffffffffffffffffffffffffffffffffffffffff811661088e5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016102e1565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b61091d81610c5f565b60fb5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3bf9abe00ba7558b8031adf12ba72290510a001068b251cd4931a4199a78068a90600090a360fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16610a285760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b610a30610d40565b61022581610dc5565b600054610100900460ff16610ab65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6103dc610e42565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561022581610ebf565b600260c95403610b415760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102e1565b600260c955565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610ba190339086906004016113ba565b602060405180830381865afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be291906113e9565b905080610c21573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016102e19392919061140b565b5050565b80600003610225576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610225576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526103c5908490610f36565b600160c955565b600054610100900460ff16610dbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6103dc61102b565b600054610100900460ff1661021c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b600054610100900460ff16610d395760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000610f98826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166110b19092919063ffffffff16565b9050805160001480610fb9575080806020019051810190610fb991906113e9565b6103c55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016102e1565b600054610100900460ff166110a85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6103dc33610abe565b60606110c084846000856110c8565b949350505050565b6060824710156111405760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016102e1565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611169919061144d565b60006040518083038185875af1925050503d80600081146111a6576040519150601f19603f3d011682016040523d82523d6000602084013e6111ab565b606091505b50915091506111bc878383876111c7565b979650505050505050565b6060831561124357825160000361123c5773ffffffffffffffffffffffffffffffffffffffff85163b61123c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102e1565b50816110c0565b6110c083838151156112585781518083602001fd5b8060405162461bcd60e51b81526004016102e19190611469565b73ffffffffffffffffffffffffffffffffffffffff8116811461022557600080fd5b6000602082840312156112a657600080fd5b81356112b181611272565b9392505050565b600080604083850312156112cb57600080fd5b82356112d681611272565b915060208301356112e681611272565b809150509250929050565b60006020828403121561130357600080fd5b5035919050565b60006020828403121561131c57600080fd5b5051919050565b60006020828403121561133557600080fd5b81516112b181611272565b60005b8381101561135b578181015183820152602001611343565b8381111561136a576000848401525b50505050565b60008151808452611388816020860160208601611340565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006110c06040830184611370565b6000602082840312156113fb57600080fd5b815180151581146112b157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526114446060830184611370565b95945050505050565b6000825161145f818460208701611340565b9190910192915050565b6020815260006112b1602083018461137056fea26469706673582212208096a2f599f35293c5f19ed2d249b14d665c7fe0b66fa63c5fe6cf35720e1b0a64736f6c634300080d0033",
312
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c806379ba509711610081578063b4a0bdf31161005b578063b4a0bdf3146101c5578063e30c3978146101e3578063f2fde38b1461020157600080fd5b806379ba50971461018c5780638da5cb5b146101945780639a02c39a146101b257600080fd5b8063485cc955116100b2578063485cc9551461014a57806354a617ed1461015d578063715018a61461018457600080fd5b80630e32cb86146100d957806314d35a63146100ee5780631b9ce57514610101575b600080fd5b6100ec6100e7366004611294565b610214565b005b6100ec6100fc366004611294565b610228565b60fb546101219073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100ec6101583660046112b8565b610239565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6100ec6103ca565b6100ec6103de565b60335473ffffffffffffffffffffffffffffffffffffffff16610121565b6100ec6101c03660046112f1565b610476565b60975473ffffffffffffffffffffffffffffffffffffffff16610121565b60655473ffffffffffffffffffffffffffffffffffffffff16610121565b6100ec61020f366004611294565b6106ee565b61021c61079e565b61022581610805565b50565b61023061079e565b61022581610914565b600054610100900460ff16158080156102595750600054600160ff909116105b806102735750303b158015610273575060005460ff166001145b6102ea5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561034857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610351836109ab565b610359610a39565b61036282610914565b80156103c557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6103d261079e565b6103dc6000610abe565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461046d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016102e1565b61022581610abe565b61047e610aef565b6104bc6040518060400160405280601581526020017f66756e645856535661756c742875696e74323536290000000000000000000000815250610b48565b6104c581610c25565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610552573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610576919061130a565b9050818110156105b2576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb54604080517f24f52bbf000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916324f52bbf9160048083019260209291908290030181865afa158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611323565b905061065181610c5f565b61069273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168285610cac565b8073ffffffffffffffffffffffffffffffffffffffff167f15daab32014613a1f6e3f4500519c6ae9f7b172530faeac09157815d4f395381846040516106da91815260200190565b60405180910390a25050610225600160c955565b6106f661079e565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561075960335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff1633146103dc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102e1565b73ffffffffffffffffffffffffffffffffffffffff811661088e5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016102e1565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b61091d81610c5f565b60fb5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3bf9abe00ba7558b8031adf12ba72290510a001068b251cd4931a4199a78068a90600090a360fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16610a285760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b610a30610d40565b61022581610dc5565b600054610100900460ff16610ab65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6103dc610e42565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561022581610ebf565b600260c95403610b415760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102e1565b600260c955565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610ba190339086906004016113ba565b602060405180830381865afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be291906113e9565b905080610c21573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016102e19392919061140b565b5050565b80600003610225576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610225576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526103c5908490610f36565b600160c955565b600054610100900460ff16610dbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6103dc61102b565b600054610100900460ff1661021c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b600054610100900460ff16610d395760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000610f98826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166110b19092919063ffffffff16565b9050805160001480610fb9575080806020019051810190610fb991906113e9565b6103c55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016102e1565b600054610100900460ff166110a85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e1565b6103dc33610abe565b60606110c084846000856110c8565b949350505050565b6060824710156111405760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016102e1565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611169919061144d565b60006040518083038185875af1925050503d80600081146111a6576040519150601f19603f3d011682016040523d82523d6000602084013e6111ab565b606091505b50915091506111bc878383876111c7565b979650505050505050565b6060831561124357825160000361123c5773ffffffffffffffffffffffffffffffffffffffff85163b61123c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102e1565b50816110c0565b6110c083838151156112585781518083602001fd5b8060405162461bcd60e51b81526004016102e19190611469565b73ffffffffffffffffffffffffffffffffffffffff8116811461022557600080fd5b6000602082840312156112a657600080fd5b81356112b181611272565b9392505050565b600080604083850312156112cb57600080fd5b82356112d681611272565b915060208301356112e681611272565b809150509250929050565b60006020828403121561130357600080fd5b5035919050565b60006020828403121561131c57600080fd5b5051919050565b60006020828403121561133557600080fd5b81516112b181611272565b60005b8381101561135b578181015183820152602001611343565b8381111561136a576000848401525b50505050565b60008151808452611388816020860160208601611340565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006110c06040830184611370565b6000602082840312156113fb57600080fd5b815180151581146112b157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526114446060830184611370565b95945050505050565b6000825161145f818460208701611340565b9190910192915050565b6020815260006112b1602083018461137056fea26469706673582212208096a2f599f35293c5f19ed2d249b14d665c7fe0b66fa63c5fe6cf35720e1b0a64736f6c634300080d0033",
359
+ "bytecode": "0x60a06040523480156200001157600080fd5b506040516200177538038062001775833981016040819052620000349162000149565b6200003f816200005d565b6001600160a01b0381166080526200005662000088565b506200017b565b6001600160a01b03811662000085576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff1615620000f55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000147576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b6080516115d0620001a56000396000818161016d015281816105d3015261074801526115d06000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c5780639a02c39a116100665780639a02c39a146101d0578063b4a0bdf3146101e3578063e30c397814610201578063f2fde38b1461021f57600080fd5b8063715018a6146101a257806379ba5097146101aa5780638da5cb5b146101b257600080fd5b8063485cc955116100bd578063485cc9551461015557806354a617ed1461016857806364aff9ec1461018f57600080fd5b80630e32cb86146100e457806314d35a63146100f95780631b9ce5751461010c575b600080fd5b6100f76100f2366004611371565b610232565b005b6100f7610107366004611371565b610246565b60fb5461012c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100f7610163366004611395565b610257565b61012c7f000000000000000000000000000000000000000000000000000000000000000081565b6100f761019d3660046113ce565b6103e8565b6100f76104a7565b6100f76104bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661012c565b6100f76101de36600461140f565b610553565b60975473ffffffffffffffffffffffffffffffffffffffff1661012c565b60655473ffffffffffffffffffffffffffffffffffffffff1661012c565b6100f761022d366004611371565b6107cb565b61023a61087b565b610243816108e2565b50565b61024e61087b565b610243816109f1565b600054610100900460ff16158080156102775750600054600160ff909116105b806102915750303b158015610291575060005460ff166001145b6103085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561036657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61036f83610a88565b610377610b16565b610380826109f1565b80156103e357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6103f061087b565b6103f8610b9b565b61040183610bf4565b61040a82610bf4565b61041381610c41565b8261043573ffffffffffffffffffffffffffffffffffffffff82168484610c7b565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d58460405161049491815260200190565b60405180910390a3506103e3600160c955565b6104af61087b565b6104b96000610d0f565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461054a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016102ff565b61024381610d0f565b61055b610b9b565b6105996040518060400160405280601581526020017f66756e645856535661756c742875696e74323536290000000000000000000000815250610d40565b6105a281610c41565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190611428565b90508181101561068f576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb54604080517f24f52bbf000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916324f52bbf9160048083019260209291908290030181865afa1580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190611441565b905061072e81610bf4565b61076f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168285610c7b565b8073ffffffffffffffffffffffffffffffffffffffff167f15daab32014613a1f6e3f4500519c6ae9f7b172530faeac09157815d4f395381846040516107b791815260200190565b60405180910390a25050610243600160c955565b6107d361087b565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561083660335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff1633146104b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102ff565b73ffffffffffffffffffffffffffffffffffffffff811661096b5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016102ff565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6109fa81610bf4565b60fb5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3bf9abe00ba7558b8031adf12ba72290510a001068b251cd4931a4199a78068a90600090a360fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16610b055760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b610b0d610e1d565b61024381610ea2565b600054610100900460ff16610b935760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6104b9610f1f565b600260c95403610bed5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102ff565b600260c955565b73ffffffffffffffffffffffffffffffffffffffff8116610243576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003610243576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526103e3908490610f9c565b600160c955565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561024381611091565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610d9990339086906004016114d8565b602060405180830381865afa158015610db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dda9190611507565b905080610e19573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016102ff93929190611529565b5050565b600054610100900460ff16610e9a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6104b9611108565b600054610100900460ff1661023a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b600054610100900460ff16610d085760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6000610ffe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661118e9092919063ffffffff16565b905080516000148061101f57508080602001905181019061101f9190611507565b6103e35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016102ff565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166111855760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6104b933610d0f565b606061119d84846000856111a5565b949350505050565b60608247101561121d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016102ff565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611246919061156b565b60006040518083038185875af1925050503d8060008114611283576040519150601f19603f3d011682016040523d82523d6000602084013e611288565b606091505b5091509150611299878383876112a4565b979650505050505050565b606083156113205782516000036113195773ffffffffffffffffffffffffffffffffffffffff85163b6113195760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ff565b508161119d565b61119d83838151156113355781518083602001fd5b8060405162461bcd60e51b81526004016102ff9190611587565b73ffffffffffffffffffffffffffffffffffffffff8116811461024357600080fd5b60006020828403121561138357600080fd5b813561138e8161134f565b9392505050565b600080604083850312156113a857600080fd5b82356113b38161134f565b915060208301356113c38161134f565b809150509250929050565b6000806000606084860312156113e357600080fd5b83356113ee8161134f565b925060208401356113fe8161134f565b929592945050506040919091013590565b60006020828403121561142157600080fd5b5035919050565b60006020828403121561143a57600080fd5b5051919050565b60006020828403121561145357600080fd5b815161138e8161134f565b60005b83811015611479578181015183820152602001611461565b83811115611488576000848401525b50505050565b600081518084526114a681602086016020860161145e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061119d604083018461148e565b60006020828403121561151957600080fd5b8151801515811461138e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611562606083018461148e565b95945050505050565b6000825161157d81846020870161145e565b9190910192915050565b60208152600061138e602083018461148e56fea264697066735822122086db21bb77db83ed7a594742e2ce93e5f4e6f5d391fde1aaf720a5089ff26dfb64736f6c634300080d0033",
360
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c5780639a02c39a116100665780639a02c39a146101d0578063b4a0bdf3146101e3578063e30c397814610201578063f2fde38b1461021f57600080fd5b8063715018a6146101a257806379ba5097146101aa5780638da5cb5b146101b257600080fd5b8063485cc955116100bd578063485cc9551461015557806354a617ed1461016857806364aff9ec1461018f57600080fd5b80630e32cb86146100e457806314d35a63146100f95780631b9ce5751461010c575b600080fd5b6100f76100f2366004611371565b610232565b005b6100f7610107366004611371565b610246565b60fb5461012c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100f7610163366004611395565b610257565b61012c7f000000000000000000000000000000000000000000000000000000000000000081565b6100f761019d3660046113ce565b6103e8565b6100f76104a7565b6100f76104bb565b60335473ffffffffffffffffffffffffffffffffffffffff1661012c565b6100f76101de36600461140f565b610553565b60975473ffffffffffffffffffffffffffffffffffffffff1661012c565b60655473ffffffffffffffffffffffffffffffffffffffff1661012c565b6100f761022d366004611371565b6107cb565b61023a61087b565b610243816108e2565b50565b61024e61087b565b610243816109f1565b600054610100900460ff16158080156102775750600054600160ff909116105b806102915750303b158015610291575060005460ff166001145b6103085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561036657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61036f83610a88565b610377610b16565b610380826109f1565b80156103e357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6103f061087b565b6103f8610b9b565b61040183610bf4565b61040a82610bf4565b61041381610c41565b8261043573ffffffffffffffffffffffffffffffffffffffff82168484610c7b565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d58460405161049491815260200190565b60405180910390a3506103e3600160c955565b6104af61087b565b6104b96000610d0f565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461054a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016102ff565b61024381610d0f565b61055b610b9b565b6105996040518060400160405280601581526020017f66756e645856535661756c742875696e74323536290000000000000000000000815250610d40565b6105a281610c41565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190611428565b90508181101561068f576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb54604080517f24f52bbf000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916324f52bbf9160048083019260209291908290030181865afa1580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190611441565b905061072e81610bf4565b61076f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168285610c7b565b8073ffffffffffffffffffffffffffffffffffffffff167f15daab32014613a1f6e3f4500519c6ae9f7b172530faeac09157815d4f395381846040516107b791815260200190565b60405180910390a25050610243600160c955565b6107d361087b565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561083660335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff1633146104b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102ff565b73ffffffffffffffffffffffffffffffffffffffff811661096b5760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016102ff565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6109fa81610bf4565b60fb5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f3bf9abe00ba7558b8031adf12ba72290510a001068b251cd4931a4199a78068a90600090a360fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff16610b055760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b610b0d610e1d565b61024381610ea2565b600054610100900460ff16610b935760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6104b9610f1f565b600260c95403610bed5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102ff565b600260c955565b73ffffffffffffffffffffffffffffffffffffffff8116610243576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003610243576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526103e3908490610f9c565b600160c955565b606580547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561024381611091565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610d9990339086906004016114d8565b602060405180830381865afa158015610db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dda9190611507565b905080610e19573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016102ff93929190611529565b5050565b600054610100900460ff16610e9a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6104b9611108565b600054610100900460ff1661023a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b600054610100900460ff16610d085760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6000610ffe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661118e9092919063ffffffff16565b905080516000148061101f57508080602001905181019061101f9190611507565b6103e35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016102ff565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166111855760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ff565b6104b933610d0f565b606061119d84846000856111a5565b949350505050565b60608247101561121d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016102ff565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611246919061156b565b60006040518083038185875af1925050503d8060008114611283576040519150601f19603f3d011682016040523d82523d6000602084013e611288565b606091505b5091509150611299878383876112a4565b979650505050505050565b606083156113205782516000036113195773ffffffffffffffffffffffffffffffffffffffff85163b6113195760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ff565b508161119d565b61119d83838151156113355781518083602001fd5b8060405162461bcd60e51b81526004016102ff9190611587565b73ffffffffffffffffffffffffffffffffffffffff8116811461024357600080fd5b60006020828403121561138357600080fd5b813561138e8161134f565b9392505050565b600080604083850312156113a857600080fd5b82356113b38161134f565b915060208301356113c38161134f565b809150509250929050565b6000806000606084860312156113e357600080fd5b83356113ee8161134f565b925060208401356113fe8161134f565b929592945050506040919091013590565b60006020828403121561142157600080fd5b5035919050565b60006020828403121561143a57600080fd5b5051919050565b60006020828403121561145357600080fd5b815161138e8161134f565b60005b83811015611479578181015183820152602001611461565b83811115611488576000848401525b50505050565b600081518084526114a681602086016020860161145e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061119d604083018461148e565b60006020828403121561151957600080fd5b8151801515811461138e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611562606083018461148e565b95945050505050565b6000825161157d81846020870161145e565b9190910192915050565b60208152600061138e602083018461148e56fea264697066735822122086db21bb77db83ed7a594742e2ce93e5f4e6f5d391fde1aaf720a5089ff26dfb64736f6c634300080d0033",
313
361
  "linkReferences": {},
314
362
  "deployedLinkReferences": {}
315
363
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/edc419076b46914ce81b28cdf6fbe9e4.json"
3
+ "buildInfo": "../../../build-info/d1fcd0a2f344488c087ed41d687ed735.json"
4
4
  }
@@ -29,6 +29,9 @@ contract XVSVaultTreasury is AccessControlledV8, ReentrancyGuardUpgradeable {
29
29
  /// @notice Emitted when funds transferred to XVSStore address
30
30
  event FundsTransferredToXVSStore(address indexed xvsStore, uint256 amountMantissa);
31
31
 
32
+ /// @notice Event emitted when tokens are swept
33
+ event SweepToken(address indexed token, address indexed to, uint256 amount);
34
+
32
35
  /// @notice Thrown when given input amount is zero
33
36
  error InsufficientBalance();
34
37
 
@@ -83,6 +86,29 @@ contract XVSVaultTreasury is AccessControlledV8, ReentrancyGuardUpgradeable {
83
86
  emit FundsTransferredToXVSStore(xvsStore, amountMantissa);
84
87
  }
85
88
 
89
+ /// @notice Function to sweep tokens from the contract
90
+ /// @param tokenAddress Address of the asset(token)
91
+ /// @param to Address to which assets will be transferred
92
+ /// @param amount Amount need to sweep from the contract
93
+ /// @custom:event Emits SweepToken event on success
94
+ /// @custom:error ZeroAddressNotAllowed is thrown when tokenAddress/to address is zero
95
+ /// @custom:error ZeroValueNotAllowed is thrown when amount is zero
96
+ /// @custom:access Only Governance
97
+ function sweepToken(
98
+ address tokenAddress,
99
+ address to,
100
+ uint256 amount
101
+ ) external onlyOwner nonReentrant {
102
+ ensureNonzeroAddress(tokenAddress);
103
+ ensureNonzeroAddress(to);
104
+ ensureNonzeroValue(amount);
105
+
106
+ IERC20Upgradeable token = IERC20Upgradeable(tokenAddress);
107
+ token.safeTransfer(to, amount);
108
+
109
+ emit SweepToken(tokenAddress, to, amount);
110
+ }
111
+
86
112
  /// @dev XVS vault setter
87
113
  /// @param xvsVault_ Address of the XVS vault
88
114
  /// @custom:event XVSVaultUpdated emits on success