Skip to content

Commit

Permalink
Merge branch 'main' into CU-865d8xb3p-leverage-middleware
Browse files Browse the repository at this point in the history
  • Loading branch information
0xRektora committed Nov 15, 2023
2 parents eacb87f + dc53fc0 commit 9d88468
Show file tree
Hide file tree
Showing 81 changed files with 524 additions and 158 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "1.5.2",
"version": "1.5.3",
"license": "MIT",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
Expand Down
4 changes: 4 additions & 0 deletions src/api/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,8 @@ export const USDO_PACKET_TYPES = [
EPacketType.PT_LEVERAGE_MARKET_UP,
];
export const TOFT_PACKET_TYPES = [
EPacketType.PT_SEND,
EPacketType.PT_SEND_AND_CALL,
EPacketType.PT_YB_SEND_STRAT,
EPacketType.PT_YB_RETRIEVE_STRAT,
EPacketType.PT_MARKET_REMOVE_COLLATERAL,
Expand All @@ -140,6 +142,8 @@ export const TOFT_PACKET_TYPES = [
];
export const ONFT_PACKET_TYPES = [EPacketType.PT_SEND_AND_CALL];
export const TAPOFT_PACKET_TYPES = [
EPacketType.PT_SEND,
EPacketType.PT_SEND_AND_CALL,
EPacketType.PT_LOCK_TWTAP,
EPacketType.PT_UNLOCK_TWTAP,
EPacketType.PT_CLAIM_REWARDS,
Expand Down
4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BBBorrow.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BBCollateral.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BBCommon.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BBLendingCommon.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BBLeverage.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BBLiquidation.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BBStorage.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BaseUSDO.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BaseUSDOStorage.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/BigBang.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/MarketERC20.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/MarketLiquidatorReceiver.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/Penrose.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/SGLBorrow.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/SGLCollateral.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/SGLCommon.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/SGLLendingCommon.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/SGLLeverage.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/SGLLiquidation.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/SGLStorage.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/Singularity.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDO.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOFlashloanHelper.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOGenericModule.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOLeverageDestinationModule.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOLeverageModule.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOMarketDestinationModule.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOMarketModule.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOOptionsDestinationModule.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-bar/USDOOptionsModule.json

Large diffs are not rendered by default.

62 changes: 57 additions & 5 deletions src/artifacts/tapioca-mocks/ERC20Mock.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/artifacts/tapioca-mocks/FlashBorrowerMock.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@
"type": "function"
}
],
"bytecode": "0x60803461007457601f61053338819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516104a390816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c90816323e30c8b1461011f57508063736ddf3b146100f55763b53e48851461004357600080fd5b346100f157806003193601126100f15761005b610249565b9060206024359261006c84826102d7565b60a46001600160a01b0391868381541686519788958694632e7ff4ef60e11b86523060048701521660248501526044840152608060648401528160848401525af19081156100e857506100bd575080f35b6100dd9060203d81116100e1575b6100d58183610264565b81019061029c565b5080f35b503d6100cb565b513d84823e3d90fd5b5080fd5b50346100f15736600319011261011c57610119610110610249565b602435906102d7565b80f35b80fd5b9050823461011c5760a036600319011261011c5761013b610249565b916001600160a01b03916024358381160361011c5760843567ffffffffffffffff8082116102455736602383011215610245578160040135908111610245573691016024011161011c5754821633036102035750309116036101c057602090517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b5162461bcd60e51b815260206004820181905260248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152606490fd5b62461bcd60e51b815260206004820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b8280fd5b600435906001600160a01b038216820361025f57565b600080fd5b90601f8019910116810190811067ffffffffffffffff82111761028657604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261025f5751801515810361025f5790565b919082018092116102c157565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039060008281541692604092835194636eb1769f60e11b86523060048701528060248701526020968787604481855afa968715610463578597610430575b508551633676633960e21b81526001600160a01b038416600482015260248101829052908882604481865afa918215610426579089959493929187926103e0575b506103a7986103708893610376936102b4565b906102b4565b875163095ea7b360e01b81526001600160a01b03909316600484015260248301529096879384929183906044820190565b0393165af19182156103d65750506103bd575050565b816103d392903d106100e1576100d58183610264565b50565b51903d90823e3d90fd5b8092508691939597989994963d831161041f575b6103fe8183610264565b8101031261041b57519196959488949093909290916103a761035d565b8680fd5b503d6103f4565b87513d88823e3d90fd5b9096508781813d831161045c575b6104488183610264565b810103126104585751953861031c565b8480fd5b503d61043e565b86513d87823e3d90fdfea264697066735822122083a60d37aed0ea99e9373e3994f0f0c698059a7f4b46dd9c43369e9d5add47ab64736f6c63430008120033",
"deployedBytecode": "0x60806040818152600436101561001457600080fd5b600091823560e01c90816323e30c8b1461011f57508063736ddf3b146100f55763b53e48851461004357600080fd5b346100f157806003193601126100f15761005b610249565b9060206024359261006c84826102d7565b60a46001600160a01b0391868381541686519788958694632e7ff4ef60e11b86523060048701521660248501526044840152608060648401528160848401525af19081156100e857506100bd575080f35b6100dd9060203d81116100e1575b6100d58183610264565b81019061029c565b5080f35b503d6100cb565b513d84823e3d90fd5b5080fd5b50346100f15736600319011261011c57610119610110610249565b602435906102d7565b80f35b80fd5b9050823461011c5760a036600319011261011c5761013b610249565b916001600160a01b03916024358381160361011c5760843567ffffffffffffffff8082116102455736602383011215610245578160040135908111610245573691016024011161011c5754821633036102035750309116036101c057602090517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b5162461bcd60e51b815260206004820181905260248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152606490fd5b62461bcd60e51b815260206004820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b8280fd5b600435906001600160a01b038216820361025f57565b600080fd5b90601f8019910116810190811067ffffffffffffffff82111761028657604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261025f5751801515810361025f5790565b919082018092116102c157565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039060008281541692604092835194636eb1769f60e11b86523060048701528060248701526020968787604481855afa968715610463578597610430575b508551633676633960e21b81526001600160a01b038416600482015260248101829052908882604481865afa918215610426579089959493929187926103e0575b506103a7986103708893610376936102b4565b906102b4565b875163095ea7b360e01b81526001600160a01b03909316600484015260248301529096879384929183906044820190565b0393165af19182156103d65750506103bd575050565b816103d392903d106100e1576100d58183610264565b50565b51903d90823e3d90fd5b8092508691939597989994963d831161041f575b6103fe8183610264565b8101031261041b57519196959488949093909290916103a761035d565b8680fd5b503d6103f4565b87513d88823e3d90fd5b9096508781813d831161045c575b6104488183610264565b810103126104585751953861031c565b8480fd5b503d61043e565b86513d87823e3d90fdfea264697066735822122083a60d37aed0ea99e9373e3994f0f0c698059a7f4b46dd9c43369e9d5add47ab64736f6c63430008120033",
"bytecode": "0x60803461007457601f61053338819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516104a390816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c90816323e30c8b1461011f57508063736ddf3b146100f55763b53e48851461004357600080fd5b346100f157806003193601126100f15761005b610249565b9060206024359261006c84826102d7565b60a46001600160a01b0391868381541686519788958694632e7ff4ef60e11b86523060048701521660248501526044840152608060648401528160848401525af19081156100e857506100bd575080f35b6100dd9060203d81116100e1575b6100d58183610264565b81019061029c565b5080f35b503d6100cb565b513d84823e3d90fd5b5080fd5b50346100f15736600319011261011c57610119610110610249565b602435906102d7565b80f35b80fd5b9050823461011c5760a036600319011261011c5761013b610249565b916001600160a01b03916024358381160361011c5760843567ffffffffffffffff8082116102455736602383011215610245578160040135908111610245573691016024011161011c5754821633036102035750309116036101c057602090517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b5162461bcd60e51b815260206004820181905260248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152606490fd5b62461bcd60e51b815260206004820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b8280fd5b600435906001600160a01b038216820361025f57565b600080fd5b90601f8019910116810190811067ffffffffffffffff82111761028657604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261025f5751801515810361025f5790565b919082018092116102c157565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039060008281541692604092835194636eb1769f60e11b86523060048701528060248701526020968787604481855afa968715610463578597610430575b508551633676633960e21b81526001600160a01b038416600482015260248101829052908882604481865afa918215610426579089959493929187926103e0575b506103a7986103708893610376936102b4565b906102b4565b875163095ea7b360e01b81526001600160a01b03909316600484015260248301529096879384929183906044820190565b0393165af19182156103d65750506103bd575050565b816103d392903d106100e1576100d58183610264565b50565b51903d90823e3d90fd5b8092508691939597989994963d831161041f575b6103fe8183610264565b8101031261041b57519196959488949093909290916103a761035d565b8680fd5b503d6103f4565b87513d88823e3d90fd5b9096508781813d831161045c575b6104488183610264565b810103126104585751953861031c565b8480fd5b503d61043e565b86513d87823e3d90fdfea26469706673582212203c27cbfd063f52458d527970d1b4fca5d4c3948e4a87c0f3cb1eb4b85927c31264736f6c63430008120033",
"deployedBytecode": "0x60806040818152600436101561001457600080fd5b600091823560e01c90816323e30c8b1461011f57508063736ddf3b146100f55763b53e48851461004357600080fd5b346100f157806003193601126100f15761005b610249565b9060206024359261006c84826102d7565b60a46001600160a01b0391868381541686519788958694632e7ff4ef60e11b86523060048701521660248501526044840152608060648401528160848401525af19081156100e857506100bd575080f35b6100dd9060203d81116100e1575b6100d58183610264565b81019061029c565b5080f35b503d6100cb565b513d84823e3d90fd5b5080fd5b50346100f15736600319011261011c57610119610110610249565b602435906102d7565b80f35b80fd5b9050823461011c5760a036600319011261011c5761013b610249565b916001600160a01b03916024358381160361011c5760843567ffffffffffffffff8082116102455736602383011215610245578160040135908111610245573691016024011161011c5754821633036102035750309116036101c057602090517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b5162461bcd60e51b815260206004820181905260248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152606490fd5b62461bcd60e51b815260206004820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b8280fd5b600435906001600160a01b038216820361025f57565b600080fd5b90601f8019910116810190811067ffffffffffffffff82111761028657604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261025f5751801515810361025f5790565b919082018092116102c157565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039060008281541692604092835194636eb1769f60e11b86523060048701528060248701526020968787604481855afa968715610463578597610430575b508551633676633960e21b81526001600160a01b038416600482015260248101829052908882604481865afa918215610426579089959493929187926103e0575b506103a7986103708893610376936102b4565b906102b4565b875163095ea7b360e01b81526001600160a01b03909316600484015260248301529096879384929183906044820190565b0393165af19182156103d65750506103bd575050565b816103d392903d106100e1576100d58183610264565b50565b51903d90823e3d90fd5b8092508691939597989994963d831161041f575b6103fe8183610264565b8101031261041b57519196959488949093909290916103a761035d565b8680fd5b503d6103f4565b87513d88823e3d90fd5b9096508781813d831161045c575b6104488183610264565b810103126104585751953861031c565b8480fd5b503d61043e565b86513d87823e3d90fdfea26469706673582212203c27cbfd063f52458d527970d1b4fca5d4c3948e4a87c0f3cb1eb4b85927c31264736f6c63430008120033",
"linkReferences": {},
"deployedLinkReferences": {}
}
4 changes: 2 additions & 2 deletions src/artifacts/tapioca-mocks/FlashMaliciousBorrowerMock.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@
"type": "function"
}
],
"bytecode": "0x60803461007457601f61034a38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516102ba90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004908136101561001657600080fd5b600092833560e01c90816323e30c8b1461012b575063b53e48851461003a57600080fd5b3461012757806003193601126101275761005261025c565b91602073ffffffffffffffffffffffffffffffffffffffff60a481875416958786519788948593632e7ff4ef60e11b855230898601521660248401526024356044840152608060648401528160848401525af1801561011d576100b3578380f35b6020913d8311610115575b601f8301601f191684019167ffffffffffffffff8311858410176101025750526020908201829003126100fe5751801515036100fb573880808380f35b80fd5b5080fd5b634e487b7160e01b865260419052602485fd5b3d92506100be565b82513d86823e3d90fd5b8280fd5b91939050346100fb5760a03660031901126100fb5761014861025c565b9173ffffffffffffffffffffffffffffffffffffffff91602435838116036100fb5760843567ffffffffffffffff8082116101275736602383011215610127578187013590811161012757369101602401116100fb57548216330361021b5750309116036101d957602082517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b6020606492519162461bcd60e51b8352820152602060248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152fd5b62461bcd60e51b8152602084820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361027f57565b600080fdfea2646970667358221220a58ba54424932696342d246a32d41f24cedc4d86f011b82d3024a5db6f216c8964736f6c63430008120033",
"deployedBytecode": "0x608060408181526004908136101561001657600080fd5b600092833560e01c90816323e30c8b1461012b575063b53e48851461003a57600080fd5b3461012757806003193601126101275761005261025c565b91602073ffffffffffffffffffffffffffffffffffffffff60a481875416958786519788948593632e7ff4ef60e11b855230898601521660248401526024356044840152608060648401528160848401525af1801561011d576100b3578380f35b6020913d8311610115575b601f8301601f191684019167ffffffffffffffff8311858410176101025750526020908201829003126100fe5751801515036100fb573880808380f35b80fd5b5080fd5b634e487b7160e01b865260419052602485fd5b3d92506100be565b82513d86823e3d90fd5b8280fd5b91939050346100fb5760a03660031901126100fb5761014861025c565b9173ffffffffffffffffffffffffffffffffffffffff91602435838116036100fb5760843567ffffffffffffffff8082116101275736602383011215610127578187013590811161012757369101602401116100fb57548216330361021b5750309116036101d957602082517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b6020606492519162461bcd60e51b8352820152602060248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152fd5b62461bcd60e51b8152602084820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361027f57565b600080fdfea2646970667358221220a58ba54424932696342d246a32d41f24cedc4d86f011b82d3024a5db6f216c8964736f6c63430008120033",
"bytecode": "0x60803461007457601f61034a38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516102ba90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004908136101561001657600080fd5b600092833560e01c90816323e30c8b1461012b575063b53e48851461003a57600080fd5b3461012757806003193601126101275761005261025c565b91602073ffffffffffffffffffffffffffffffffffffffff60a481875416958786519788948593632e7ff4ef60e11b855230898601521660248401526024356044840152608060648401528160848401525af1801561011d576100b3578380f35b6020913d8311610115575b601f8301601f191684019167ffffffffffffffff8311858410176101025750526020908201829003126100fe5751801515036100fb573880808380f35b80fd5b5080fd5b634e487b7160e01b865260419052602485fd5b3d92506100be565b82513d86823e3d90fd5b8280fd5b91939050346100fb5760a03660031901126100fb5761014861025c565b9173ffffffffffffffffffffffffffffffffffffffff91602435838116036100fb5760843567ffffffffffffffff8082116101275736602383011215610127578187013590811161012757369101602401116100fb57548216330361021b5750309116036101d957602082517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b6020606492519162461bcd60e51b8352820152602060248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152fd5b62461bcd60e51b8152602084820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361027f57565b600080fdfea2646970667358221220ac23354911291ea6f4a8f62945116c4665a0ca53fb3d85ac2a195d38dc77a09364736f6c63430008120033",
"deployedBytecode": "0x608060408181526004908136101561001657600080fd5b600092833560e01c90816323e30c8b1461012b575063b53e48851461003a57600080fd5b3461012757806003193601126101275761005261025c565b91602073ffffffffffffffffffffffffffffffffffffffff60a481875416958786519788948593632e7ff4ef60e11b855230898601521660248401526024356044840152608060648401528160848401525af1801561011d576100b3578380f35b6020913d8311610115575b601f8301601f191684019167ffffffffffffffff8311858410176101025750526020908201829003126100fe5751801515036100fb573880808380f35b80fd5b5080fd5b634e487b7160e01b865260419052602485fd5b3d92506100be565b82513d86823e3d90fd5b8280fd5b91939050346100fb5760a03660031901126100fb5761014861025c565b9173ffffffffffffffffffffffffffffffffffffffff91602435838116036100fb5760843567ffffffffffffffff8082116101275736602383011215610127578187013590811161012757369101602401116100fb57548216330361021b5750309116036101d957602082517f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98152f35b6020606492519162461bcd60e51b8352820152602060248201527f466c617368426f72726f7765723a206e6f742074686520696e69746961746f726044820152fd5b62461bcd60e51b8152602084820152601860248201527f466c617368426f72726f7765723a20756e7472757374656400000000000000006044820152606490fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361027f57565b600080fdfea2646970667358221220ac23354911291ea6f4a8f62945116c4665a0ca53fb3d85ac2a195d38dc77a09364736f6c63430008120033",
"linkReferences": {},
"deployedLinkReferences": {}
}
Loading

0 comments on commit 9d88468

Please sign in to comment.