@lit-protocol/vincent-ability-relay-link 1.0.0
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.
- package/CHANGELOG.md +18 -0
- package/CONTRIBUTING.md +82 -0
- package/README.md +223 -0
- package/dist/CHANGELOG.md +0 -0
- package/dist/CONTRIBUTING.md +82 -0
- package/dist/README.md +223 -0
- package/dist/package.json +37 -0
- package/dist/src/generated/lit-action.js +9 -0
- package/dist/src/generated/vincent-ability-metadata.json +3 -0
- package/dist/src/generated/vincent-bundled-ability.d.ts +1440 -0
- package/dist/src/generated/vincent-bundled-ability.d.ts.map +1 -0
- package/dist/src/generated/vincent-bundled-ability.js +15 -0
- package/dist/src/generated/vincent-bundled-ability.js.map +1 -0
- package/dist/src/generated/vincent-bundled-ability.ts +13 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +29 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/decodeTransaction.d.ts +3 -0
- package/dist/src/lib/decodeTransaction.d.ts.map +1 -0
- package/dist/src/lib/decodeTransaction.js +48 -0
- package/dist/src/lib/decodeTransaction.js.map +1 -0
- package/dist/src/lib/helpers/crossmint.d.ts +37 -0
- package/dist/src/lib/helpers/crossmint.d.ts.map +1 -0
- package/dist/src/lib/helpers/crossmint.js +50 -0
- package/dist/src/lib/helpers/crossmint.js.map +1 -0
- package/dist/src/lib/helpers/relay-link.d.ts +71 -0
- package/dist/src/lib/helpers/relay-link.d.ts.map +1 -0
- package/dist/src/lib/helpers/relay-link.js +157 -0
- package/dist/src/lib/helpers/relay-link.js.map +1 -0
- package/dist/src/lib/helpers/safe.d.ts +52 -0
- package/dist/src/lib/helpers/safe.d.ts.map +1 -0
- package/dist/src/lib/helpers/safe.js +98 -0
- package/dist/src/lib/helpers/safe.js.map +1 -0
- package/dist/src/lib/helpers/transactionKind.d.ts +5 -0
- package/dist/src/lib/helpers/transactionKind.d.ts.map +1 -0
- package/dist/src/lib/helpers/transactionKind.js +9 -0
- package/dist/src/lib/helpers/transactionKind.js.map +1 -0
- package/dist/src/lib/helpers/zerodev.d.ts +58 -0
- package/dist/src/lib/helpers/zerodev.d.ts.map +1 -0
- package/dist/src/lib/helpers/zerodev.js +127 -0
- package/dist/src/lib/helpers/zerodev.js.map +1 -0
- package/dist/src/lib/lit-action.d.ts +2 -0
- package/dist/src/lib/lit-action.d.ts.map +1 -0
- package/dist/src/lib/lit-action.js +15 -0
- package/dist/src/lib/lit-action.js.map +1 -0
- package/dist/src/lib/validateSimulation.d.ts +3 -0
- package/dist/src/lib/validateSimulation.d.ts.map +1 -0
- package/dist/src/lib/validateSimulation.js +116 -0
- package/dist/src/lib/validateSimulation.js.map +1 -0
- package/dist/src/lib/validateTransaction.d.ts +3 -0
- package/dist/src/lib/validateTransaction.d.ts.map +1 -0
- package/dist/src/lib/validateTransaction.js +44 -0
- package/dist/src/lib/validateTransaction.js.map +1 -0
- package/dist/src/lib/vincent-ability.d.ts +1437 -0
- package/dist/src/lib/vincent-ability.d.ts.map +1 -0
- package/dist/src/lib/vincent-ability.js +15 -0
- package/dist/src/lib/vincent-ability.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vincent-bundled-ability.d.ts","sourceRoot":"","sources":["../../../src/generated/vincent-bundled-ability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DO NOT EDIT THIS FILE. IT IS GENERATED ON BUILD.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.bundledVincentAbility = void 0;
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
const vincent_ability_sdk_1 = require("@lit-protocol/vincent-ability-sdk");
|
|
9
|
+
const vincent_ability_1 = require("../lib/vincent-ability");
|
|
10
|
+
const vincent_ability_metadata_json_1 = tslib_1.__importDefault(require("./vincent-ability-metadata.json"));
|
|
11
|
+
if (!vincent_ability_metadata_json_1.default.ipfsCid) {
|
|
12
|
+
throw new Error('ipfsCid is not defined in metadata JSON file');
|
|
13
|
+
}
|
|
14
|
+
exports.bundledVincentAbility = (0, vincent_ability_sdk_1.asBundledVincentAbility)(vincent_ability_1.vincentAbility, vincent_ability_metadata_json_1.default.ipfsCid);
|
|
15
|
+
//# sourceMappingURL=vincent-bundled-ability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vincent-bundled-ability.js","sourceRoot":"","sources":["../../../src/generated/vincent-bundled-ability.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;AAEH,2EAA4E;AAC5E,4DAAwD;AACxD,4GAAuD;AAEvD,IAAG,CAAC,uCAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC;AAEY,QAAA,qBAAqB,GAAG,IAAA,6CAAuB,EAAC,gCAAc,EAAE,uCAAQ,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DO NOT EDIT THIS FILE. IT IS GENERATED ON BUILD.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { asBundledVincentAbility } from '@lit-protocol/vincent-ability-sdk';
|
|
6
|
+
import { vincentAbility } from '../lib/vincent-ability';
|
|
7
|
+
import metadata from './vincent-ability-metadata.json';
|
|
8
|
+
|
|
9
|
+
if(!metadata.ipfsCid) {
|
|
10
|
+
throw new Error('ipfsCid is not defined in metadata JSON file');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const bundledVincentAbility = asBundledVincentAbility(vincentAbility, metadata.ipfsCid);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from '@lit-protocol/vincent-ability-sdk/gatedSigner';
|
|
2
|
+
export { bundledVincentAbility } from './generated/vincent-bundled-ability';
|
|
3
|
+
export { fetchRelayLinkAddresses, getRelayClient, getRelayLinkQuote, isRelayLinkAddress, isTestnet, type RelayLinkAppFee, type RelayLinkQuoteParams, type RelayLinkQuoteResponse, type RelayLinkTransactionData, } from './lib/helpers/relay-link';
|
|
4
|
+
export { relayTransactionToUserOp, transactionsToZerodevUserOp, submitSignedUserOp, type ZerodevTransaction, type RelayTransactionToUserOpParams, type TransactionsToZerodevUserOpParams, type SubmitSignedUserOpParams, } from './lib/helpers/zerodev';
|
|
5
|
+
export { transactionsToCrossmintUserOp, sendPermittedCrossmintUserOperation, type CrossmintTransaction, type TransactionsToCrossmintUserOpParams, type SendPermittedCrossmintUserOperationParams, } from './lib/helpers/crossmint';
|
|
6
|
+
export { transactionsToSafeUserOp, sendPermittedSafeUserOperation, type SafeTransaction, type TransactionsToSafeUserOpParams, type SendPermittedSafeUserOperationParams, } from './lib/helpers/safe';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,KAAK,oBAAoB,EACzB,KAAK,mCAAmC,EACxC,KAAK,yCAAyC,GAC/C,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,eAAe,EACpB,KAAK,8BAA8B,EACnC,KAAK,oCAAoC,GAC1C,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendPermittedSafeUserOperation = exports.transactionsToSafeUserOp = exports.sendPermittedCrossmintUserOperation = exports.transactionsToCrossmintUserOp = exports.submitSignedUserOp = exports.transactionsToZerodevUserOp = exports.relayTransactionToUserOp = exports.isTestnet = exports.isRelayLinkAddress = exports.getRelayLinkQuote = exports.getRelayClient = exports.fetchRelayLinkAddresses = exports.bundledVincentAbility = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Direct re-export so consumers can have the same utilities this ability uses
|
|
6
|
+
// even if another ability uses a different version of the SDK
|
|
7
|
+
tslib_1.__exportStar(require("@lit-protocol/vincent-ability-sdk/gatedSigner"), exports);
|
|
8
|
+
var vincent_bundled_ability_1 = require("./generated/vincent-bundled-ability");
|
|
9
|
+
Object.defineProperty(exports, "bundledVincentAbility", { enumerable: true, get: function () { return vincent_bundled_ability_1.bundledVincentAbility; } });
|
|
10
|
+
var relay_link_1 = require("./lib/helpers/relay-link");
|
|
11
|
+
Object.defineProperty(exports, "fetchRelayLinkAddresses", { enumerable: true, get: function () { return relay_link_1.fetchRelayLinkAddresses; } });
|
|
12
|
+
Object.defineProperty(exports, "getRelayClient", { enumerable: true, get: function () { return relay_link_1.getRelayClient; } });
|
|
13
|
+
Object.defineProperty(exports, "getRelayLinkQuote", { enumerable: true, get: function () { return relay_link_1.getRelayLinkQuote; } });
|
|
14
|
+
Object.defineProperty(exports, "isRelayLinkAddress", { enumerable: true, get: function () { return relay_link_1.isRelayLinkAddress; } });
|
|
15
|
+
Object.defineProperty(exports, "isTestnet", { enumerable: true, get: function () { return relay_link_1.isTestnet; } });
|
|
16
|
+
// ZeroDev smart account helpers for preparing and submitting UserOps
|
|
17
|
+
var zerodev_1 = require("./lib/helpers/zerodev");
|
|
18
|
+
Object.defineProperty(exports, "relayTransactionToUserOp", { enumerable: true, get: function () { return zerodev_1.relayTransactionToUserOp; } });
|
|
19
|
+
Object.defineProperty(exports, "transactionsToZerodevUserOp", { enumerable: true, get: function () { return zerodev_1.transactionsToZerodevUserOp; } });
|
|
20
|
+
Object.defineProperty(exports, "submitSignedUserOp", { enumerable: true, get: function () { return zerodev_1.submitSignedUserOp; } });
|
|
21
|
+
// Crossmint smart account helpers
|
|
22
|
+
var crossmint_1 = require("./lib/helpers/crossmint");
|
|
23
|
+
Object.defineProperty(exports, "transactionsToCrossmintUserOp", { enumerable: true, get: function () { return crossmint_1.transactionsToCrossmintUserOp; } });
|
|
24
|
+
Object.defineProperty(exports, "sendPermittedCrossmintUserOperation", { enumerable: true, get: function () { return crossmint_1.sendPermittedCrossmintUserOperation; } });
|
|
25
|
+
// Safe smart account helpers
|
|
26
|
+
var safe_1 = require("./lib/helpers/safe");
|
|
27
|
+
Object.defineProperty(exports, "transactionsToSafeUserOp", { enumerable: true, get: function () { return safe_1.transactionsToSafeUserOp; } });
|
|
28
|
+
Object.defineProperty(exports, "sendPermittedSafeUserOperation", { enumerable: true, get: function () { return safe_1.sendPermittedSafeUserOperation; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,8EAA8E;AAC9E,8DAA8D;AAC9D,wFAA8D;AAE9D,+EAA4E;AAAnE,gIAAA,qBAAqB,OAAA;AAE9B,uDAUkC;AAThC,qHAAA,uBAAuB,OAAA;AACvB,4GAAA,cAAc,OAAA;AACd,+GAAA,iBAAiB,OAAA;AACjB,gHAAA,kBAAkB,OAAA;AAClB,uGAAA,SAAS,OAAA;AAOX,qEAAqE;AACrE,iDAQ+B;AAP7B,mHAAA,wBAAwB,OAAA;AACxB,sHAAA,2BAA2B,OAAA;AAC3B,6GAAA,kBAAkB,OAAA;AAOpB,kCAAkC;AAClC,qDAMiC;AAL/B,0HAAA,6BAA6B,OAAA;AAC7B,gIAAA,mCAAmC,OAAA;AAMrC,6BAA6B;AAC7B,2CAM4B;AAL1B,gHAAA,wBAAwB,OAAA;AACxB,sHAAA,8BAA8B,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodeTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/decodeTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EAExB,MAAM,+CAA+C,CAAC;AAiCvD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,uBAAuB,KAAG,kBAwBnE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeTransaction = void 0;
|
|
4
|
+
const vincent_ability_sdk_1 = require("@lit-protocol/vincent-ability-sdk");
|
|
5
|
+
const viem_1 = require("viem");
|
|
6
|
+
const transactionKind_1 = require("./helpers/transactionKind");
|
|
7
|
+
const decodeTransactionKind = (params) => {
|
|
8
|
+
try {
|
|
9
|
+
const { abi, kind, transaction } = params;
|
|
10
|
+
const df = (0, viem_1.decodeFunctionData)({ abi, data: transaction.data });
|
|
11
|
+
console.log(`Decoded ${kind} transaction`);
|
|
12
|
+
return {
|
|
13
|
+
args: df.args,
|
|
14
|
+
kind,
|
|
15
|
+
fn: df.functionName,
|
|
16
|
+
to: transaction.to,
|
|
17
|
+
value: transaction.value,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
// Could not decode transaction. Likely not the correct ABI. Continue...
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const decodeTransaction = (params) => {
|
|
26
|
+
const { transaction } = params;
|
|
27
|
+
// Try to decode as ERC20 transaction (e.g., approval before relay)
|
|
28
|
+
const erc20Transaction = decodeTransactionKind({
|
|
29
|
+
transaction,
|
|
30
|
+
abi: vincent_ability_sdk_1.ERC20_ABI,
|
|
31
|
+
kind: transactionKind_1.TransactionKind.ERC20,
|
|
32
|
+
});
|
|
33
|
+
if (erc20Transaction) {
|
|
34
|
+
return erc20Transaction;
|
|
35
|
+
}
|
|
36
|
+
// If not ERC20, assume it's a Relay.link transaction
|
|
37
|
+
// The target address will be validated in validateTransaction (which has chainId)
|
|
38
|
+
console.log('Decoded RELAY_LINK transaction');
|
|
39
|
+
return {
|
|
40
|
+
args: [],
|
|
41
|
+
kind: transactionKind_1.TransactionKind.RELAY_LINK,
|
|
42
|
+
fn: 'execute',
|
|
43
|
+
to: transaction.to,
|
|
44
|
+
value: transaction.value,
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
exports.decodeTransaction = decodeTransaction;
|
|
48
|
+
//# sourceMappingURL=decodeTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodeTransaction.js","sourceRoot":"","sources":["../../../src/lib/decodeTransaction.ts"],"names":[],"mappings":";;;AAKA,2EAA8D;AAG9D,+BAA0C;AAC1C,+DAA4D;AAQ5D,MAAM,qBAAqB,GAAG,CAC5B,MAAmC,EACH,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAA,yBAAkB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,cAAc,CAAC,CAAC;QAC3C,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,IAAI;YACJ,EAAE,EAAE,EAAE,CAAC,YAAY;YACnB,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wEAAwE;QACxE,OAAO;IACT,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAsB,EAAE;IACvF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE/B,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;QAC7C,WAAW;QACX,GAAG,EAAE,+BAAS;QACd,IAAI,EAAE,iCAAe,CAAC,KAAK;KAC5B,CAAC,CAAC;IAEH,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,qDAAqD;IACrD,kFAAkF;IAClF,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,iCAAe,CAAC,UAAU;QAChC,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,KAAK,EAAE,WAAW,CAAC,KAAK;KACzB,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,iBAAiB,qBAwB5B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { WalletsApiClient } from '@crossmint/wallets-sdk';
|
|
2
|
+
import type { Address, Chain, Hex } from 'viem';
|
|
3
|
+
/**
|
|
4
|
+
* Transaction type for Crossmint UserOps
|
|
5
|
+
*/
|
|
6
|
+
export interface CrossmintTransaction {
|
|
7
|
+
to: Address;
|
|
8
|
+
data: Hex;
|
|
9
|
+
value?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface TransactionsToCrossmintUserOpParams {
|
|
12
|
+
crossmintClient: WalletsApiClient;
|
|
13
|
+
crossmintAccountAddress: Address;
|
|
14
|
+
permittedAddress: Address;
|
|
15
|
+
transactions: CrossmintTransaction[];
|
|
16
|
+
chain: Chain;
|
|
17
|
+
}
|
|
18
|
+
export interface SendPermittedCrossmintUserOperationParams {
|
|
19
|
+
crossmintClient: WalletsApiClient;
|
|
20
|
+
accountAddress: Address;
|
|
21
|
+
signature: Hex;
|
|
22
|
+
signerAddress: Address;
|
|
23
|
+
userOp: {
|
|
24
|
+
id: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a Crossmint UserOp from transactions.
|
|
29
|
+
* Returns the UserOp object containing the id and onChain.userOperation for signing.
|
|
30
|
+
*/
|
|
31
|
+
export declare function transactionsToCrossmintUserOp({ crossmintClient, crossmintAccountAddress, permittedAddress, transactions, chain, }: TransactionsToCrossmintUserOpParams): Promise<import("node_modules/@crossmint/wallets-sdk/dist/api/gen/types.gen.cjs").WalletsTransactionV2025ResponseDto>;
|
|
32
|
+
/**
|
|
33
|
+
* Send a signed Crossmint UserOp to the bundler.
|
|
34
|
+
* Returns the UserOp hash.
|
|
35
|
+
*/
|
|
36
|
+
export declare function sendPermittedCrossmintUserOperation({ crossmintClient, accountAddress, signature, signerAddress, userOp, }: SendPermittedCrossmintUserOperationParams): Promise<Hex>;
|
|
37
|
+
//# sourceMappingURL=crossmint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossmint.d.ts","sourceRoot":"","sources":["../../../../src/lib/helpers/crossmint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mCAAmC;IAClD,eAAe,EAAE,gBAAgB,CAAC;IAClC,uBAAuB,EAAE,OAAO,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,yCAAyC;IACxD,eAAe,EAAE,gBAAgB,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CAAC,EAClD,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,KAAK,GACN,EAAE,mCAAmC,wHAqBrC;AAED;;;GAGG;AACH,wBAAsB,mCAAmC,CAAC,EACxD,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,MAAM,GACP,EAAE,yCAAyC,GAAG,OAAO,CAAC,GAAG,CAAC,CA2B1D"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transactionsToCrossmintUserOp = transactionsToCrossmintUserOp;
|
|
4
|
+
exports.sendPermittedCrossmintUserOperation = sendPermittedCrossmintUserOperation;
|
|
5
|
+
/**
|
|
6
|
+
* Create a Crossmint UserOp from transactions.
|
|
7
|
+
* Returns the UserOp object containing the id and onChain.userOperation for signing.
|
|
8
|
+
*/
|
|
9
|
+
async function transactionsToCrossmintUserOp({ crossmintClient, crossmintAccountAddress, permittedAddress, transactions, chain, }) {
|
|
10
|
+
const crossmintUserOp = await crossmintClient.createTransaction(crossmintAccountAddress, {
|
|
11
|
+
params: {
|
|
12
|
+
calls: transactions.map((t) => ({
|
|
13
|
+
data: t.data,
|
|
14
|
+
to: t.to,
|
|
15
|
+
value: t.value || '0',
|
|
16
|
+
})),
|
|
17
|
+
// @ts-expect-error - Crossmint expects specific chain literal, viem Chain.name is generic string
|
|
18
|
+
chain: chain.name.toLowerCase(),
|
|
19
|
+
signer: permittedAddress,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
if ('error' in crossmintUserOp) {
|
|
23
|
+
throw new Error(`Could not create crossmint user operation. Error: ${JSON.stringify(crossmintUserOp.error)}`);
|
|
24
|
+
}
|
|
25
|
+
return crossmintUserOp;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Send a signed Crossmint UserOp to the bundler.
|
|
29
|
+
* Returns the UserOp hash.
|
|
30
|
+
*/
|
|
31
|
+
async function sendPermittedCrossmintUserOperation({ crossmintClient, accountAddress, signature, signerAddress, userOp, }) {
|
|
32
|
+
const userOpApproval = await crossmintClient.approveTransaction(accountAddress, userOp.id, {
|
|
33
|
+
approvals: [
|
|
34
|
+
{
|
|
35
|
+
signer: `external-wallet:${signerAddress}`,
|
|
36
|
+
signature: signature,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
});
|
|
40
|
+
if ('error' in userOpApproval) {
|
|
41
|
+
throw new Error(`Could not sign crossmint user operation. Error: ${JSON.stringify(userOpApproval.error)}`);
|
|
42
|
+
}
|
|
43
|
+
// Type guard for userOperationHash
|
|
44
|
+
if (!('userOperationHash' in userOpApproval.onChain)) {
|
|
45
|
+
throw new Error('Unexpected response format: missing userOperationHash');
|
|
46
|
+
}
|
|
47
|
+
console.log('[sendPermittedCrossmintUserOperation] UserOp hash:', userOpApproval.onChain.userOperationHash);
|
|
48
|
+
return userOpApproval.onChain.userOperationHash;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=crossmint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossmint.js","sourceRoot":"","sources":["../../../../src/lib/helpers/crossmint.ts"],"names":[],"mappings":";;AAgCA,sEA2BC;AAMD,kFAiCC;AAtED;;;GAGG;AACI,KAAK,UAAU,6BAA6B,CAAC,EAClD,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,KAAK,GAC+B;IACpC,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,iBAAiB,CAAC,uBAAuB,EAAE;QACvF,MAAM,EAAE;YACN,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG;aACtB,CAAC,CAAC;YACH,iGAAiG;YACjG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;YAC/B,MAAM,EAAE,gBAAgB;SACzB;KACF,CAAC,CAAC;IAEH,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,mCAAmC,CAAC,EACxD,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,MAAM,GACoC;IAC1C,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE;QACzF,SAAS,EAAE;YACT;gBACE,MAAM,EAAE,mBAAmB,aAAa,EAAE;gBAC1C,SAAS,EAAE,SAAS;aACrB;SACF;KACF,CAAC,CAAC;IAEH,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,mDAAmD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,CAAC,mBAAmB,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,GAAG,CACT,oDAAoD,EACpD,cAAc,CAAC,OAAO,CAAC,iBAAiB,CACzC,CAAC;IAEF,OAAO,cAAc,CAAC,OAAO,CAAC,iBAAwB,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
import { type Execute } from '@relayprotocol/relay-sdk';
|
|
3
|
+
/**
|
|
4
|
+
* Check if a chain ID is a testnet
|
|
5
|
+
*/
|
|
6
|
+
export declare function isTestnet(chainId: number): Promise<boolean>;
|
|
7
|
+
/**
|
|
8
|
+
* Get the appropriate Relay SDK client based on chain ID
|
|
9
|
+
*/
|
|
10
|
+
export declare function getRelayClient(chainId: number): Promise<import("@relayprotocol/relay-sdk", { with: { "resolution-mode": "import" } }).RelayClient>;
|
|
11
|
+
/**
|
|
12
|
+
* App fee configuration for Relay.link
|
|
13
|
+
* @see https://docs.relay.link/features/app-fees
|
|
14
|
+
*/
|
|
15
|
+
export interface RelayLinkAppFee {
|
|
16
|
+
/** Address that will receive the app fee */
|
|
17
|
+
recipient: string;
|
|
18
|
+
/** App fee in basis points (e.g., "100" = 1%) */
|
|
19
|
+
fee: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Quote request parameters (matching SDK's getQuote parameters)
|
|
23
|
+
*/
|
|
24
|
+
export interface RelayLinkQuoteParams {
|
|
25
|
+
user: string;
|
|
26
|
+
originChainId: number;
|
|
27
|
+
destinationChainId: number;
|
|
28
|
+
originCurrency: string;
|
|
29
|
+
destinationCurrency: string;
|
|
30
|
+
amount: string;
|
|
31
|
+
tradeType?: 'EXACT_INPUT' | 'EXACT_OUTPUT' | 'EXPECTED_OUTPUT';
|
|
32
|
+
recipient?: string;
|
|
33
|
+
slippageTolerance?: number;
|
|
34
|
+
topupGas?: boolean;
|
|
35
|
+
useReceiver?: boolean;
|
|
36
|
+
/** App fees to be charged for execution */
|
|
37
|
+
appFees?: RelayLinkAppFee[];
|
|
38
|
+
subsidizeFees?: boolean;
|
|
39
|
+
protocolVersion?: 'v1' | 'v2' | 'preferV2';
|
|
40
|
+
userOperationGasOverhead?: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Quote response type from SDK
|
|
44
|
+
*/
|
|
45
|
+
export type RelayLinkQuoteResponse = Execute;
|
|
46
|
+
/**
|
|
47
|
+
* Transaction data from quote response steps
|
|
48
|
+
*/
|
|
49
|
+
export interface RelayLinkTransactionData {
|
|
50
|
+
from: string;
|
|
51
|
+
to: string;
|
|
52
|
+
data: string;
|
|
53
|
+
value: string;
|
|
54
|
+
chainId: number;
|
|
55
|
+
maxFeePerGas?: string;
|
|
56
|
+
maxPriorityFeePerGas?: string;
|
|
57
|
+
gas?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get a quote from Relay.link using the SDK
|
|
61
|
+
*/
|
|
62
|
+
export declare function getRelayLinkQuote(params: RelayLinkQuoteParams): Promise<RelayLinkQuoteResponse>;
|
|
63
|
+
/**
|
|
64
|
+
* Fetch Relay.link contract addresses for a specific chain using the SDK
|
|
65
|
+
*/
|
|
66
|
+
export declare function fetchRelayLinkAddresses(chainId: number): Promise<Address[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Check if an address is a Relay.link contract (async - fetches from API)
|
|
69
|
+
*/
|
|
70
|
+
export declare function isRelayLinkAddress(address: Address, chainId: number): Promise<boolean>;
|
|
71
|
+
//# sourceMappingURL=relay-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-link.d.ts","sourceRoot":"","sources":["../../../../src/lib/helpers/relay-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,MAAM,CAAC;AAC3C,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,0BAA0B,CAAC;AAkElC;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,sGAEnD;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,iBAAiB,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;IAC3C,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAkBjC;AAiCD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA+CjF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5F"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTestnet = isTestnet;
|
|
4
|
+
exports.getRelayClient = getRelayClient;
|
|
5
|
+
exports.getRelayLinkQuote = getRelayLinkQuote;
|
|
6
|
+
exports.fetchRelayLinkAddresses = fetchRelayLinkAddresses;
|
|
7
|
+
exports.isRelayLinkAddress = isRelayLinkAddress;
|
|
8
|
+
const viem_1 = require("viem");
|
|
9
|
+
const relay_sdk_1 = require("@relayprotocol/relay-sdk");
|
|
10
|
+
/**
|
|
11
|
+
* Relay SDK client instance (lazy initialized)
|
|
12
|
+
*/
|
|
13
|
+
let mainnetClient = null;
|
|
14
|
+
let testnetClient = null;
|
|
15
|
+
/**
|
|
16
|
+
* Get or create the Relay SDK client for mainnet
|
|
17
|
+
*/
|
|
18
|
+
function getMainnetClient() {
|
|
19
|
+
if (!mainnetClient) {
|
|
20
|
+
mainnetClient = (0, relay_sdk_1.createClient)({
|
|
21
|
+
baseApiUrl: relay_sdk_1.MAINNET_RELAY_API,
|
|
22
|
+
source: 'vincent',
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return mainnetClient;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get or create the Relay SDK client for testnet
|
|
29
|
+
*/
|
|
30
|
+
function getTestnetClient() {
|
|
31
|
+
if (!testnetClient) {
|
|
32
|
+
testnetClient = (0, relay_sdk_1.createClient)({
|
|
33
|
+
baseApiUrl: relay_sdk_1.TESTNET_RELAY_API,
|
|
34
|
+
source: 'vincent',
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return testnetClient;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Fallback testnet chain IDs in case the API is unavailable
|
|
41
|
+
* Source: https://api.testnets.relay.link/chains
|
|
42
|
+
*/
|
|
43
|
+
const FALLBACK_TESTNETS = new Set([
|
|
44
|
+
1337, // Hyperliquid Testnet
|
|
45
|
+
84532, // Base Sepolia
|
|
46
|
+
11155111, // Sepolia
|
|
47
|
+
]);
|
|
48
|
+
/**
|
|
49
|
+
* Cache for testnet chain IDs (fetched dynamically from Relay API)
|
|
50
|
+
*/
|
|
51
|
+
let testnetChainIds = null;
|
|
52
|
+
/**
|
|
53
|
+
* Fetch and cache testnet chain IDs from the Relay API
|
|
54
|
+
* Falls back to hardcoded list if API request fails
|
|
55
|
+
*/
|
|
56
|
+
async function getTestnetChainIds() {
|
|
57
|
+
if (testnetChainIds === null) {
|
|
58
|
+
try {
|
|
59
|
+
const chains = await (0, relay_sdk_1.fetchChainConfigs)(relay_sdk_1.TESTNET_RELAY_API);
|
|
60
|
+
testnetChainIds = new Set(chains.map((c) => c.id));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
console.warn('[relay-link] Failed to fetch testnet chains, using fallback list');
|
|
64
|
+
testnetChainIds = FALLBACK_TESTNETS;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return testnetChainIds;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if a chain ID is a testnet
|
|
71
|
+
*/
|
|
72
|
+
async function isTestnet(chainId) {
|
|
73
|
+
const testnets = await getTestnetChainIds();
|
|
74
|
+
return testnets.has(chainId);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get the appropriate Relay SDK client based on chain ID
|
|
78
|
+
*/
|
|
79
|
+
async function getRelayClient(chainId) {
|
|
80
|
+
return (await isTestnet(chainId)) ? getTestnetClient() : getMainnetClient();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get a quote from Relay.link using the SDK
|
|
84
|
+
*/
|
|
85
|
+
async function getRelayLinkQuote(params) {
|
|
86
|
+
const client = await getRelayClient(params.originChainId);
|
|
87
|
+
const quote = await client.actions.getQuote({
|
|
88
|
+
chainId: params.originChainId,
|
|
89
|
+
toChainId: params.destinationChainId,
|
|
90
|
+
currency: params.originCurrency,
|
|
91
|
+
toCurrency: params.destinationCurrency,
|
|
92
|
+
amount: params.amount,
|
|
93
|
+
tradeType: params.tradeType || 'EXACT_INPUT',
|
|
94
|
+
recipient: params.recipient || params.user, // Default to user if recipient not specified
|
|
95
|
+
user: params.user,
|
|
96
|
+
options: {
|
|
97
|
+
...(params.appFees && { appFees: params.appFees }),
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
return quote;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Fetch Relay.link contract addresses for a specific chain using the SDK
|
|
104
|
+
*/
|
|
105
|
+
async function fetchRelayLinkAddresses(chainId) {
|
|
106
|
+
const apiUrl = (await isTestnet(chainId)) ? relay_sdk_1.TESTNET_RELAY_API : relay_sdk_1.MAINNET_RELAY_API;
|
|
107
|
+
// fetchChainConfigs returns RelayChain[] but the actual API response includes contracts
|
|
108
|
+
const chains = (await (0, relay_sdk_1.fetchChainConfigs)(apiUrl));
|
|
109
|
+
const chainInfo = chains.find((c) => c.id === chainId);
|
|
110
|
+
if (!chainInfo) {
|
|
111
|
+
throw new Error(`Chain ${chainId} not found in Relay API response`);
|
|
112
|
+
}
|
|
113
|
+
// Collect all relevant contract addresses
|
|
114
|
+
const addresses = [];
|
|
115
|
+
const contracts = chainInfo.contracts;
|
|
116
|
+
const protocol = chainInfo.protocol;
|
|
117
|
+
if (contracts) {
|
|
118
|
+
// Top-level contracts
|
|
119
|
+
if (contracts.relayReceiver) {
|
|
120
|
+
addresses.push((0, viem_1.getAddress)(contracts.relayReceiver));
|
|
121
|
+
}
|
|
122
|
+
if (contracts.erc20Router) {
|
|
123
|
+
addresses.push((0, viem_1.getAddress)(contracts.erc20Router));
|
|
124
|
+
}
|
|
125
|
+
if (contracts.approvalProxy) {
|
|
126
|
+
addresses.push((0, viem_1.getAddress)(contracts.approvalProxy));
|
|
127
|
+
}
|
|
128
|
+
// V3 contracts
|
|
129
|
+
if (contracts.v3?.erc20Router) {
|
|
130
|
+
addresses.push((0, viem_1.getAddress)(contracts.v3.erc20Router));
|
|
131
|
+
}
|
|
132
|
+
if (contracts.v3?.approvalProxy) {
|
|
133
|
+
addresses.push((0, viem_1.getAddress)(contracts.v3.approvalProxy));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// V2 protocol depository
|
|
137
|
+
if (protocol?.v2?.depository) {
|
|
138
|
+
addresses.push((0, viem_1.getAddress)(protocol.v2.depository));
|
|
139
|
+
}
|
|
140
|
+
if (addresses.length === 0) {
|
|
141
|
+
throw new Error(`No Relay contract addresses found for chain ${chainId}`);
|
|
142
|
+
}
|
|
143
|
+
return addresses;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Check if an address is a Relay.link contract (async - fetches from API)
|
|
147
|
+
*/
|
|
148
|
+
async function isRelayLinkAddress(address, chainId) {
|
|
149
|
+
try {
|
|
150
|
+
const relayAddresses = await fetchRelayLinkAddresses(chainId);
|
|
151
|
+
return relayAddresses.some((relayAddr) => address.toLowerCase() === relayAddr.toLowerCase());
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=relay-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-link.js","sourceRoot":"","sources":["../../../../src/lib/helpers/relay-link.ts"],"names":[],"mappings":";;AA4EA,8BAGC;AAKD,wCAEC;AAyDD,8CAoBC;AAoCD,0DA+CC;AAKD,gDAOC;AAlQD,+BAA2C;AAC3C,wDAMkC;AAElC;;GAEG;AACH,IAAI,aAAa,GAA2C,IAAI,CAAC;AACjE,IAAI,aAAa,GAA2C,IAAI,CAAC;AAEjE;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAA,wBAAY,EAAC;YAC3B,UAAU,EAAE,6BAAiB;YAC7B,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAA,wBAAY,EAAC;YAC3B,UAAU,EAAE,6BAAiB;YAC7B,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,IAAI,eAAe,GAAuB,IAAI,CAAC;AAE/C;;;GAGG;AACH,KAAK,UAAU,kBAAkB;IAC/B,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAiB,EAAC,6BAAiB,CAAC,CAAC;YAC1D,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YACjF,eAAe,GAAG,iBAAiB,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,OAAO,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC9E,CAAC;AAsDD;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1C,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,SAAS,EAAE,MAAM,CAAC,kBAAkB;QACpC,QAAQ,EAAE,MAAM,CAAC,cAAc;QAC/B,UAAU,EAAE,MAAM,CAAC,mBAAmB;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,aAAa;QAC5C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,6CAA6C;QACzF,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE;YACP,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;SACnD;KACF,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAiCD;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAAC,OAAe;IAC3D,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,6BAAiB,CAAC,CAAC,CAAC,6BAAiB,CAAC;IAElF,wFAAwF;IACxF,MAAM,MAAM,GAAG,CAAC,MAAM,IAAA,6BAAiB,EAAC,MAAM,CAAC,CAAyC,CAAC;IACzF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IAEvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,kCAAkC,CAAC,CAAC;IACtE,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAc,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAEpC,IAAI,SAAS,EAAE,CAAC;QACd,sBAAsB;QACtB,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,eAAe;QACf,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAAgB,EAAE,OAAe;IACxE,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC9D,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Address, Chain, Hex } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Transaction type for Safe UserOps
|
|
4
|
+
*/
|
|
5
|
+
export interface SafeTransaction {
|
|
6
|
+
to: Address;
|
|
7
|
+
data: Hex;
|
|
8
|
+
value?: bigint;
|
|
9
|
+
}
|
|
10
|
+
export interface TransactionsToSafeUserOpParams {
|
|
11
|
+
safeAddress: Address;
|
|
12
|
+
permittedAddress: Address;
|
|
13
|
+
transactions: SafeTransaction[];
|
|
14
|
+
chain: Chain;
|
|
15
|
+
safeRpcUrl: string;
|
|
16
|
+
pimlicoRpcUrl: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SendPermittedSafeUserOperationParams {
|
|
19
|
+
signedUserOp: Record<string, unknown>;
|
|
20
|
+
chain: Chain;
|
|
21
|
+
pimlicoRpcUrl: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a Safe UserOp from transactions.
|
|
25
|
+
* Returns the unsigned UserOp that needs to be signed by the Vincent ability.
|
|
26
|
+
*/
|
|
27
|
+
export declare function transactionsToSafeUserOp({ safeAddress, permittedAddress, transactions, chain, safeRpcUrl, pimlicoRpcUrl, }: TransactionsToSafeUserOpParams): Promise<{
|
|
28
|
+
readonly account: import("permissionless/accounts", { with: { "resolution-mode": "import" } }).ToSafeSmartAccountReturnType<"0.7">;
|
|
29
|
+
callData: Hex;
|
|
30
|
+
paymasterAndData: undefined;
|
|
31
|
+
sender: import("viem/account-abstraction").UserOperation["sender"];
|
|
32
|
+
authorization: import("viem/account-abstraction").UserOperation["authorization"];
|
|
33
|
+
factory: import("viem/account-abstraction").UserOperation["factory"];
|
|
34
|
+
factoryData: import("viem/account-abstraction").UserOperation["factoryData"];
|
|
35
|
+
nonce: import("viem/account-abstraction").UserOperation["nonce"];
|
|
36
|
+
maxFeePerGas: import("viem/account-abstraction").UserOperation["maxFeePerGas"];
|
|
37
|
+
maxPriorityFeePerGas: import("viem/account-abstraction").UserOperation["maxPriorityFeePerGas"];
|
|
38
|
+
callGasLimit: import("viem/account-abstraction").UserOperation["callGasLimit"];
|
|
39
|
+
preVerificationGas: import("viem/account-abstraction").UserOperation["preVerificationGas"];
|
|
40
|
+
verificationGasLimit: import("viem/account-abstraction").UserOperation["verificationGasLimit"];
|
|
41
|
+
paymasterPostOpGasLimit: import("viem/account-abstraction").UserOperation["paymasterPostOpGasLimit"];
|
|
42
|
+
paymasterVerificationGasLimit: import("viem/account-abstraction").UserOperation["paymasterVerificationGasLimit"];
|
|
43
|
+
paymaster: import("viem/account-abstraction").UserOperation["paymaster"];
|
|
44
|
+
paymasterData: import("viem/account-abstraction").UserOperation["paymasterData"];
|
|
45
|
+
signature: import("viem/account-abstraction").UserOperation["signature"];
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Send a signed Safe UserOp to the bundler.
|
|
49
|
+
* Returns the transaction hash.
|
|
50
|
+
*/
|
|
51
|
+
export declare function sendPermittedSafeUserOperation({ signedUserOp, chain, pimlicoRpcUrl, }: SendPermittedSafeUserOperationParams): Promise<Hex>;
|
|
52
|
+
//# sourceMappingURL=safe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../../src/lib/helpers/safe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAQhD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oCAAoC;IACnD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AA2BD;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,KAAK,EACL,UAAU,EACV,aAAa,GACd,EAAE,8BAA8B;;;;;;;;;;;;;;;;;;;GAgDhC;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,EACnD,YAAY,EACZ,KAAK,EACL,aAAa,GACd,EAAE,oCAAoC,GAAG,OAAO,CAAC,GAAG,CAAC,CAqBrD"}
|