From b70176397b0504efbbacb4fc3ddc9c48a95b5794 Mon Sep 17 00:00:00 2001 From: Hans Wang Date: Fri, 7 Jun 2024 10:41:17 -0700 Subject: [PATCH] wrap paycall --- src/builder/QuarkBuilder.sol | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/builder/QuarkBuilder.sol b/src/builder/QuarkBuilder.sol index a7731f99..a1705f5a 100644 --- a/src/builder/QuarkBuilder.sol +++ b/src/builder/QuarkBuilder.sol @@ -393,6 +393,19 @@ contract QuarkBuilder { if (assetSymbol == "ETH") { if (payment.isToken) { // wrap around paycall + address paycallAddress = getCodeAddress(codeJar, type(Paycall).creationCode); + operations.push(QuarkOperation({ + nonce: , // TODO: get next nonce + chainId: chainId, + scriptAddress: paycallAddress, + scriptCalldata: abi.encodeWithSelector( + Paycall.run.selector, + scriptAddress, + abi.encodeWithSelector(TransferActions.transferNativeToken.selector, recipient, amount) + ), + scriptSources: scriptSources, + expiry: 99999999999 // TODO: never expire? + })); } else { // Native ETH transfer operations.push(QuarkOperation({ @@ -407,6 +420,19 @@ contract QuarkBuilder { } else { if (payment.isToken) { // wrap around paycall + address paycallAddress = getCodeAddress(codeJar, type(Paycall).creationCode); + operations.push(QuarkOperation({ + nonce: , // TODO: get next nonce + chainId: chainId, + scriptAddress: paycallAddress, + scriptCalldata: abi.encodeWithSelector( + Paycall.run.selector, + scriptAddress, + abi.encodeWithSelector(TransferActions.transferERC20Token.selector, token, recipient, amount) + ), + scriptSources: scriptSources, + expiry: 99999999999 // TODO: never expire? + })); } else { // ERC20 transfer operations.push(QuarkOperation({