@funkit/core 2.0.1 → 2.1.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/dist/index.js +11 -27
- package/dist/index.js.map +1 -1
- package/dist/src/actions/AccessControl.js +39 -48
- package/dist/src/actions/AccessControl.js.map +1 -1
- package/dist/src/actions/BatchActions.js +3 -7
- package/dist/src/actions/BatchActions.js.map +1 -1
- package/dist/src/actions/Bridge.js +16 -20
- package/dist/src/actions/Bridge.js.map +1 -1
- package/dist/src/actions/FirstClassActions.js +74 -77
- package/dist/src/actions/FirstClassActions.js.map +1 -1
- package/dist/src/actions/Group.js +14 -20
- package/dist/src/actions/Group.js.map +1 -1
- package/dist/src/actions/LimitOrder.js +18 -22
- package/dist/src/actions/LimitOrder.js.map +1 -1
- package/dist/src/actions/Stake.js +40 -43
- package/dist/src/actions/Stake.js.map +1 -1
- package/dist/src/actions/Swap.js +40 -46
- package/dist/src/actions/Swap.js.map +1 -1
- package/dist/src/actions/Token.js +41 -53
- package/dist/src/actions/Token.js.map +1 -1
- package/dist/src/actions/index.js +7 -23
- package/dist/src/actions/index.js.map +1 -1
- package/dist/src/actions/types.js +4 -7
- package/dist/src/actions/types.js.map +1 -1
- package/dist/src/apis/AccessControlApis.js +10 -16
- package/dist/src/apis/AccessControlApis.js.map +1 -1
- package/dist/src/apis/BridgeApis.js +14 -20
- package/dist/src/apis/BridgeApis.js.map +1 -1
- package/dist/src/apis/ContractApis.js +4 -7
- package/dist/src/apis/ContractApis.js.map +1 -1
- package/dist/src/apis/GroupApis.js +6 -10
- package/dist/src/apis/GroupApis.js.map +1 -1
- package/dist/src/apis/InfoApis.js +16 -23
- package/dist/src/apis/InfoApis.js.map +1 -1
- package/dist/src/apis/ListenerApis.js +9 -13
- package/dist/src/apis/ListenerApis.js.map +1 -1
- package/dist/src/apis/NFTApis.js +6 -10
- package/dist/src/apis/NFTApis.js.map +1 -1
- package/dist/src/apis/OperationApis.js +26 -40
- package/dist/src/apis/OperationApis.js.map +1 -1
- package/dist/src/apis/PaymasterApis.js +4 -7
- package/dist/src/apis/PaymasterApis.js.map +1 -1
- package/dist/src/apis/SwapApis.js +8 -13
- package/dist/src/apis/SwapApis.js.map +1 -1
- package/dist/src/apis/UserApis.js +20 -29
- package/dist/src/apis/UserApis.js.map +1 -1
- package/dist/src/apis/index.js +8 -24
- package/dist/src/apis/index.js.map +1 -1
- package/dist/src/apis/types.js +1 -2
- package/dist/src/auth/Auth.js +52 -74
- package/dist/src/auth/Auth.js.map +1 -1
- package/dist/src/auth/SessionKeyAuth.js +30 -33
- package/dist/src/auth/SessionKeyAuth.js.map +1 -1
- package/dist/src/auth/index.js +2 -18
- package/dist/src/auth/index.js.map +1 -1
- package/dist/src/auth/types.js +1 -2
- package/dist/src/common/constants.js +184 -191
- package/dist/src/common/constants.js.map +1 -1
- package/dist/src/common/index.js +2 -18
- package/dist/src/common/index.js.map +1 -1
- package/dist/src/common/types.js +1 -2
- package/dist/src/config/Config.js +8 -13
- package/dist/src/config/Config.js.map +1 -1
- package/dist/src/config/index.js +2 -18
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/types.js +1 -2
- package/dist/src/data/Chain.js +35 -33
- package/dist/src/data/Chain.js.map +1 -1
- package/dist/src/data/NFT.js +28 -31
- package/dist/src/data/NFT.js.map +1 -1
- package/dist/src/data/Operation.js +28 -11
- package/dist/src/data/Operation.js.map +1 -1
- package/dist/src/data/SolidityData.js +23 -30
- package/dist/src/data/SolidityData.js.map +1 -1
- package/dist/src/data/Token.js +21 -23
- package/dist/src/data/Token.js.map +1 -1
- package/dist/src/data/index.js +6 -22
- package/dist/src/data/index.js.map +1 -1
- package/dist/src/data/types.js +6 -9
- package/dist/src/data/types.js.map +1 -1
- package/dist/src/errors/BaseError.js +6 -5
- package/dist/src/errors/BaseError.js.map +1 -1
- package/dist/src/errors/ClientError.js +21 -34
- package/dist/src/errors/ClientError.js.map +1 -1
- package/dist/src/errors/ServerError.js +6 -11
- package/dist/src/errors/ServerError.js.map +1 -1
- package/dist/src/errors/index.js +4 -20
- package/dist/src/errors/index.js.map +1 -1
- package/dist/src/errors/types.js +6 -9
- package/dist/src/errors/types.js.map +1 -1
- package/dist/src/sponsors/CheckoutSponsor.js +10 -14
- package/dist/src/sponsors/CheckoutSponsor.js.map +1 -1
- package/dist/src/sponsors/GaslessSponsor.js +23 -27
- package/dist/src/sponsors/GaslessSponsor.js.map +1 -1
- package/dist/src/sponsors/Sponsor.js +10 -8
- package/dist/src/sponsors/Sponsor.js.map +1 -1
- package/dist/src/sponsors/TokenSponsor.js +79 -82
- package/dist/src/sponsors/TokenSponsor.js.map +1 -1
- package/dist/src/sponsors/index.js +4 -20
- package/dist/src/sponsors/index.js.map +1 -1
- package/dist/src/sponsors/types.js +2 -5
- package/dist/src/sponsors/types.js.map +1 -1
- package/dist/src/utils/ApiUtils.js +30 -38
- package/dist/src/utils/ApiUtils.js.map +1 -1
- package/dist/src/utils/AuthUtils.js +9 -14
- package/dist/src/utils/AuthUtils.js.map +1 -1
- package/dist/src/utils/ChainUtils.js +38 -49
- package/dist/src/utils/ChainUtils.js.map +1 -1
- package/dist/src/utils/CheckoutUtils.js +13 -18
- package/dist/src/utils/CheckoutUtils.js.map +1 -1
- package/dist/src/utils/GroupUtils.js +6 -9
- package/dist/src/utils/GroupUtils.js.map +1 -1
- package/dist/src/utils/MerkleUtils.js +34 -47
- package/dist/src/utils/MerkleUtils.js.map +1 -1
- package/dist/src/utils/PaymasterUtils.js +5 -9
- package/dist/src/utils/PaymasterUtils.js.map +1 -1
- package/dist/src/utils/SwapUtils.js +44 -43
- package/dist/src/utils/SwapUtils.js.map +1 -1
- package/dist/src/utils/TypeUtils.js +5 -9
- package/dist/src/utils/TypeUtils.js.map +1 -1
- package/dist/src/utils/UserOpUtils.js +20 -29
- package/dist/src/utils/UserOpUtils.js.map +1 -1
- package/dist/src/utils/ViemUtils.js +6 -12
- package/dist/src/utils/ViemUtils.js.map +1 -1
- package/dist/src/utils/WalletUtils.js +28 -42
- package/dist/src/utils/WalletUtils.js.map +1 -1
- package/dist/src/utils/index.js +8 -24
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/viem/ContractInterface.js +14 -18
- package/dist/src/viem/ContractInterface.js.map +1 -1
- package/dist/src/viem/Converter.d.ts +16 -16
- package/dist/src/viem/Converter.js +15 -20
- package/dist/src/viem/Converter.js.map +1 -1
- package/dist/src/viem/index.js +2 -18
- package/dist/src/viem/index.js.map +1 -1
- package/dist/src/wallet/FunWallet.d.ts +1 -1
- package/dist/src/wallet/FunWallet.js +141 -142
- package/dist/src/wallet/FunWallet.js.map +1 -1
- package/dist/src/wallet/index.js +2 -18
- package/dist/src/wallet/index.js.map +1 -1
- package/dist/src/wallet/types.js +1 -2
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -1,28 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./src/actions"), exports);
|
|
18
|
-
__exportStar(require("./src/apis"), exports);
|
|
19
|
-
__exportStar(require("./src/auth"), exports);
|
|
20
|
-
__exportStar(require("./src/common"), exports);
|
|
21
|
-
__exportStar(require("./src/config"), exports);
|
|
22
|
-
__exportStar(require("./src/data"), exports);
|
|
23
|
-
__exportStar(require("./src/errors"), exports);
|
|
24
|
-
__exportStar(require("./src/sponsors"), exports);
|
|
25
|
-
__exportStar(require("./src/utils"), exports);
|
|
26
|
-
__exportStar(require("./src/viem"), exports);
|
|
27
|
-
__exportStar(require("./src/wallet"), exports);
|
|
1
|
+
export * from './src/actions';
|
|
2
|
+
export * from './src/apis';
|
|
3
|
+
export * from './src/auth';
|
|
4
|
+
export * from './src/common';
|
|
5
|
+
export * from './src/config';
|
|
6
|
+
export * from './src/data';
|
|
7
|
+
export * from './src/errors';
|
|
8
|
+
export * from './src/sponsors';
|
|
9
|
+
export * from './src/utils';
|
|
10
|
+
export * from './src/viem';
|
|
11
|
+
export * from './src/wallet';
|
|
28
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
|
|
@@ -1,49 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const ViemUtils_1 = require("../utils/ViemUtils");
|
|
12
|
-
const createFeeRecipientAndTokenMerkleTree = async (params) => {
|
|
13
|
-
const recipients = (params.feeRecipientWhitelist ?? []).map((recipient) => (0, viem_1.getAddress)(recipient));
|
|
1
|
+
import { getAddress, pad } from 'viem';
|
|
2
|
+
import { SessionKeyAuth } from '../auth';
|
|
3
|
+
import { RBAC_CONTRACT_INTERFACE } from '../common';
|
|
4
|
+
import { Chain } from '../data';
|
|
5
|
+
import { Token } from '../data/Token';
|
|
6
|
+
import { ErrorCode, InvalidParameterError } from '../errors';
|
|
7
|
+
import { MerkleTree } from '../utils/MerkleUtils';
|
|
8
|
+
import { getSigHash } from '../utils/ViemUtils';
|
|
9
|
+
export const createFeeRecipientAndTokenMerkleTree = async (params) => {
|
|
10
|
+
const recipients = (params.feeRecipientWhitelist ?? []).map((recipient) => getAddress(recipient));
|
|
14
11
|
// TODO: Temporary fallback, remove after refactoring -- Panda
|
|
15
12
|
const options = globalThis.globalEnvOption;
|
|
16
|
-
const chain = await
|
|
17
|
-
const tokens = await Promise.all((params.feeTokenWhitelist ?? []).map((token) =>
|
|
18
|
-
const feeRecipientAndTokenMerkleTree = new
|
|
13
|
+
const chain = await Chain.getChain({ chainIdentifier: options.chain });
|
|
14
|
+
const tokens = await Promise.all((params.feeTokenWhitelist ?? []).map((token) => Token.getAddress(token, chain)));
|
|
15
|
+
const feeRecipientAndTokenMerkleTree = new MerkleTree([
|
|
19
16
|
...recipients,
|
|
20
17
|
...tokens,
|
|
21
18
|
]);
|
|
22
19
|
return feeRecipientAndTokenMerkleTree;
|
|
23
20
|
};
|
|
24
|
-
|
|
25
|
-
const createTargetSelectorMerkleTree = (params) => {
|
|
21
|
+
export const createTargetSelectorMerkleTree = (params) => {
|
|
26
22
|
const selectors = [];
|
|
27
23
|
params.actionWhitelist.forEach((actionWhitelistItem) => {
|
|
28
|
-
selectors.push(...actionWhitelistItem.functionWhitelist.map((functionName) =>
|
|
24
|
+
selectors.push(...actionWhitelistItem.functionWhitelist.map((functionName) => getSigHash(actionWhitelistItem.abi, functionName)));
|
|
29
25
|
});
|
|
30
|
-
const targets = params.targetWhitelist.map((target) =>
|
|
31
|
-
const targetSelectorMerkleTree = new
|
|
26
|
+
const targets = params.targetWhitelist.map((target) => getAddress(target));
|
|
27
|
+
const targetSelectorMerkleTree = new MerkleTree([...targets, ...selectors]);
|
|
32
28
|
return targetSelectorMerkleTree;
|
|
33
29
|
};
|
|
34
|
-
|
|
35
|
-
const createSessionKeyTransactionParams = async (params, txOptions = globalThis.globalEnvOption) => {
|
|
30
|
+
export const createSessionKeyTransactionParams = async (params, txOptions = globalThis.globalEnvOption) => {
|
|
36
31
|
if (params.targetWhitelist.length === 0) {
|
|
37
|
-
throw new
|
|
32
|
+
throw new InvalidParameterError(ErrorCode.MissingParameter, 'targetWhitelist is required', { params }, 'Provide targetWhitelist when creating a session key.', 'https://docs.fun.xyz');
|
|
38
33
|
}
|
|
39
34
|
if (params.userId === undefined) {
|
|
40
|
-
throw new
|
|
35
|
+
throw new InvalidParameterError(ErrorCode.MissingParameter, 'userId is required', { params }, 'Provide userId when creating a session key.', 'https://docs.fun.xyz');
|
|
41
36
|
}
|
|
42
37
|
let { actionValueLimit, feeValueLimit } = params;
|
|
43
|
-
actionValueLimit
|
|
44
|
-
feeValueLimit
|
|
45
|
-
const targetSelectorMerkleTree =
|
|
46
|
-
const feeRecipientTokenMerkleTree = await
|
|
38
|
+
actionValueLimit ??= 0n;
|
|
39
|
+
feeValueLimit ??= 0n;
|
|
40
|
+
const targetSelectorMerkleTree = createTargetSelectorMerkleTree(params);
|
|
41
|
+
const feeRecipientTokenMerkleTree = await createFeeRecipientAndTokenMerkleTree(params);
|
|
47
42
|
const ruleStruct = {
|
|
48
43
|
deadline: convertTimestampToBigInt(params.deadline),
|
|
49
44
|
targetSelectorMerkleRootHash: targetSelectorMerkleTree.getRootHash(),
|
|
@@ -54,35 +49,31 @@ const createSessionKeyTransactionParams = async (params, txOptions = globalThis.
|
|
|
54
49
|
const roleId = params.roleId;
|
|
55
50
|
const ruleId = params.ruleId;
|
|
56
51
|
const userId = params.userId;
|
|
57
|
-
const setRuleCallData =
|
|
52
|
+
const setRuleCallData = RBAC_CONTRACT_INTERFACE.encodeData('setRule', [
|
|
58
53
|
ruleId,
|
|
59
54
|
ruleStruct,
|
|
60
55
|
]);
|
|
61
|
-
const connectRuleAndRoleCallData =
|
|
62
|
-
const connectUserToRoleCallData =
|
|
63
|
-
const chain = await
|
|
56
|
+
const connectRuleAndRoleCallData = RBAC_CONTRACT_INTERFACE.encodeData('addRuleToRole', [roleId, ruleId]);
|
|
57
|
+
const connectUserToRoleCallData = RBAC_CONTRACT_INTERFACE.encodeData('addUserToRole', [roleId, userId]);
|
|
58
|
+
const chain = await Chain.getChain({ chainIdentifier: txOptions.chain });
|
|
64
59
|
const rbacAddress = await chain.getAddress('rbacAddress');
|
|
65
|
-
return
|
|
60
|
+
return RBAC_CONTRACT_INTERFACE.encodeTransactionParams(rbacAddress, 'multiCall', [[setRuleCallData, connectRuleAndRoleCallData, connectUserToRoleCallData]]);
|
|
66
61
|
};
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
return new auth_1.SessionKeyAuth(auth, params.ruleId, params.roleId, targetSelectorMerkleTree, feeRecipientAndTokenMerkleTree);
|
|
62
|
+
export const createSessionUser = async (auth, params) => {
|
|
63
|
+
const targetSelectorMerkleTree = createTargetSelectorMerkleTree(params);
|
|
64
|
+
const feeRecipientAndTokenMerkleTree = await createFeeRecipientAndTokenMerkleTree(params);
|
|
65
|
+
return new SessionKeyAuth(auth, params.ruleId, params.roleId, targetSelectorMerkleTree, feeRecipientAndTokenMerkleTree);
|
|
72
66
|
};
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
const chain = await data_1.Chain.getChain({ chainIdentifier: txOptions.chain });
|
|
67
|
+
export const addOwnerTxParams = async (params, txOptions = globalThis.globalEnvOption) => {
|
|
68
|
+
const chain = await Chain.getChain({ chainIdentifier: txOptions.chain });
|
|
76
69
|
const rbacAddress = await chain.getAddress('rbacAddress');
|
|
77
|
-
return
|
|
70
|
+
return RBAC_CONTRACT_INTERFACE.encodeTransactionParams(rbacAddress, 'addOwner', [pad(params.ownerId, { size: 32 })]);
|
|
78
71
|
};
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
const chain = await data_1.Chain.getChain({ chainIdentifier: txOptions.chain });
|
|
72
|
+
export const removeOwnerTxParams = async (params, txOptions = globalThis.globalEnvOption) => {
|
|
73
|
+
const chain = await Chain.getChain({ chainIdentifier: txOptions.chain });
|
|
82
74
|
const rbacAddress = await chain.getAddress('rbacAddress');
|
|
83
|
-
return
|
|
75
|
+
return RBAC_CONTRACT_INTERFACE.encodeTransactionParams(rbacAddress, 'removeOwner', [pad(params.ownerId, { size: 32 })]);
|
|
84
76
|
};
|
|
85
|
-
exports.removeOwnerTxParams = removeOwnerTxParams;
|
|
86
77
|
const convertTimestampToBigInt = (timestamp) => {
|
|
87
78
|
if (Math.abs(Date.now() - timestamp) < Math.abs(Date.now() - timestamp * 1000)) {
|
|
88
79
|
// timestamp is in mills
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControl.js","sourceRoot":"","sources":["../../../src/actions/AccessControl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccessControl.js","sourceRoot":"","sources":["../../../src/actions/AccessControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.createExecuteBatchTxParams = void 0;
|
|
4
|
-
const common_1 = require("../common");
|
|
5
|
-
const createExecuteBatchTxParams = (params, walletAddress) => {
|
|
1
|
+
import { WALLET_CONTRACT_INTERFACE } from '../common';
|
|
2
|
+
export const createExecuteBatchTxParams = (params, walletAddress) => {
|
|
6
3
|
const targets = params.map((param) => param.to);
|
|
7
4
|
const values = params.map((param) => param.value ?? 0n);
|
|
8
5
|
const datas = params.map((param) => param.data ?? '0x');
|
|
9
|
-
return
|
|
6
|
+
return WALLET_CONTRACT_INTERFACE.encodeTransactionParams(walletAddress, 'executeBatch', [targets, values, datas]);
|
|
10
7
|
};
|
|
11
|
-
exports.createExecuteBatchTxParams = createExecuteBatchTxParams;
|
|
12
8
|
//# sourceMappingURL=BatchActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchActions.js","sourceRoot":"","sources":["../../../src/actions/BatchActions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BatchActions.js","sourceRoot":"","sources":["../../../src/actions/BatchActions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAExE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,MAA2B,EAC3B,aAAsB,EACH,EAAE;IACrB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IACvD,OAAO,yBAAyB,CAAC,uBAAuB,CACtD,aAAa,EACb,cAAc,EACd,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CACzB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const errors_1 = require("../errors");
|
|
8
|
-
const types_1 = require("./types");
|
|
9
|
-
const bridgeTransactionParams = async (params, walletAddress, chain) => {
|
|
1
|
+
import { getSocketBridgeAllowance, getSocketBridgeApproveTransaction, getSocketBridgeQuote, getSocketBridgeTransaction, } from '../apis/BridgeApis';
|
|
2
|
+
import { APPROVE_AND_EXEC_CONTRACT_INTERFACE, } from '../common';
|
|
3
|
+
import { Chain, Token } from '../data';
|
|
4
|
+
import { ErrorCode, InvalidParameterError } from '../errors';
|
|
5
|
+
import { SocketSort } from './types';
|
|
6
|
+
export const bridgeTransactionParams = async (params, walletAddress, chain) => {
|
|
10
7
|
const { recipient, fromToken, toToken, sort } = params;
|
|
11
|
-
const fromTokenObj = new
|
|
12
|
-
const toTokenObj = new
|
|
8
|
+
const fromTokenObj = new Token(fromToken, chain);
|
|
9
|
+
const toTokenObj = new Token(toToken, chain);
|
|
13
10
|
const amount = await fromTokenObj.getDecimalAmount(params.amount);
|
|
14
11
|
if (!recipient) {
|
|
15
|
-
throw new
|
|
12
|
+
throw new InvalidParameterError(ErrorCode.InvalidParameter, 'Recipient Parameter was undefined', { params }, 'Please provide a recipient', 'https://docs.fun.xyz');
|
|
16
13
|
}
|
|
17
|
-
const fromChain = await
|
|
18
|
-
const toChain = await
|
|
14
|
+
const fromChain = await Chain.getChain({ chainIdentifier: params.fromChain });
|
|
15
|
+
const toChain = await Chain.getChain({ chainIdentifier: params.toChain });
|
|
19
16
|
const fromChainId = await fromChain.getChainId();
|
|
20
17
|
const approveAndExecAddress = await fromChain.getAddress('approveAndExecAddress');
|
|
21
|
-
const route = await
|
|
22
|
-
const socketTx = await
|
|
18
|
+
const route = await getSocketBridgeQuote(recipient, walletAddress, fromChainId, await toChain.getChainId(), await fromTokenObj.getAddress(), await toTokenObj.getAddress(), amount, sort ?? SocketSort.output);
|
|
19
|
+
const socketTx = await getSocketBridgeTransaction(route);
|
|
23
20
|
if (socketTx.result.approvalData !== null) {
|
|
24
21
|
const { allowanceTarget, minimumApprovalAmount } = socketTx.result.approvalData;
|
|
25
|
-
const allowanceStatusCheck = await
|
|
22
|
+
const allowanceStatusCheck = await getSocketBridgeAllowance(fromChainId, walletAddress, allowanceTarget, await fromTokenObj.getAddress());
|
|
26
23
|
const allowanceValue = allowanceStatusCheck.result.value;
|
|
27
24
|
if (minimumApprovalAmount > allowanceValue) {
|
|
28
|
-
const approveTxData = await
|
|
25
|
+
const approveTxData = await getSocketBridgeApproveTransaction(fromChainId, walletAddress, allowanceTarget, await fromTokenObj.getAddress(), amount);
|
|
29
26
|
const approveData = approveTxData.result.data;
|
|
30
|
-
return
|
|
27
|
+
return APPROVE_AND_EXEC_CONTRACT_INTERFACE.encodeTransactionParams(approveAndExecAddress, 'approveAndExecute', [
|
|
31
28
|
socketTx.result.txTarget,
|
|
32
29
|
socketTx.result.value,
|
|
33
30
|
socketTx.result.txData,
|
|
@@ -42,5 +39,4 @@ const bridgeTransactionParams = async (params, walletAddress, chain) => {
|
|
|
42
39
|
data: socketTx.result.txData,
|
|
43
40
|
};
|
|
44
41
|
};
|
|
45
|
-
exports.bridgeTransactionParams = bridgeTransactionParams;
|
|
46
42
|
//# sourceMappingURL=Bridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bridge.js","sourceRoot":"","sources":["../../../src/actions/Bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bridge.js","sourceRoot":"","sources":["../../../src/actions/Bridge.ts"],"names":[],"mappings":"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"}
|