UNPKG

@0xfutbol/id

Version:

React component library with shared providers for 0xFutbol ID

52 lines (51 loc) 2.52 kB
'use strict';var index=require('./index-DwkZmKdT.js');require('react'),require('react/jsx-runtime'),require('@0xfutbol/id-sign'),require('react-use'),require('@0xfutbol/constants'),require('thirdweb'),require('@matchain/matchid-sdk-react'),require('@tanstack/react-query'),require('@matchain/matchid-sdk-react/index.css'),require('react-dom');async function sendGaslessTransaction({ account, transaction, serializableTransaction, gasless, }) { // TODO: handle special case for mutlicall transactions! // Steps: // 1. check if the method is `multicall` by comparing the 4bytes data with the `multicall` selector // 2. split the rest of the data into its "parts" // 3. solidityPack the parts with the part data + the `account.address` // see v4: `core/classes/transactions.ts>Transaction>prepareGasless:L551` if (serializableTransaction.value && serializableTransaction.value > 0n) { throw new Error("Gasless transactions cannot have a value"); } // TODO: multiply gas by 2 for some reason(?) - we do in v4, *should* we? let result; // biconomy if (gasless.provider === "biconomy") { const { relayBiconomyTransaction } = await Promise.resolve().then(function(){return require('./biconomy-B8ihXSv-.js')}); result = await relayBiconomyTransaction({ account, transaction, serializableTransaction, gasless, }); } // openzeppelin if (gasless.provider === "openzeppelin") { const { relayOpenZeppelinTransaction } = await Promise.resolve().then(function(){return require('./openzeppelin-B_Yqkc36.js')}); result = await relayOpenZeppelinTransaction({ account, transaction, serializableTransaction, gasless, }); } if (gasless.provider === "engine") { const { relayEngineTransaction } = await Promise.resolve().then(function(){return require('./engine-DSZjB9NO.js')}); result = await relayEngineTransaction({ account, transaction, serializableTransaction, gasless, }); } if (!result) { throw new Error("Unsupported gasless provider"); } index.bk({ address: account.address, transactionHash: result.transactionHash, chainId: transaction.chain.id, }); return result; }exports.sendGaslessTransaction=sendGaslessTransaction;//# sourceMappingURL=send-gasless-transaction-C9eMXr3g.js.map