@debridge-finance/solana-utils 1.0.2
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/LICENSE +674 -0
- package/README.md +3 -0
- package/dist/browser/index.js +7899 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/cjs/accounts.js +98 -0
- package/dist/cjs/accounts.js.map +1 -0
- package/dist/cjs/constants.js +69 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/crypto.js +108 -0
- package/dist/cjs/crypto.js.map +1 -0
- package/dist/cjs/helpers.js +184 -0
- package/dist/cjs/helpers.js.map +1 -0
- package/dist/cjs/index.js +10 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces.js +9 -0
- package/dist/cjs/interfaces.js.map +1 -0
- package/dist/esm/accounts.js +91 -0
- package/dist/esm/accounts.js.map +1 -0
- package/dist/esm/constants.js +66 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/crypto.js +99 -0
- package/dist/esm/crypto.js.map +1 -0
- package/dist/esm/helpers.js +191 -0
- package/dist/esm/helpers.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces.js +5 -0
- package/dist/esm/interfaces.js.map +1 -0
- package/dist/types/accounts.d.ts +69 -0
- package/dist/types/accounts.d.ts.map +1 -0
- package/dist/types/constants.d.ts +66 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/crypto.d.ts +35 -0
- package/dist/types/crypto.d.ts.map +1 -0
- package/dist/types/helpers.d.ts +27 -0
- package/dist/types/helpers.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/interfaces.d.ts +42 -0
- package/dist/types/interfaces.d.ts.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PmmDstResolver = exports.PmmSrcResolver = exports.DeBridgeResolver = exports.getTokenMetadataAddress = exports.findAssociatedTokenAddressSync = exports.findAssociatedTokenAddress = exports.WRAPPED_SOL_MINT = exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.TOKEN_METADATA_PROGRAM_ID = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const buffer_1 = require("buffer");
|
|
6
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
7
|
+
const constants = tslib_1.__importStar(require("./constants"));
|
|
8
|
+
const crypto_1 = require("./crypto");
|
|
9
|
+
const interfaces_1 = require("./interfaces");
|
|
10
|
+
exports.TOKEN_METADATA_PROGRAM_ID = new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
|
|
11
|
+
exports.TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
|
|
12
|
+
exports.ASSOCIATED_TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
|
|
13
|
+
exports.WRAPPED_SOL_MINT = new web3_js_1.PublicKey("So11111111111111111111111111111111111111112");
|
|
14
|
+
async function findAssociatedTokenAddress(wallet, tokenMint, tokenProgramId = exports.TOKEN_PROGRAM_ID, associatedTokenProramId = exports.ASSOCIATED_TOKEN_PROGRAM_ID) {
|
|
15
|
+
return web3_js_1.PublicKey.findProgramAddress([wallet.toBytes(), tokenProgramId.toBytes(), tokenMint.toBytes()], associatedTokenProramId);
|
|
16
|
+
}
|
|
17
|
+
exports.findAssociatedTokenAddress = findAssociatedTokenAddress;
|
|
18
|
+
function findAssociatedTokenAddressSync(wallet, tokenMint, tokenProgramId = exports.TOKEN_PROGRAM_ID, associatedTokenProramId = exports.ASSOCIATED_TOKEN_PROGRAM_ID) {
|
|
19
|
+
return web3_js_1.PublicKey.findProgramAddressSync([wallet.toBytes(), tokenProgramId.toBytes(), tokenMint.toBytes()], associatedTokenProramId);
|
|
20
|
+
}
|
|
21
|
+
exports.findAssociatedTokenAddressSync = findAssociatedTokenAddressSync;
|
|
22
|
+
function getTokenMetadataAddress(tokenMint, tokenMetedataProgramId) {
|
|
23
|
+
return web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from("metadata"), tokenMetedataProgramId.toBytes(), tokenMint.toBytes()], tokenMetedataProgramId);
|
|
24
|
+
}
|
|
25
|
+
exports.getTokenMetadataAddress = getTokenMetadataAddress;
|
|
26
|
+
const deBridge = {
|
|
27
|
+
getClaimMarkerAddress: (DEBRIDGE_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridge.Seeds.CLAIM_MARKER)], DEBRIDGE_PROGRAM_ID),
|
|
28
|
+
getExternalCallStorageAddress: (submissionId, executorPubkey, sourceChainId, DEBRIDGE_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([
|
|
29
|
+
buffer_1.Buffer.from(constants.deBridge.Seeds.EXTERNAL_CALL_STORAGE),
|
|
30
|
+
submissionId,
|
|
31
|
+
new web3_js_1.PublicKey(executorPubkey).toBytes(),
|
|
32
|
+
(0, crypto_1.normalizeChainId)(sourceChainId),
|
|
33
|
+
], DEBRIDGE_PROGRAM_ID),
|
|
34
|
+
getExternalCallMetaAddress: (externalCallStorage, DEBRIDGE_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridge.Seeds.EXTERNAL_CALL_META), new web3_js_1.PublicKey(externalCallStorage).toBytes()], DEBRIDGE_PROGRAM_ID),
|
|
35
|
+
getNonceAddress: (DEBRIDGE_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridge.Seeds.NONCE)], DEBRIDGE_PROGRAM_ID),
|
|
36
|
+
getSubmissionAddress: (submissionId, DEBRIDGE_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridge.Seeds.SUBMISSION), submissionId], DEBRIDGE_PROGRAM_ID),
|
|
37
|
+
getSubmissionAuthAddress: (submissionAddress, DEBRIDGE_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridge.Seeds.SUBMISSION_AUTH), new web3_js_1.PublicKey(submissionAddress).toBytes()], DEBRIDGE_PROGRAM_ID),
|
|
38
|
+
getMintAuthorityAddress: (bridge, DEBRIDGE_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridge.Seeds.BRIDGE_MINTER), new web3_js_1.PublicKey(bridge).toBytes()], DEBRIDGE_PROGRAM_ID),
|
|
39
|
+
};
|
|
40
|
+
const deBridgeSettings = {
|
|
41
|
+
getTokenMetadataMasterAddress: (SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.TOKEN_METADATA)], SETTINGS_PROGRAM_ID),
|
|
42
|
+
getTokenMintAddress: (debridgeId, SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.WRAPPER_TOKEN), debridgeId], SETTINGS_PROGRAM_ID),
|
|
43
|
+
getStateAddress: (SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.STATE)], SETTINGS_PROGRAM_ID),
|
|
44
|
+
getConfirmationsStorageAddress: (message, SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.CONFIRMATION_STORAGE), message], SETTINGS_PROGRAM_ID),
|
|
45
|
+
getBridgeFeeAddress: (bridge, chainId, SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.BRIDGE_FEE_INFO), bridge.toBytes(), (0, crypto_1.normalizeChainId)(chainId)], SETTINGS_PROGRAM_ID),
|
|
46
|
+
getChainSupportInfoAddress: (chainId, SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.CHAIN_SUPPORT_INFO), (0, crypto_1.normalizeChainId)(chainId)], SETTINGS_PROGRAM_ID),
|
|
47
|
+
getDiscountInfoAddress: (user, SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.DISCOUNT_INFO), user.toBytes()], SETTINGS_PROGRAM_ID),
|
|
48
|
+
getBridgeAddress: (tokenMint, SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.BRIDGE), tokenMint.toBytes()], SETTINGS_PROGRAM_ID),
|
|
49
|
+
getBridgeMapAddress: (bridgeId, SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.SEND_BRIDGE_MAP), bridgeId], SETTINGS_PROGRAM_ID),
|
|
50
|
+
getNoDiscountAddress: (SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.NO_DISCOUNT)], SETTINGS_PROGRAM_ID),
|
|
51
|
+
getNoBridgeFeeAddress: (SETTINGS_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.deBridgeSettings.Seeds.NO_BRIDGE_FEE_INFO)], SETTINGS_PROGRAM_ID),
|
|
52
|
+
};
|
|
53
|
+
const PmmSrc = {
|
|
54
|
+
getStateAccount: (PMM_SRC_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmSrc.Seeds.STATE)], PMM_SRC_PROGRAM_ID),
|
|
55
|
+
getNonceAccount: (maker, PMM_SRC_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmSrc.Seeds.NONCE), (0, interfaces_1.isBuffer)(maker) ? maker : maker.toBuffer()], PMM_SRC_PROGRAM_ID),
|
|
56
|
+
getGiveOrderStateAccount: (orderId, PMM_SRC_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmSrc.Seeds.ORDER_STATE), orderId], PMM_SRC_PROGRAM_ID),
|
|
57
|
+
getAuthorizedNativeSenderAddress: (chainId, PMM_SRC_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmSrc.Seeds.AUTHORIZED_NATIVE_SENDER), chainId], PMM_SRC_PROGRAM_ID),
|
|
58
|
+
getGiveOrderWalletAddress: (orderId, PMM_SRC_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmSrc.Seeds.GIVE_ORDER_WALLET), orderId], PMM_SRC_PROGRAM_ID),
|
|
59
|
+
getFeeLedgerWalletAddress: (tokenMint, PMM_SRC_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmSrc.Seeds.FEE_LEDGER_WALLET), tokenMint.toBuffer()], PMM_SRC_PROGRAM_ID),
|
|
60
|
+
getFeeLedgerAddress: (PMM_SRC_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmSrc.Seeds.FEE_LEDGER)], PMM_SRC_PROGRAM_ID),
|
|
61
|
+
};
|
|
62
|
+
const PmmDst = {
|
|
63
|
+
getAuthorizedSrcContractAddress: (chainId, PMM_DST_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmDst.Seeds.AUTHORIZED_SRC_CONTRACT), chainId], PMM_DST_PROGRAM_ID),
|
|
64
|
+
getAuthorizedDstNativeSenderAddress: (PMM_DST_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmDst.Seeds.AUTHORIZED_DST_NATIVE_SENDER)], PMM_DST_PROGRAM_ID),
|
|
65
|
+
getTakeOrderStateAddress: (orderId, PMM_DST_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmDst.Seeds.ORDER_STATE), orderId], PMM_DST_PROGRAM_ID),
|
|
66
|
+
getTakePatchAddress: (orderId, PMM_DST_PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddress([buffer_1.Buffer.from(constants.pmmDst.Seeds.TAKE_PATCH), orderId], PMM_DST_PROGRAM_ID),
|
|
67
|
+
};
|
|
68
|
+
function wrapFn(fn, arg) {
|
|
69
|
+
return (...args) => fn(...args, arg);
|
|
70
|
+
}
|
|
71
|
+
class Resolver {
|
|
72
|
+
constructor(programId, obj) {
|
|
73
|
+
this.programId = new web3_js_1.PublicKey(programId);
|
|
74
|
+
let methods = {};
|
|
75
|
+
for (let [fnName, fn] of Object.entries(obj)) {
|
|
76
|
+
methods[fnName] = wrapFn(fn, this.programId);
|
|
77
|
+
}
|
|
78
|
+
this.methods = methods;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
class ResolverContainer2 {
|
|
82
|
+
constructor(resolver1, resolver2) {
|
|
83
|
+
let methods = {};
|
|
84
|
+
for (let resolver of [resolver1, resolver2]) {
|
|
85
|
+
for (let [fnName, fn] of Object.entries(resolver.methods)) {
|
|
86
|
+
methods[fnName] = fn;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
this.methods = methods;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const DeBridgeResolver = (programId, settingsProgramId) => new ResolverContainer2(new Resolver(programId, deBridge), new Resolver(settingsProgramId, deBridgeSettings));
|
|
93
|
+
exports.DeBridgeResolver = DeBridgeResolver;
|
|
94
|
+
const PmmSrcResolver = (programId) => new Resolver(programId, PmmSrc);
|
|
95
|
+
exports.PmmSrcResolver = PmmSrcResolver;
|
|
96
|
+
const PmmDstResolver = (programId) => new Resolver(programId, PmmDst);
|
|
97
|
+
exports.PmmDstResolver = PmmDstResolver;
|
|
98
|
+
//# sourceMappingURL=accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pmmDst = exports.pmmSrc = exports.deBridgeSettings = exports.deBridge = exports.MAX_TX_SIZE = exports.SOLANA_CHAIN_ID = exports.BPS_DENOMINATOR = void 0;
|
|
4
|
+
exports.BPS_DENOMINATOR = 10000;
|
|
5
|
+
exports.SOLANA_CHAIN_ID = 7565164;
|
|
6
|
+
exports.MAX_TX_SIZE = 1232;
|
|
7
|
+
exports.deBridge = {
|
|
8
|
+
Seeds: {
|
|
9
|
+
STATE: "DEBRIDGE_STATE",
|
|
10
|
+
BRIDGE: "BRIDGE",
|
|
11
|
+
WRAPPER_TOKEN: "WRAPPER_TOKEN",
|
|
12
|
+
SEND_BRIDGE_MAP: "WRAPPER_TOKEN",
|
|
13
|
+
BRIDGE_MINTER: "BRIDGE_MINTER",
|
|
14
|
+
CHAIN_SUPPORT_INFO: "CHAIN_SUPPORT_INFO",
|
|
15
|
+
BRIDGE_FEE_INFO: "BRIDGE_FEE_INFO",
|
|
16
|
+
DISCOUNT_INFO: "DISCOUNT_INFO",
|
|
17
|
+
ORACLE_KEYS: "SIGNATURES",
|
|
18
|
+
EXTERNAL_CALL_STORAGE: "EXTERNAL_CALL_STORAGE",
|
|
19
|
+
EXTERNAL_CALL_META: "EXTERNAL_CALL_META",
|
|
20
|
+
NONCE: "NONCE",
|
|
21
|
+
SUBMISSION: "SUBMISSION",
|
|
22
|
+
SUBMISSION_AUTH: "SUBMISSION_AUTH",
|
|
23
|
+
NO_DISCOUNT: "NO_DISCOUNT",
|
|
24
|
+
CLAIM_MARKER: "CLAIM_MARKER",
|
|
25
|
+
},
|
|
26
|
+
Flags: {
|
|
27
|
+
UNWRAP_ETH: 1,
|
|
28
|
+
REVERT_IF_EXTERNAL_FAIL: 2,
|
|
29
|
+
PROXY_WITH_SENDER: 4,
|
|
30
|
+
SEND_HASHED_DATA: 8,
|
|
31
|
+
SEND_TO_ATA: 2 ** 31,
|
|
32
|
+
},
|
|
33
|
+
SUBMISSION_PREFIX: 1,
|
|
34
|
+
};
|
|
35
|
+
exports.deBridgeSettings = {
|
|
36
|
+
Seeds: {
|
|
37
|
+
TOKEN_METADATA: "TOKEN_METADATA",
|
|
38
|
+
WRAPPER_TOKEN: "WRAPPER_TOKEN",
|
|
39
|
+
STATE: "DEBRIDGE_STATE",
|
|
40
|
+
CONFIRMATION_STORAGE: "SIGNATURES",
|
|
41
|
+
BRIDGE_FEE_INFO: "BRIDGE_FEE_INFO",
|
|
42
|
+
CHAIN_SUPPORT_INFO: "CHAIN_SUPPORT_INFO",
|
|
43
|
+
DISCOUNT_INFO: "DISCOUNT_INFO",
|
|
44
|
+
BRIDGE: "BRIDGE",
|
|
45
|
+
NO_BRIDGE_FEE_INFO: "DEFAULT_BRIDGE_FEE_INFO",
|
|
46
|
+
NO_DISCOUNT: "NO_DISCOUNT",
|
|
47
|
+
SEND_BRIDGE_MAP: "WRAPPER_TOKEN",
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
exports.pmmSrc = {
|
|
51
|
+
Seeds: {
|
|
52
|
+
STATE: "STATE",
|
|
53
|
+
NONCE: "NONCE",
|
|
54
|
+
ORDER_STATE: "GIVE_ORDER_STATE",
|
|
55
|
+
AUTHORIZED_NATIVE_SENDER: "AUTHORIZED_NATIVE_SENDER",
|
|
56
|
+
GIVE_ORDER_WALLET: "GIVE_ORDER_WALLET",
|
|
57
|
+
FEE_LEDGER_WALLET: "FEE_LEDGER_WALLET",
|
|
58
|
+
FEE_LEDGER: "FEE LEDGER",
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
exports.pmmDst = {
|
|
62
|
+
Seeds: {
|
|
63
|
+
AUTHORIZED_SRC_CONTRACT: "AUTHORIZED_SRC_CONTRACT",
|
|
64
|
+
AUTHORIZED_DST_NATIVE_SENDER: "AUTHORIZED_DST_NATIVE_SENDER",
|
|
65
|
+
ORDER_STATE: "TAKE_ORDER_STATE",
|
|
66
|
+
TAKE_PATCH: "TAKE_ORDER_PATCH",
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,KAAK,CAAC;AACxB,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,WAAW,GAAG,IAAI,CAAC;AAEnB,QAAA,QAAQ,GAAG;IACvB,KAAK,EAAE;QACN,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,eAAe;QAC9B,eAAe,EAAE,eAAe;QAChC,aAAa,EAAE,eAAe;QAC9B,kBAAkB,EAAE,oBAAoB;QACxC,eAAe,EAAE,iBAAiB;QAClC,aAAa,EAAE,eAAe;QAC9B,WAAW,EAAE,YAAY;QACzB,qBAAqB,EAAE,uBAAuB;QAC9C,kBAAkB,EAAE,oBAAoB;QACxC,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,YAAY;QACxB,eAAe,EAAE,iBAAiB;QAClC,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,cAAc;KAC5B;IACD,KAAK,EAAE;QACN,UAAU,EAAE,CAAC;QACb,uBAAuB,EAAE,CAAC;QAC1B,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC,IAAI,EAAE;KACpB;IACD,iBAAiB,EAAE,CAAC;CACpB,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC/B,KAAK,EAAE;QACN,cAAc,EAAE,gBAAgB;QAChC,aAAa,EAAE,eAAe;QAC9B,KAAK,EAAE,gBAAgB;QACvB,oBAAoB,EAAE,YAAY;QAClC,eAAe,EAAE,iBAAiB;QAClC,kBAAkB,EAAE,oBAAoB;QACxC,aAAa,EAAE,eAAe;QAC9B,MAAM,EAAE,QAAQ;QAChB,kBAAkB,EAAE,yBAAyB;QAC7C,WAAW,EAAE,aAAa;QAC1B,eAAe,EAAE,eAAe;KAChC;CACD,CAAC;AAEW,QAAA,MAAM,GAAG;IACrB,KAAK,EAAE;QACN,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,kBAAkB;QAC/B,wBAAwB,EAAE,0BAA0B;QACpD,iBAAiB,EAAE,mBAAmB;QACtC,iBAAiB,EAAE,mBAAmB;QACtC,UAAU,EAAE,YAAY;KACxB;CACD,CAAC;AAEW,QAAA,MAAM,GAAG;IACrB,KAAK,EAAE;QACN,uBAAuB,EAAE,yBAAyB;QAClD,4BAA4B,EAAE,8BAA8B;QAC5D,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,kBAAkB;KAC9B;CACD,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hashSubmissionIdRaw = exports.hashExternalCallBytes = exports.hashDebridgeId = exports.hashDeployInfo = exports.normalizeChainId = exports.denormalizeAmount = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const buffer_1 = require("buffer");
|
|
6
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const bn_js_1 = tslib_1.__importDefault(require("bn.js"));
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
const helpers_1 = require("./helpers");
|
|
11
|
+
const interfaces_1 = require("./interfaces");
|
|
12
|
+
function denormalizeAmount(amount, denominator) {
|
|
13
|
+
const denominatorBN = new bn_js_1.default(10 ** denominator);
|
|
14
|
+
return amount.mul(denominatorBN).toArrayLike(buffer_1.Buffer, "be", 32);
|
|
15
|
+
}
|
|
16
|
+
exports.denormalizeAmount = denormalizeAmount;
|
|
17
|
+
function normalizeChainId(chainId) {
|
|
18
|
+
return (0, helpers_1.hexToBuffer)(`0x${(0, interfaces_1.isBuffer)(chainId) ? chainId.toString("hex") : new bn_js_1.default(chainId).toString(16)}`, 32);
|
|
19
|
+
}
|
|
20
|
+
exports.normalizeChainId = normalizeChainId;
|
|
21
|
+
/**
|
|
22
|
+
* Hashes deploy info
|
|
23
|
+
* @param params {@link HashDeployInfoParams}
|
|
24
|
+
* @returns keccak256 of deployInfo structure
|
|
25
|
+
*/
|
|
26
|
+
function hashDeployInfo(params) {
|
|
27
|
+
const nameHash = ethers_1.utils.solidityKeccak256(["string"], [params.tokenName]);
|
|
28
|
+
const symbolHash = ethers_1.utils.solidityKeccak256(["string"], [params.tokenSymbol]);
|
|
29
|
+
const deployInfoHash = ethers_1.utils.solidityKeccak256(["uint256", "uint256", "uint256", "uint256", "uint8"], [2, params.debridgeId, nameHash, symbolHash, params.decimals]);
|
|
30
|
+
return deployInfoHash;
|
|
31
|
+
}
|
|
32
|
+
exports.hashDeployInfo = hashDeployInfo;
|
|
33
|
+
/**
|
|
34
|
+
* Returns bridgeid hash
|
|
35
|
+
* @param nativeChainId chain id where token originates
|
|
36
|
+
* @param nativeTokenAddress address of token in native chain in format "0x<HEX STRING>"
|
|
37
|
+
* @returns bridge id in deBridge network
|
|
38
|
+
*/
|
|
39
|
+
function hashDebridgeId(nativeChainId, nativeTokenAddress) {
|
|
40
|
+
const chainIdBuffer = normalizeChainId(nativeChainId);
|
|
41
|
+
const bridgeId = ethers_1.utils.solidityKeccak256(["uint256", "bytes"], [chainIdBuffer, nativeTokenAddress]);
|
|
42
|
+
return bridgeId;
|
|
43
|
+
}
|
|
44
|
+
exports.hashDebridgeId = hashDebridgeId;
|
|
45
|
+
function hashExternalCallBytes(data) {
|
|
46
|
+
return (0, helpers_1.hexToBuffer)(ethers_1.utils.solidityKeccak256(["bytes"], [data ? data : buffer_1.Buffer.from([])]), 32);
|
|
47
|
+
}
|
|
48
|
+
exports.hashExternalCallBytes = hashExternalCallBytes;
|
|
49
|
+
/**
|
|
50
|
+
* Hashes submission for provided data
|
|
51
|
+
* @param params data to hash
|
|
52
|
+
* @returns submissionId from provided params
|
|
53
|
+
*/
|
|
54
|
+
function hashSubmissionIdRaw(params) {
|
|
55
|
+
let packParams = [
|
|
56
|
+
"uint256",
|
|
57
|
+
"uint256",
|
|
58
|
+
"uint256",
|
|
59
|
+
"uint256",
|
|
60
|
+
"uint256",
|
|
61
|
+
"bytes",
|
|
62
|
+
"uint256", // nonce
|
|
63
|
+
];
|
|
64
|
+
const receiver = (0, interfaces_1.isBuffer)(params.receiver)
|
|
65
|
+
? params.receiver
|
|
66
|
+
: typeof params.receiver === "string"
|
|
67
|
+
? params.receiver.startsWith("0x")
|
|
68
|
+
? (0, helpers_1.hexToBuffer)(params.receiver)
|
|
69
|
+
: new web3_js_1.PublicKey(params.receiver)
|
|
70
|
+
: new web3_js_1.PublicKey(params.receiver).toBuffer();
|
|
71
|
+
let packData = [
|
|
72
|
+
constants_1.deBridge.SUBMISSION_PREFIX,
|
|
73
|
+
params.debridgeId,
|
|
74
|
+
normalizeChainId(params.sourceChainId),
|
|
75
|
+
normalizeChainId(params.targetChainId),
|
|
76
|
+
new bn_js_1.default(params.amount).toArray("be", 32),
|
|
77
|
+
receiver,
|
|
78
|
+
params.nonce, // nonce
|
|
79
|
+
];
|
|
80
|
+
if (params?.autoParams) {
|
|
81
|
+
packParams = packParams.concat([
|
|
82
|
+
"uint256",
|
|
83
|
+
"uint256",
|
|
84
|
+
"uint256",
|
|
85
|
+
"uint256",
|
|
86
|
+
"uint256", // native sender hash
|
|
87
|
+
]);
|
|
88
|
+
const shortcut = params.autoParams?.shortcut
|
|
89
|
+
? (0, interfaces_1.isBuffer)(params.autoParams.shortcut)
|
|
90
|
+
? params.autoParams.shortcut
|
|
91
|
+
: (0, helpers_1.hexToBuffer)(params.autoParams.shortcut)
|
|
92
|
+
: hashExternalCallBytes(params?.autoParams?.data);
|
|
93
|
+
const fallback = params.autoParams.fallbackAddress.startsWith("0x")
|
|
94
|
+
? (0, helpers_1.hexToBuffer)(params.autoParams.fallbackAddress)
|
|
95
|
+
: new web3_js_1.PublicKey(params.autoParams.fallbackAddress).toBuffer();
|
|
96
|
+
packData = packData.concat([
|
|
97
|
+
new bn_js_1.default(params?.autoParams?.executionFee || 0).toArray("be", 32),
|
|
98
|
+
new bn_js_1.default(params.autoParams?.flags || 0).toArray("be", 32),
|
|
99
|
+
hashExternalCallBytes(fallback),
|
|
100
|
+
shortcut,
|
|
101
|
+
hashExternalCallBytes(params.autoParams.nativeSender),
|
|
102
|
+
]);
|
|
103
|
+
}
|
|
104
|
+
const submissionIdHash = ethers_1.utils.solidityKeccak256(packParams, packData);
|
|
105
|
+
return submissionIdHash;
|
|
106
|
+
}
|
|
107
|
+
exports.hashSubmissionIdRaw = hashSubmissionIdRaw;
|
|
108
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendAll = exports.Wallet = exports.getTransactionSize = exports.sleep = exports.bufferToHex = exports.hexToBuffer = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
+
function hexToBuffer(data, align) {
|
|
7
|
+
if (!data.startsWith("0x"))
|
|
8
|
+
throw new Error("[hexToBuffer]: string must start with 0x");
|
|
9
|
+
data = data.slice(2); // remove 0x
|
|
10
|
+
if (!data)
|
|
11
|
+
return buffer_1.Buffer.from([]);
|
|
12
|
+
const bufferLen = data.length / 2;
|
|
13
|
+
data = data.length % 2 ? "0" + data : data; // append leading zero if data is not aligned, eg "fff" => "0f ff"
|
|
14
|
+
align = align || 0;
|
|
15
|
+
if (align && bufferLen < align) {
|
|
16
|
+
return buffer_1.Buffer.concat([buffer_1.Buffer.from(Uint8Array.from({ length: align - bufferLen }).fill(0)), buffer_1.Buffer.from(data, "hex")]);
|
|
17
|
+
}
|
|
18
|
+
return buffer_1.Buffer.from(data, "hex");
|
|
19
|
+
}
|
|
20
|
+
exports.hexToBuffer = hexToBuffer;
|
|
21
|
+
function bufferToHex(data) {
|
|
22
|
+
return `0x${buffer_1.Buffer.from(data).toString("hex")}`;
|
|
23
|
+
}
|
|
24
|
+
exports.bufferToHex = bufferToHex;
|
|
25
|
+
async function sleep(milliSeconds) {
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
setTimeout(resolve, milliSeconds);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.sleep = sleep;
|
|
31
|
+
/**
|
|
32
|
+
* Serializes transaction and returns serialized size
|
|
33
|
+
* @param transaction tx to get length
|
|
34
|
+
* @param feePayer optional fee payer
|
|
35
|
+
* @returns transaction size
|
|
36
|
+
*/
|
|
37
|
+
function getTransactionSize(transaction, feePayer) {
|
|
38
|
+
const clonedTransaction = new web3_js_1.Transaction({
|
|
39
|
+
lastValidBlockHeight: 1234,
|
|
40
|
+
feePayer: transaction?.feePayer || feePayer || transaction.instructions[0].programId,
|
|
41
|
+
blockhash: "CSymwgTNX1j3E4qhKfJAUE41nBWEwXufoYryPbkde5RR", // fake blockhash
|
|
42
|
+
}).add(transaction);
|
|
43
|
+
const serializedMessage = clonedTransaction.serializeMessage();
|
|
44
|
+
const uniqueSigners = new Set(clonedTransaction.instructions.flatMap((ix) => ix.keys.filter((meta) => meta.isSigner).map((meta) => meta.pubkey.toBase58())));
|
|
45
|
+
// message length + signatures length (1 byte) + signatures count * signature size (64)
|
|
46
|
+
return serializedMessage.length + uniqueSigners.size * 64 + 1;
|
|
47
|
+
}
|
|
48
|
+
exports.getTransactionSize = getTransactionSize;
|
|
49
|
+
function isVersionedTx(arg) {
|
|
50
|
+
return 'version' in arg;
|
|
51
|
+
}
|
|
52
|
+
class Wallet {
|
|
53
|
+
constructor(keypair) {
|
|
54
|
+
this.keypair = keypair;
|
|
55
|
+
this.publicKey = keypair.publicKey;
|
|
56
|
+
}
|
|
57
|
+
async signTransaction(tx, additionalSigners) {
|
|
58
|
+
tx.sign(this.keypair, ...(additionalSigners || []));
|
|
59
|
+
return Promise.resolve(tx);
|
|
60
|
+
}
|
|
61
|
+
async signAllTransactions(txs, additionalSigners) {
|
|
62
|
+
const promises = [];
|
|
63
|
+
for (const [id, tx] of txs.entries()) {
|
|
64
|
+
promises.push(this.signTransaction(tx, additionalSigners && additionalSigners.length > id ? additionalSigners[id] : []));
|
|
65
|
+
}
|
|
66
|
+
return Promise.all(promises);
|
|
67
|
+
}
|
|
68
|
+
async signVersionedTransaction(tx, additionalSigners) {
|
|
69
|
+
tx.sign([this.keypair, ...(additionalSigners || [])]);
|
|
70
|
+
return Promise.resolve(tx);
|
|
71
|
+
}
|
|
72
|
+
;
|
|
73
|
+
async signAllVersionedTransactions(txs, additionalSigners) {
|
|
74
|
+
const promises = [];
|
|
75
|
+
for (const [id, tx] of txs.entries()) {
|
|
76
|
+
promises.push(this.signVersionedTransaction(tx, additionalSigners && additionalSigners.length > id ? additionalSigners[id] : []));
|
|
77
|
+
}
|
|
78
|
+
return Promise.all(promises);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.Wallet = Wallet;
|
|
82
|
+
async function sendWithRetries(connection, serialized, lastValidBlockHeight) {
|
|
83
|
+
const txId = await connection.sendRawTransaction(serialized, {
|
|
84
|
+
skipPreflight: true,
|
|
85
|
+
});
|
|
86
|
+
let blockheight = await connection.getBlockHeight();
|
|
87
|
+
const timesToSend = 5;
|
|
88
|
+
let sent = 0;
|
|
89
|
+
while (blockheight < lastValidBlockHeight && sent < timesToSend) {
|
|
90
|
+
await connection.sendRawTransaction(serialized, {
|
|
91
|
+
skipPreflight: true,
|
|
92
|
+
});
|
|
93
|
+
await sleep(300);
|
|
94
|
+
blockheight = await connection.getBlockHeight();
|
|
95
|
+
sent += 1;
|
|
96
|
+
}
|
|
97
|
+
return txId;
|
|
98
|
+
}
|
|
99
|
+
async function sendAll(connection, wallet, transactions, signers, waitBetweenSend, skipPreflight = false, debug = false) {
|
|
100
|
+
let txIds = [];
|
|
101
|
+
const signAllTransactions = (txs, additionalSigners) => {
|
|
102
|
+
const result = [];
|
|
103
|
+
const txTypes = txs.map(isVersionedTx);
|
|
104
|
+
if (txTypes.every((isVersioned) => isVersioned === true)) {
|
|
105
|
+
// all txs are Versioned
|
|
106
|
+
if (wallet.signAllVersionedTransactions === undefined)
|
|
107
|
+
throw new Error("Trying to sign versioned transactions without implementation for sigining such transactions (signAllVersionedTransactions)");
|
|
108
|
+
return wallet.signAllVersionedTransactions(txs, additionalSigners);
|
|
109
|
+
}
|
|
110
|
+
else if (txTypes.every((isVersioned) => isVersioned === false)) {
|
|
111
|
+
// all txs are Legacy
|
|
112
|
+
return wallet.signAllTransactions(txs, additionalSigners);
|
|
113
|
+
}
|
|
114
|
+
// transactions are mixed
|
|
115
|
+
if (wallet.signVersionedTransaction === undefined)
|
|
116
|
+
throw new Error("Trying to sign versioned transaction without implementation for sigining such transaction (signVersionedTransaction)");
|
|
117
|
+
for (const [i, tx] of txs.entries()) {
|
|
118
|
+
const signers = additionalSigners && additionalSigners.length > i ? additionalSigners[i] : undefined;
|
|
119
|
+
if (isVersionedTx(tx)) {
|
|
120
|
+
result.push(wallet.signVersionedTransaction(tx, signers));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
result.push(wallet.signTransaction(tx, signers));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return Promise.all(result);
|
|
127
|
+
};
|
|
128
|
+
if (waitBetweenSend === undefined || waitBetweenSend === 0) {
|
|
129
|
+
const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash({ commitment: "confirmed" });
|
|
130
|
+
await Promise.all(transactions.map(async (tx) => {
|
|
131
|
+
let txV0;
|
|
132
|
+
if (isVersionedTx(tx)) {
|
|
133
|
+
tx.message.recentBlockhash = blockhash;
|
|
134
|
+
txV0 = tx;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
tx.recentBlockhash = blockhash;
|
|
138
|
+
tx.feePayer = wallet.publicKey;
|
|
139
|
+
const message = web3_js_1.Message.from(tx.serializeMessage());
|
|
140
|
+
txV0 = new web3_js_1.VersionedTransaction(new web3_js_1.MessageV0({ addressTableLookups: [], compiledInstructions: [], header: message.header, recentBlockhash: blockhash, staticAccountKeys: message.accountKeys }));
|
|
141
|
+
}
|
|
142
|
+
if (!skipPreflight) {
|
|
143
|
+
const simulationResult = await connection.simulateTransaction(txV0, { sigVerify: false, replaceRecentBlockhash: true, commitment: "confirmed" });
|
|
144
|
+
if (simulationResult.value.err !== null) {
|
|
145
|
+
throw new Error(`Tx simulation Error! Transaction message dump: ${buffer_1.Buffer.from(tx.serialize()).toString("base64")}\n Error: ${JSON.stringify(simulationResult.value.err)}, logs:\n ${simulationResult.value.logs?.join("\n")}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}));
|
|
149
|
+
// sign after setting correct blockhashes
|
|
150
|
+
const signed = await signAllTransactions(transactions, signers);
|
|
151
|
+
txIds = await Promise.all(signed.map((signedTx) => {
|
|
152
|
+
const serialized = buffer_1.Buffer.from(signedTx.serialize());
|
|
153
|
+
if (debug)
|
|
154
|
+
console.debug(serialized.toString("base64"));
|
|
155
|
+
return sendWithRetries(connection, serialized, lastValidBlockHeight);
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
for (let i = 0; i < transactions.length; i++) {
|
|
160
|
+
const tx = transactions[i];
|
|
161
|
+
const { blockhash } = await connection.getLatestBlockhash();
|
|
162
|
+
let signed;
|
|
163
|
+
if (isVersionedTx(tx)) {
|
|
164
|
+
tx.message.recentBlockhash = blockhash;
|
|
165
|
+
if (wallet.signVersionedTransaction === undefined)
|
|
166
|
+
throw new Error("Trying to sign versioned transaction without implementation for sigining such transaction (signVersionedTransaction)");
|
|
167
|
+
signed = await wallet.signVersionedTransaction(tx, signers && signers.length > i ? signers[i] : undefined);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
tx.recentBlockhash = blockhash;
|
|
171
|
+
tx.feePayer = wallet.publicKey;
|
|
172
|
+
signed = await wallet.signTransaction(tx, signers && signers.length > i ? signers[i] : undefined);
|
|
173
|
+
}
|
|
174
|
+
const serialized = buffer_1.Buffer.from(signed.serialize());
|
|
175
|
+
if (debug)
|
|
176
|
+
console.debug(serialized.toString("base64"));
|
|
177
|
+
txIds.push(await (0, web3_js_1.sendAndConfirmRawTransaction)(connection, serialized, { maxRetries: 20, commitment: "confirmed", skipPreflight }));
|
|
178
|
+
await sleep(waitBetweenSend);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return txIds;
|
|
182
|
+
}
|
|
183
|
+
exports.sendAll = sendAll;
|
|
184
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.helpers = exports.interfaces = exports.constants = exports.crypto = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
exports.crypto = tslib_1.__importStar(require("./crypto"));
|
|
6
|
+
exports.constants = tslib_1.__importStar(require("./constants"));
|
|
7
|
+
exports.interfaces = tslib_1.__importStar(require("./interfaces"));
|
|
8
|
+
tslib_1.__exportStar(require("./accounts"), exports);
|
|
9
|
+
exports.helpers = tslib_1.__importStar(require("./helpers"));
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAmC;AACnC,iEAAyC;AACzC,mEAA2C;AAC3C,qDAA2B;AAC3B,6DAAqC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isBuffer = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
function isBuffer(arg) {
|
|
6
|
+
return buffer_1.Buffer.isBuffer(arg); //(arg as Record<string, never>).constructor === Buffer;
|
|
7
|
+
}
|
|
8
|
+
exports.isBuffer = isBuffer;
|
|
9
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAahC,SAAgB,QAAQ,CAAC,GAAY;IACpC,OAAO,eAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,wDAAwD;AACtF,CAAC;AAFD,4BAEC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Buffer } from "buffer";
|
|
3
|
+
import { PublicKey } from "@solana/web3.js";
|
|
4
|
+
import * as constants from "./constants";
|
|
5
|
+
import { normalizeChainId } from "./crypto";
|
|
6
|
+
import { isBuffer } from "./interfaces";
|
|
7
|
+
export const TOKEN_METADATA_PROGRAM_ID = new PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
|
|
8
|
+
export const TOKEN_PROGRAM_ID = new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
|
|
9
|
+
export const ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
|
|
10
|
+
export const WRAPPED_SOL_MINT = new PublicKey("So11111111111111111111111111111111111111112");
|
|
11
|
+
export function findAssociatedTokenAddress(wallet, tokenMint, tokenProgramId = TOKEN_PROGRAM_ID, associatedTokenProramId = ASSOCIATED_TOKEN_PROGRAM_ID) {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
return PublicKey.findProgramAddress([wallet.toBytes(), tokenProgramId.toBytes(), tokenMint.toBytes()], associatedTokenProramId);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export function findAssociatedTokenAddressSync(wallet, tokenMint, tokenProgramId = TOKEN_PROGRAM_ID, associatedTokenProramId = ASSOCIATED_TOKEN_PROGRAM_ID) {
|
|
17
|
+
return PublicKey.findProgramAddressSync([wallet.toBytes(), tokenProgramId.toBytes(), tokenMint.toBytes()], associatedTokenProramId);
|
|
18
|
+
}
|
|
19
|
+
export function getTokenMetadataAddress(tokenMint, tokenMetedataProgramId) {
|
|
20
|
+
return PublicKey.findProgramAddress([Buffer.from("metadata"), tokenMetedataProgramId.toBytes(), tokenMint.toBytes()], tokenMetedataProgramId);
|
|
21
|
+
}
|
|
22
|
+
const deBridge = {
|
|
23
|
+
getClaimMarkerAddress: (DEBRIDGE_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridge.Seeds.CLAIM_MARKER)], DEBRIDGE_PROGRAM_ID),
|
|
24
|
+
getExternalCallStorageAddress: (submissionId, executorPubkey, sourceChainId, DEBRIDGE_PROGRAM_ID) => PublicKey.findProgramAddress([
|
|
25
|
+
Buffer.from(constants.deBridge.Seeds.EXTERNAL_CALL_STORAGE),
|
|
26
|
+
submissionId,
|
|
27
|
+
new PublicKey(executorPubkey).toBytes(),
|
|
28
|
+
normalizeChainId(sourceChainId),
|
|
29
|
+
], DEBRIDGE_PROGRAM_ID),
|
|
30
|
+
getExternalCallMetaAddress: (externalCallStorage, DEBRIDGE_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridge.Seeds.EXTERNAL_CALL_META), new PublicKey(externalCallStorage).toBytes()], DEBRIDGE_PROGRAM_ID),
|
|
31
|
+
getNonceAddress: (DEBRIDGE_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridge.Seeds.NONCE)], DEBRIDGE_PROGRAM_ID),
|
|
32
|
+
getSubmissionAddress: (submissionId, DEBRIDGE_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridge.Seeds.SUBMISSION), submissionId], DEBRIDGE_PROGRAM_ID),
|
|
33
|
+
getSubmissionAuthAddress: (submissionAddress, DEBRIDGE_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridge.Seeds.SUBMISSION_AUTH), new PublicKey(submissionAddress).toBytes()], DEBRIDGE_PROGRAM_ID),
|
|
34
|
+
getMintAuthorityAddress: (bridge, DEBRIDGE_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridge.Seeds.BRIDGE_MINTER), new PublicKey(bridge).toBytes()], DEBRIDGE_PROGRAM_ID),
|
|
35
|
+
};
|
|
36
|
+
const deBridgeSettings = {
|
|
37
|
+
getTokenMetadataMasterAddress: (SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.TOKEN_METADATA)], SETTINGS_PROGRAM_ID),
|
|
38
|
+
getTokenMintAddress: (debridgeId, SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.WRAPPER_TOKEN), debridgeId], SETTINGS_PROGRAM_ID),
|
|
39
|
+
getStateAddress: (SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.STATE)], SETTINGS_PROGRAM_ID),
|
|
40
|
+
getConfirmationsStorageAddress: (message, SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.CONFIRMATION_STORAGE), message], SETTINGS_PROGRAM_ID),
|
|
41
|
+
getBridgeFeeAddress: (bridge, chainId, SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.BRIDGE_FEE_INFO), bridge.toBytes(), normalizeChainId(chainId)], SETTINGS_PROGRAM_ID),
|
|
42
|
+
getChainSupportInfoAddress: (chainId, SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.CHAIN_SUPPORT_INFO), normalizeChainId(chainId)], SETTINGS_PROGRAM_ID),
|
|
43
|
+
getDiscountInfoAddress: (user, SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.DISCOUNT_INFO), user.toBytes()], SETTINGS_PROGRAM_ID),
|
|
44
|
+
getBridgeAddress: (tokenMint, SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.BRIDGE), tokenMint.toBytes()], SETTINGS_PROGRAM_ID),
|
|
45
|
+
getBridgeMapAddress: (bridgeId, SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.SEND_BRIDGE_MAP), bridgeId], SETTINGS_PROGRAM_ID),
|
|
46
|
+
getNoDiscountAddress: (SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.NO_DISCOUNT)], SETTINGS_PROGRAM_ID),
|
|
47
|
+
getNoBridgeFeeAddress: (SETTINGS_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.deBridgeSettings.Seeds.NO_BRIDGE_FEE_INFO)], SETTINGS_PROGRAM_ID),
|
|
48
|
+
};
|
|
49
|
+
const PmmSrc = {
|
|
50
|
+
getStateAccount: (PMM_SRC_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmSrc.Seeds.STATE)], PMM_SRC_PROGRAM_ID),
|
|
51
|
+
getNonceAccount: (maker, PMM_SRC_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmSrc.Seeds.NONCE), isBuffer(maker) ? maker : maker.toBuffer()], PMM_SRC_PROGRAM_ID),
|
|
52
|
+
getGiveOrderStateAccount: (orderId, PMM_SRC_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmSrc.Seeds.ORDER_STATE), orderId], PMM_SRC_PROGRAM_ID),
|
|
53
|
+
getAuthorizedNativeSenderAddress: (chainId, PMM_SRC_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmSrc.Seeds.AUTHORIZED_NATIVE_SENDER), chainId], PMM_SRC_PROGRAM_ID),
|
|
54
|
+
getGiveOrderWalletAddress: (orderId, PMM_SRC_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmSrc.Seeds.GIVE_ORDER_WALLET), orderId], PMM_SRC_PROGRAM_ID),
|
|
55
|
+
getFeeLedgerWalletAddress: (tokenMint, PMM_SRC_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmSrc.Seeds.FEE_LEDGER_WALLET), tokenMint.toBuffer()], PMM_SRC_PROGRAM_ID),
|
|
56
|
+
getFeeLedgerAddress: (PMM_SRC_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmSrc.Seeds.FEE_LEDGER)], PMM_SRC_PROGRAM_ID),
|
|
57
|
+
};
|
|
58
|
+
const PmmDst = {
|
|
59
|
+
getAuthorizedSrcContractAddress: (chainId, PMM_DST_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmDst.Seeds.AUTHORIZED_SRC_CONTRACT), chainId], PMM_DST_PROGRAM_ID),
|
|
60
|
+
getAuthorizedDstNativeSenderAddress: (PMM_DST_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmDst.Seeds.AUTHORIZED_DST_NATIVE_SENDER)], PMM_DST_PROGRAM_ID),
|
|
61
|
+
getTakeOrderStateAddress: (orderId, PMM_DST_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmDst.Seeds.ORDER_STATE), orderId], PMM_DST_PROGRAM_ID),
|
|
62
|
+
getTakePatchAddress: (orderId, PMM_DST_PROGRAM_ID) => PublicKey.findProgramAddress([Buffer.from(constants.pmmDst.Seeds.TAKE_PATCH), orderId], PMM_DST_PROGRAM_ID),
|
|
63
|
+
};
|
|
64
|
+
function wrapFn(fn, arg) {
|
|
65
|
+
return (...args) => fn(...args, arg);
|
|
66
|
+
}
|
|
67
|
+
class Resolver {
|
|
68
|
+
constructor(programId, obj) {
|
|
69
|
+
this.programId = new PublicKey(programId);
|
|
70
|
+
let methods = {};
|
|
71
|
+
for (let [fnName, fn] of Object.entries(obj)) {
|
|
72
|
+
methods[fnName] = wrapFn(fn, this.programId);
|
|
73
|
+
}
|
|
74
|
+
this.methods = methods;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
class ResolverContainer2 {
|
|
78
|
+
constructor(resolver1, resolver2) {
|
|
79
|
+
let methods = {};
|
|
80
|
+
for (let resolver of [resolver1, resolver2]) {
|
|
81
|
+
for (let [fnName, fn] of Object.entries(resolver.methods)) {
|
|
82
|
+
methods[fnName] = fn;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
this.methods = methods;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export const DeBridgeResolver = (programId, settingsProgramId) => new ResolverContainer2(new Resolver(programId, deBridge), new Resolver(settingsProgramId, deBridgeSettings));
|
|
89
|
+
export const PmmSrcResolver = (programId) => new Resolver(programId, PmmSrc);
|
|
90
|
+
export const PmmDstResolver = (programId) => new Resolver(programId, PmmDst);
|
|
91
|
+
//# sourceMappingURL=accounts.js.map
|