@bronlabs/intents-sdk 1.0.55 → 1.0.57
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/config.d.ts +1 -0
- package/dist/networks/canton.d.ts +2 -1
- package/dist/networks/canton.js +27 -21
- package/dist/networks/canton.js.map +1 -1
- package/dist/networks/evm.js +2 -2
- package/dist/networks/index.js +1 -1
- package/dist/networks/index.js.map +1 -1
- package/dist/networks/sol.js +2 -2
- package/dist/networks/trx.js +2 -2
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Network, TransactionData } from './index.js';
|
|
|
2
2
|
export declare class CantonNetwork implements Network {
|
|
3
3
|
private readonly scanApiUrl;
|
|
4
4
|
private readonly validatorApiUrl;
|
|
5
|
+
private readonly ledgerApiUrl?;
|
|
5
6
|
private readonly authUrl;
|
|
6
7
|
private readonly nativeAssetDecimals;
|
|
7
8
|
readonly retryDelay: number;
|
|
@@ -11,7 +12,7 @@ export declare class CantonNetwork implements Network {
|
|
|
11
12
|
private readonly proxyAgent?;
|
|
12
13
|
private accessToken?;
|
|
13
14
|
private accessTokenExpiresAt;
|
|
14
|
-
constructor(validatorApiUrl: string, scanApiUrl?: string, authUrl?: string, clientId?: string, clientSecret?: string, senderPartyId?: string);
|
|
15
|
+
constructor(validatorApiUrl: string, ledgerApiUrl?: string, scanApiUrl?: string, authUrl?: string, clientId?: string, clientSecret?: string, senderPartyId?: string);
|
|
15
16
|
getDecimals(tokenAddress: string): Promise<number>;
|
|
16
17
|
getTxData(txHash: string, tokenAddress: string): Promise<TransactionData | undefined>;
|
|
17
18
|
transfer(privateKey: string, to: string, value: bigint, tokenAddress: string): Promise<string>;
|
package/dist/networks/canton.js
CHANGED
|
@@ -4,12 +4,13 @@ import fetch from 'node-fetch';
|
|
|
4
4
|
import { log, expRetry } from '../utils.js';
|
|
5
5
|
import { Big } from 'big.js';
|
|
6
6
|
export class CantonNetwork {
|
|
7
|
-
constructor(validatorApiUrl, scanApiUrl, authUrl, clientId, clientSecret, senderPartyId) {
|
|
7
|
+
constructor(validatorApiUrl, ledgerApiUrl, scanApiUrl, authUrl, clientId, clientSecret, senderPartyId) {
|
|
8
8
|
this.nativeAssetDecimals = 10;
|
|
9
9
|
this.retryDelay = 5000;
|
|
10
10
|
this.accessTokenExpiresAt = 0;
|
|
11
11
|
this.validatorApiUrl = validatorApiUrl;
|
|
12
12
|
this.scanApiUrl = scanApiUrl || validatorApiUrl;
|
|
13
|
+
this.ledgerApiUrl = ledgerApiUrl;
|
|
13
14
|
this.authUrl = authUrl || 'mainnet-canton-mpch.eu.auth0.com';
|
|
14
15
|
this.proxyAgent = process.env.HTTP_PROXY ? new HttpsProxyAgent(process.env.HTTP_PROXY, {
|
|
15
16
|
rejectUnauthorized: false
|
|
@@ -26,27 +27,33 @@ export class CantonNetwork {
|
|
|
26
27
|
}
|
|
27
28
|
async getTxData(txHash, tokenAddress) {
|
|
28
29
|
const updateId = txHash.split(':')[0];
|
|
29
|
-
const
|
|
30
|
-
method: '
|
|
31
|
-
|
|
30
|
+
const json = await this.nodeRequest({
|
|
31
|
+
method: 'POST',
|
|
32
|
+
node: this.ledgerApiUrl,
|
|
33
|
+
uri: `/v2/updates/update-by-id`,
|
|
34
|
+
body: {
|
|
35
|
+
updateId,
|
|
36
|
+
updateFormat: {
|
|
37
|
+
includeTransactions: {
|
|
38
|
+
transactionShape: 'TRANSACTION_SHAPE_LEDGER_EFFECTS',
|
|
39
|
+
eventFormat: {
|
|
40
|
+
filtersByParty: {},
|
|
41
|
+
filtersForAnyParty: {},
|
|
42
|
+
verbose: false
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
32
47
|
});
|
|
33
|
-
if (!
|
|
34
|
-
throw new Error(`Couldn't get Canton tx data for ${txHash}: ${result.status} ${result.statusText}`);
|
|
35
|
-
}
|
|
36
|
-
const json = await result.json();
|
|
37
|
-
if (!json || json.error) {
|
|
48
|
+
if (!json || json.error || !json.update?.Transaction) {
|
|
38
49
|
throw new Error(`Couldn't get Canton tx data for ${txHash}: ${json?.error || 'unknown error'}`);
|
|
39
50
|
}
|
|
40
|
-
const events =
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const transferFactoryResultTag = transferFactoryEvent?.exercise_result?.output?.tag;
|
|
45
|
-
const isSuccess = transferCommandResultTag === 'TransferCommandResultSuccess' ||
|
|
46
|
-
transferFactoryResultTag === 'TransferInstructionResult_Completed';
|
|
51
|
+
const events = json.update.Transaction.value?.events;
|
|
52
|
+
const transferFactoryEvent = events.find(e => e.ExercisedEvent?.choice === 'TransferFactory_Transfer');
|
|
53
|
+
const transferFactoryResultTag = transferFactoryEvent?.ExercisedEvent?.exerciseResult?.output?.tag;
|
|
54
|
+
const isSuccess = transferFactoryResultTag === 'TransferInstructionResult_Completed';
|
|
47
55
|
if (!isSuccess) {
|
|
48
|
-
|
|
49
|
-
log.error(`Transaction ${txHash} failed: ${tag}`);
|
|
56
|
+
log.error(`Transaction ${txHash} failed: ${(transferFactoryResultTag ?? 'Unknown')}`);
|
|
50
57
|
return {
|
|
51
58
|
to: "",
|
|
52
59
|
token: "",
|
|
@@ -54,9 +61,8 @@ export class CantonNetwork {
|
|
|
54
61
|
confirmed: true
|
|
55
62
|
};
|
|
56
63
|
}
|
|
57
|
-
const transfer = events
|
|
58
|
-
|
|
59
|
-
const output = transfer?.choice_argument?.transfer?.outputs[0] || {
|
|
64
|
+
const transfer = events.find(e => e.ExercisedEvent?.choice === 'AmuletRules_Transfer');
|
|
65
|
+
const output = transfer?.ExercisedEvent?.choiceArgument?.transfer?.outputs[0] || {
|
|
60
66
|
receiver: '',
|
|
61
67
|
amount: '0'
|
|
62
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canton.js","sourceRoot":"","sources":["../../src/networks/canton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"canton.js","sourceRoot":"","sources":["../../src/networks/canton.ts"],"names":[],"mappings":"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"}
|
package/dist/networks/evm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import { log,
|
|
2
|
+
import { log, memoize } from '../utils.js';
|
|
3
3
|
export class EvmNetwork {
|
|
4
4
|
constructor(rpcUrl, confirmations = 6) {
|
|
5
5
|
this.nativeAssetDecimals = 18;
|
|
@@ -12,7 +12,7 @@ export class EvmNetwork {
|
|
|
12
12
|
if (tokenAddress === "0x0") {
|
|
13
13
|
return this.nativeAssetDecimals;
|
|
14
14
|
}
|
|
15
|
-
return
|
|
15
|
+
return memoize(`decimals-${this.rpcUrl}-${tokenAddress}`, 86400 * 1000, async () => {
|
|
16
16
|
const { result } = await fetch(this.rpcUrl, {
|
|
17
17
|
method: 'POST',
|
|
18
18
|
body: JSON.stringify({
|
package/dist/networks/index.js
CHANGED
|
@@ -20,7 +20,7 @@ const networkBuilders = {
|
|
|
20
20
|
"HYPE": (cf) => new EvmNetwork(cf.rpcUrl, 15),
|
|
21
21
|
"TRX": (cf) => new TrxNetwork(cf.rpcUrl, 20),
|
|
22
22
|
"SOL": (cf) => new SolNetwork(cf.rpcUrl, 20),
|
|
23
|
-
"CC": (cf) => new CantonNetwork(cf.rpcUrl, cf.scanApiUrl, cf.authUrl, cf.clientId, cf.clientSecret, cf.walletAddress)
|
|
23
|
+
"CC": (cf) => new CantonNetwork(cf.rpcUrl, cf.ledgerApiUrl, cf.scanApiUrl, cf.authUrl, cf.clientId, cf.clientSecret, cf.walletAddress)
|
|
24
24
|
};
|
|
25
25
|
export const initNetworks = (configs, filter) => Object.entries(networkBuilders).reduce((acc, [networkName, builder]) => {
|
|
26
26
|
if (configs[networkName]?.rpcUrl && (!filter || filter(configs[networkName]))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/networks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAoBtC,MAAM,eAAe,GAAG;IACtB,SAAS,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,SAAS,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC9D,SAAS,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/D,SAAS,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/D,QAAQ,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC;IAExI,KAAK,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,KAAK,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1D,KAAK,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3D,MAAM,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3D,KAAK,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5D,KAAK,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3D,KAAK,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3D,IAAI,EAAE,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/networks/index.ts"],"names":[],"mappings":"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"}
|
package/dist/networks/sol.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Transaction, SystemProgram, Keypair, PublicKey } from "@solana/web3.js";
|
|
2
2
|
import { createTransferInstruction, getOrCreateAssociatedTokenAccount } from "@solana/spl-token";
|
|
3
3
|
import bs58 from "bs58";
|
|
4
|
-
import { log,
|
|
4
|
+
import { log, memoize } from "../utils.js";
|
|
5
5
|
export class SolNetwork {
|
|
6
6
|
constructor(rpcUrl, confirmations = 20) {
|
|
7
7
|
this.nativeAssetDecimals = 9; // SOL has 9 decimals
|
|
@@ -14,7 +14,7 @@ export class SolNetwork {
|
|
|
14
14
|
if (tokenAddress === "0x0") {
|
|
15
15
|
return this.nativeAssetDecimals;
|
|
16
16
|
}
|
|
17
|
-
return
|
|
17
|
+
return memoize(`decimals-sol-${tokenAddress}`, 86400 * 1000, async () => {
|
|
18
18
|
const { result } = await fetch(this.rpcUrl, {
|
|
19
19
|
method: 'POST',
|
|
20
20
|
body: JSON.stringify({
|
package/dist/networks/trx.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { fromHex } from "tron-format-address";
|
|
2
2
|
import { TronWeb } from "tronweb";
|
|
3
|
-
import { log,
|
|
3
|
+
import { log, memoize } from "../utils.js";
|
|
4
4
|
export class TrxNetwork {
|
|
5
5
|
constructor(rpcUrl, confirmations = 20) {
|
|
6
6
|
this.authHeaders = {};
|
|
@@ -24,7 +24,7 @@ export class TrxNetwork {
|
|
|
24
24
|
if (tokenAddress === "0x0") {
|
|
25
25
|
return this.nativeAssetDecimals;
|
|
26
26
|
}
|
|
27
|
-
return
|
|
27
|
+
return memoize(`decimals-trx-${tokenAddress}`, 86400 * 1000, async () => {
|
|
28
28
|
const response = await this.request(`/wallet/triggerconstantcontract`, {
|
|
29
29
|
method: "POST",
|
|
30
30
|
headers: {
|
package/dist/utils.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import * as winston from 'winston';
|
|
|
2
2
|
export declare const log: winston.Logger;
|
|
3
3
|
export declare const sleep: (ms: number) => Promise<void>;
|
|
4
4
|
export declare function expRetry<T>(fn: () => Promise<T>, maxRetries?: number, retryIf?: (e: Error) => boolean): Promise<T>;
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function memoize<T>(key: string, durationMs: number, cb: () => Promise<T> | T): Promise<T>;
|
package/dist/utils.js
CHANGED
|
@@ -36,7 +36,7 @@ const __gc = setInterval(() => {
|
|
|
36
36
|
}
|
|
37
37
|
}, 60_000);
|
|
38
38
|
__gc.unref?.();
|
|
39
|
-
export function
|
|
39
|
+
export function memoize(key, durationMs, cb) {
|
|
40
40
|
const now = Date.now();
|
|
41
41
|
const existing = __memoCache.get(key);
|
|
42
42
|
if (existing && existing.expiresAt > now && !existing.promise) {
|