@hyperlane-xyz/radix-sdk 18.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/README.md +43 -0
- package/dist/core/populate.d.ts +87 -0
- package/dist/core/populate.d.ts.map +1 -0
- package/dist/core/populate.js +94 -0
- package/dist/core/populate.js.map +1 -0
- package/dist/core/query.d.ts +62 -0
- package/dist/core/query.d.ts.map +1 -0
- package/dist/core/query.js +156 -0
- package/dist/core/query.js.map +1 -0
- package/dist/core/tx.d.ts +73 -0
- package/dist/core/tx.d.ts.map +1 -0
- package/dist/core/tx.js +148 -0
- package/dist/core/tx.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/base.d.ts +53 -0
- package/dist/utils/base.d.ts.map +1 -0
- package/dist/utils/base.js +250 -0
- package/dist/utils/base.js.map +1 -0
- package/dist/utils/signer.d.ts +16 -0
- package/dist/utils/signer.d.ts.map +1 -0
- package/dist/utils/signer.js +65 -0
- package/dist/utils/signer.js.map +1 -0
- package/dist/utils/types.d.ts +68 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +11 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/utils.d.ts +6 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +33 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/warp/populate.d.ts +60 -0
- package/dist/warp/populate.d.ts.map +1 -0
- package/dist/warp/populate.js +75 -0
- package/dist/warp/populate.js.map +1 -0
- package/dist/warp/query.d.ts +43 -0
- package/dist/warp/query.d.ts.map +1 -0
- package/dist/warp/query.js +155 -0
- package/dist/warp/query.js.map +1 -0
- package/dist/warp/tx.d.ts +54 -0
- package/dist/warp/tx.d.ts.map +1 -0
- package/dist/warp/tx.js +82 -0
- package/dist/warp/tx.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { RadixEngineToolkit, SimpleTransactionBuilder, TransactionBuilder, generateRandomNonce, } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
export class RadixSigner {
|
|
3
|
+
networkId;
|
|
4
|
+
gateway;
|
|
5
|
+
base;
|
|
6
|
+
account;
|
|
7
|
+
constructor(networkId, gateway, base, account) {
|
|
8
|
+
this.networkId = networkId;
|
|
9
|
+
this.gateway = gateway;
|
|
10
|
+
this.base = base;
|
|
11
|
+
this.account = account;
|
|
12
|
+
}
|
|
13
|
+
async signAndBroadcast(manifest) {
|
|
14
|
+
// transaction builder from official example:
|
|
15
|
+
// https://github.com/radixdlt/typescript-radix-engine-toolkit?tab=readme-ov-file#constructing-transactions
|
|
16
|
+
const constructionMetadata = await this.gateway.transaction.innerClient.transactionConstruction();
|
|
17
|
+
const transactionHeader = {
|
|
18
|
+
networkId: this.networkId,
|
|
19
|
+
startEpochInclusive: constructionMetadata.ledger_state.epoch,
|
|
20
|
+
endEpochExclusive: constructionMetadata.ledger_state.epoch + 2,
|
|
21
|
+
nonce: generateRandomNonce(),
|
|
22
|
+
notaryPublicKey: this.account.publicKey,
|
|
23
|
+
notaryIsSignatory: true,
|
|
24
|
+
tipPercentage: 0,
|
|
25
|
+
};
|
|
26
|
+
const builder = await TransactionBuilder.new();
|
|
27
|
+
const transaction = await builder
|
|
28
|
+
.header(transactionHeader)
|
|
29
|
+
.manifest(manifest)
|
|
30
|
+
.sign(this.signIntent)
|
|
31
|
+
.notarize(this.notarizeIntent);
|
|
32
|
+
const compiledNotarizedTransaction = await RadixEngineToolkit.NotarizedTransaction.compile(transaction);
|
|
33
|
+
const intentHashTransactionId = await RadixEngineToolkit.NotarizedTransaction.intentHash(transaction);
|
|
34
|
+
await this.gateway.transaction.innerClient.transactionSubmit({
|
|
35
|
+
transactionSubmitRequest: {
|
|
36
|
+
notarized_transaction_hex: Buffer.from(compiledNotarizedTransaction).toString('hex'),
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
await this.base.pollForCommit(intentHashTransactionId.id);
|
|
40
|
+
return intentHashTransactionId;
|
|
41
|
+
}
|
|
42
|
+
async getTestnetXrd() {
|
|
43
|
+
const constructionMetadata = await this.gateway.transaction.innerClient.transactionConstruction();
|
|
44
|
+
const freeXrdForAccountTransaction = await SimpleTransactionBuilder.freeXrdFromFaucet({
|
|
45
|
+
networkId: this.networkId,
|
|
46
|
+
toAccount: this.account.address,
|
|
47
|
+
validFromEpoch: constructionMetadata.ledger_state.epoch,
|
|
48
|
+
});
|
|
49
|
+
const intentHashTransactionId = freeXrdForAccountTransaction.transactionId.id;
|
|
50
|
+
await this.gateway.transaction.innerClient.transactionSubmit({
|
|
51
|
+
transactionSubmitRequest: {
|
|
52
|
+
notarized_transaction_hex: freeXrdForAccountTransaction.toHex(),
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
await this.base.pollForCommit(intentHashTransactionId);
|
|
56
|
+
return intentHashTransactionId;
|
|
57
|
+
}
|
|
58
|
+
signIntent = (hashToSign) => {
|
|
59
|
+
return this.account.privateKey.signToSignatureWithPublicKey(hashToSign);
|
|
60
|
+
};
|
|
61
|
+
notarizeIntent = (hashToSign) => {
|
|
62
|
+
return this.account.privateKey.signToSignature(hashToSign);
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/utils/signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { PrivateKey, PublicKey } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
export declare enum INSTRUCTIONS {
|
|
3
|
+
LOCK_FEE = "lock_fee",
|
|
4
|
+
INSTANTIATE = "instantiate",
|
|
5
|
+
WITHDRAW = "withdraw",
|
|
6
|
+
TRY_DEPOSIT_BATCH_OR_ABORT = "try_deposit_batch_or_abort",
|
|
7
|
+
TRY_DEPOSIT_OR_ABORT = "try_deposit_or_abort",
|
|
8
|
+
CREATE_PROOF_OF_AMOUNT = "create_proof_of_amount"
|
|
9
|
+
}
|
|
10
|
+
export type Account = {
|
|
11
|
+
privateKey: PrivateKey;
|
|
12
|
+
publicKey: PublicKey;
|
|
13
|
+
address: string;
|
|
14
|
+
};
|
|
15
|
+
export interface RadixSDKOptions {
|
|
16
|
+
networkId?: number;
|
|
17
|
+
gasMultiplier?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface MultisigIsmReq {
|
|
20
|
+
validators: string[];
|
|
21
|
+
threshold: number;
|
|
22
|
+
}
|
|
23
|
+
export type MultisigIsms = 'MerkleRootMultisigIsm' | 'MessageIdMultisigIsm' | 'NoopIsm';
|
|
24
|
+
export type Isms = 'MerkleRootMultisigIsm' | 'MessageIdMultisigIsm' | 'RoutingIsm' | 'NoopIsm';
|
|
25
|
+
export interface EntityField {
|
|
26
|
+
field_name: string;
|
|
27
|
+
type_name: string;
|
|
28
|
+
variant_name?: string;
|
|
29
|
+
value?: any;
|
|
30
|
+
elements?: any[];
|
|
31
|
+
fields?: EntityField[];
|
|
32
|
+
hex?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface EntityDetails {
|
|
35
|
+
blueprint_name: string;
|
|
36
|
+
state: {
|
|
37
|
+
fields: EntityField[];
|
|
38
|
+
};
|
|
39
|
+
role_assignments: {
|
|
40
|
+
owner: {
|
|
41
|
+
rule: {
|
|
42
|
+
access_rule: {
|
|
43
|
+
proof_rule: {
|
|
44
|
+
requirement: {
|
|
45
|
+
resource: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface Receipt {
|
|
54
|
+
output: {
|
|
55
|
+
programmatic_json: {
|
|
56
|
+
entries: {
|
|
57
|
+
key: {
|
|
58
|
+
value: any;
|
|
59
|
+
};
|
|
60
|
+
value: {
|
|
61
|
+
value: any;
|
|
62
|
+
};
|
|
63
|
+
}[];
|
|
64
|
+
};
|
|
65
|
+
}[];
|
|
66
|
+
error_message?: string;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAGvE,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,0BAA0B,+BAA+B;IACzD,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;CAClD;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GACpB,uBAAuB,GACvB,sBAAsB,GACtB,SAAS,CAAC;AAEd,MAAM,MAAM,IAAI,GACZ,uBAAuB,GACvB,sBAAsB,GACtB,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE;QACL,MAAM,EAAE,WAAW,EAAE,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,WAAW,EAAE;oBACX,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,QAAQ,EAAE,MAAM,CAAC;yBAClB,CAAC;qBACH,CAAC;iBACH,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE;QACN,iBAAiB,EAAE;YACjB,OAAO,EAAE;gBACP,GAAG,EAAE;oBACH,KAAK,EAAE,GAAG,CAAC;iBACZ,CAAC;gBACF,KAAK,EAAE;oBACL,KAAK,EAAE,GAAG,CAAC;iBACZ,CAAC;aACH,EAAE,CAAC;SACL,CAAC;KACH,EAAE,CAAC;IACJ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// https://docs.radixdlt.com/docs/manifest-instructions
|
|
2
|
+
export var INSTRUCTIONS;
|
|
3
|
+
(function (INSTRUCTIONS) {
|
|
4
|
+
INSTRUCTIONS["LOCK_FEE"] = "lock_fee";
|
|
5
|
+
INSTRUCTIONS["INSTANTIATE"] = "instantiate";
|
|
6
|
+
INSTRUCTIONS["WITHDRAW"] = "withdraw";
|
|
7
|
+
INSTRUCTIONS["TRY_DEPOSIT_BATCH_OR_ABORT"] = "try_deposit_batch_or_abort";
|
|
8
|
+
INSTRUCTIONS["TRY_DEPOSIT_OR_ABORT"] = "try_deposit_or_abort";
|
|
9
|
+
INSTRUCTIONS["CREATE_PROOF_OF_AMOUNT"] = "create_proof_of_amount";
|
|
10
|
+
})(INSTRUCTIONS || (INSTRUCTIONS = {}));
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,2CAA2B,CAAA;IAC3B,qCAAqB,CAAA;IACrB,yEAAyD,CAAA;IACzD,6DAA6C,CAAA;IAC7C,iEAAiD,CAAA;AACnD,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Value } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
import { Account } from './types.js';
|
|
3
|
+
export declare const bytes: (hex: string) => Value;
|
|
4
|
+
export declare const getAccountPrefix: (networkId: number) => string;
|
|
5
|
+
export declare const generateNewEd25519VirtualAccount: (privateKey: string, networkId: number) => Promise<Account>;
|
|
6
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,EAIN,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,eAAO,MAAM,KAAK,QAAS,MAAM,KAAG,KAOnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAAe,MAAM,WAmBjD,CAAC;AAEF,eAAO,MAAM,gCAAgC,eAC/B,MAAM,aACP,MAAM,KAChB,QAAQ,OAAO,CAcjB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Convert, LTSRadixEngineToolkit, PrivateKey, ValueKind, array, u8, } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
export const bytes = (hex) => {
|
|
3
|
+
return array(ValueKind.U8, ...Array.from(Convert.HexString.toUint8Array(hex).values()).map((item) => u8(item)));
|
|
4
|
+
};
|
|
5
|
+
export const getAccountPrefix = (networkId) => {
|
|
6
|
+
// https://docs.radixdlt.com/docs/concepts-addresses#network-specifiers
|
|
7
|
+
let prefix = 'account_';
|
|
8
|
+
switch (networkId) {
|
|
9
|
+
case 1:
|
|
10
|
+
prefix += 'rdx';
|
|
11
|
+
break;
|
|
12
|
+
case 2:
|
|
13
|
+
prefix += 'tdx_2_';
|
|
14
|
+
break;
|
|
15
|
+
case 242:
|
|
16
|
+
prefix += 'sim';
|
|
17
|
+
break;
|
|
18
|
+
default:
|
|
19
|
+
prefix += `tdx_${networkId.toString(16)}_`;
|
|
20
|
+
}
|
|
21
|
+
return prefix;
|
|
22
|
+
};
|
|
23
|
+
export const generateNewEd25519VirtualAccount = async (privateKey, networkId) => {
|
|
24
|
+
const pk = new PrivateKey.Ed25519(new Uint8Array(Buffer.from(privateKey, 'hex')));
|
|
25
|
+
const publicKey = pk.publicKey();
|
|
26
|
+
const address = await LTSRadixEngineToolkit.Derive.virtualAccountAddress(publicKey, networkId);
|
|
27
|
+
return {
|
|
28
|
+
privateKey: pk,
|
|
29
|
+
publicKey,
|
|
30
|
+
address,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,qBAAqB,EACrB,UAAU,EAEV,SAAS,EACT,KAAK,EACL,EAAE,GACH,MAAM,gCAAgC,CAAC;AAIxC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAS,EAAE;IAC1C,OAAO,KAAK,CACV,SAAS,CAAC,EAAE,EACZ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvE,EAAE,CAAC,IAAI,CAAC,CACT,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;IACpD,uEAAuE;IACvE,IAAI,MAAM,GAAG,UAAU,CAAC;IAExB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC;YAChB,MAAM;QACR,KAAK,CAAC;YACJ,MAAM,IAAI,QAAQ,CAAC;YACnB,MAAM;QACR,KAAK,GAAG;YACN,MAAM,IAAI,KAAK,CAAC;YAChB,MAAM;QACR;YACE,MAAM,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,EACnD,UAAkB,EAClB,SAAiB,EACC,EAAE;IACpB,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,OAAO,CAC/B,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAC/C,CAAC;IACF,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,qBAAqB,CACtE,SAAS,EACT,SAAS,CACV,CAAC;IACF,OAAO;QACL,UAAU,EAAE,EAAE;QACd,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
import { RadixBase } from '../utils/base.js';
|
|
3
|
+
import { RadixWarpQuery } from './query.js';
|
|
4
|
+
export declare class RadixWarpPopulate {
|
|
5
|
+
protected gateway: GatewayApiClient;
|
|
6
|
+
protected base: RadixBase;
|
|
7
|
+
protected query: RadixWarpQuery;
|
|
8
|
+
protected packageAddress: string;
|
|
9
|
+
constructor(gateway: GatewayApiClient, base: RadixBase, query: RadixWarpQuery, packageAddress: string);
|
|
10
|
+
createCollateralToken({ from_address, mailbox, origin_denom, }: {
|
|
11
|
+
from_address: string;
|
|
12
|
+
mailbox: string;
|
|
13
|
+
origin_denom: string;
|
|
14
|
+
}): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
|
|
15
|
+
createSyntheticToken({ from_address, mailbox, name, symbol, description, divisibility, }: {
|
|
16
|
+
from_address: string;
|
|
17
|
+
mailbox: string;
|
|
18
|
+
name: string;
|
|
19
|
+
symbol: string;
|
|
20
|
+
description: string;
|
|
21
|
+
divisibility: number;
|
|
22
|
+
}): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
|
|
23
|
+
setTokenOwner({ from_address, token, new_owner, }: {
|
|
24
|
+
from_address: string;
|
|
25
|
+
token: string;
|
|
26
|
+
new_owner: string;
|
|
27
|
+
}): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
|
|
28
|
+
setTokenIsm({ from_address, token, ism, }: {
|
|
29
|
+
from_address: string;
|
|
30
|
+
token: string;
|
|
31
|
+
ism: string;
|
|
32
|
+
}): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
|
|
33
|
+
enrollRemoteRouter({ from_address, token, receiver_domain, receiver_address, gas, }: {
|
|
34
|
+
from_address: string;
|
|
35
|
+
token: string;
|
|
36
|
+
receiver_domain: number;
|
|
37
|
+
receiver_address: string;
|
|
38
|
+
gas: string;
|
|
39
|
+
}): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
|
|
40
|
+
unenrollRemoteRouter({ from_address, token, receiver_domain, }: {
|
|
41
|
+
from_address: string;
|
|
42
|
+
token: string;
|
|
43
|
+
receiver_domain: number;
|
|
44
|
+
}): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
|
|
45
|
+
remoteTransfer({ from_address, token, destination_domain, recipient, amount, max_fee, }: {
|
|
46
|
+
from_address: string;
|
|
47
|
+
token: string;
|
|
48
|
+
destination_domain: number;
|
|
49
|
+
recipient: string;
|
|
50
|
+
amount: string;
|
|
51
|
+
custom_hook_id: string;
|
|
52
|
+
gas_limit: string;
|
|
53
|
+
custom_hook_metadata: string;
|
|
54
|
+
max_fee: {
|
|
55
|
+
denom: string;
|
|
56
|
+
amount: string;
|
|
57
|
+
};
|
|
58
|
+
}): Promise<import("@radixdlt/radix-engine-toolkit").TransactionManifest>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=populate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../src/warp/populate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAmBrE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;gBAG/B,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,MAAM;IAQjB,qBAAqB,CAAC,EAC3B,YAAY,EACZ,OAAO,EACP,YAAY,GACb,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB;IAUM,oBAAoB,CAAC,EAC1B,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAW,EACX,YAAY,GACb,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB;IAmBY,aAAa,CAAC,EACzB,YAAY,EACZ,KAAK,EACL,SAAS,GACV,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB;IAeY,WAAW,CAAC,EACvB,YAAY,EACZ,KAAK,EACL,GAAG,GACJ,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb;IASY,kBAAkB,CAAC,EAC9B,YAAY,EACZ,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,GAAG,GACJ,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC;KACb;IASY,oBAAoB,CAAC,EAChC,YAAY,EACZ,KAAK,EACL,eAAe,GAChB,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;KACzB;IASY,cAAc,CAAC,EAC1B,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C;CA2CF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ManifestBuilder, ValueKind, address, array, bucket, decimal, enumeration, expression, str, u8, u32, } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
import { BigNumber } from 'bignumber.js';
|
|
3
|
+
import { Decimal } from 'decimal.js';
|
|
4
|
+
import { assert, strip0x } from '@hyperlane-xyz/utils';
|
|
5
|
+
import { INSTRUCTIONS } from '../utils/types.js';
|
|
6
|
+
import { bytes } from '../utils/utils.js';
|
|
7
|
+
export class RadixWarpPopulate {
|
|
8
|
+
gateway;
|
|
9
|
+
base;
|
|
10
|
+
query;
|
|
11
|
+
packageAddress;
|
|
12
|
+
constructor(gateway, base, query, packageAddress) {
|
|
13
|
+
this.gateway = gateway;
|
|
14
|
+
this.base = base;
|
|
15
|
+
this.query = query;
|
|
16
|
+
this.packageAddress = packageAddress;
|
|
17
|
+
}
|
|
18
|
+
createCollateralToken({ from_address, mailbox, origin_denom, }) {
|
|
19
|
+
return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'HypToken', INSTRUCTIONS.INSTANTIATE, [enumeration(0, address(origin_denom)), address(mailbox)]);
|
|
20
|
+
}
|
|
21
|
+
createSyntheticToken({ from_address, mailbox, name, symbol, description, divisibility, }) {
|
|
22
|
+
return this.base.createCallFunctionManifest(from_address, this.packageAddress, 'HypToken', INSTRUCTIONS.INSTANTIATE, [
|
|
23
|
+
enumeration(1, str(name), str(symbol), str(description), u8(divisibility)),
|
|
24
|
+
address(mailbox),
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
async setTokenOwner({ from_address, token, new_owner, }) {
|
|
28
|
+
const details = await this.gateway.state.getEntityDetailsVaultAggregated(token);
|
|
29
|
+
const resource = details.details.role_assignments.owner
|
|
30
|
+
.rule.access_rule.proof_rule.requirement.resource;
|
|
31
|
+
return this.base.transfer({
|
|
32
|
+
from_address,
|
|
33
|
+
to_address: new_owner,
|
|
34
|
+
resource_address: resource,
|
|
35
|
+
amount: '1',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async setTokenIsm({ from_address, token, ism, }) {
|
|
39
|
+
return this.base.createCallMethodManifestWithOwner(from_address, token, 'set_ism', [enumeration(1, address(ism))]);
|
|
40
|
+
}
|
|
41
|
+
async enrollRemoteRouter({ from_address, token, receiver_domain, receiver_address, gas, }) {
|
|
42
|
+
return this.base.createCallMethodManifestWithOwner(from_address, token, 'enroll_remote_router', [u32(receiver_domain), bytes(strip0x(receiver_address)), decimal(gas)]);
|
|
43
|
+
}
|
|
44
|
+
async unenrollRemoteRouter({ from_address, token, receiver_domain, }) {
|
|
45
|
+
return this.base.createCallMethodManifestWithOwner(from_address, token, 'unroll_remote_router', [u32(receiver_domain)]);
|
|
46
|
+
}
|
|
47
|
+
async remoteTransfer({ from_address, token, destination_domain, recipient, amount, max_fee, }) {
|
|
48
|
+
const { origin_denom, divisibility } = await this.query.getToken({ token });
|
|
49
|
+
const tokenAmount = new Decimal(new BigNumber(amount)
|
|
50
|
+
.dividedBy(new BigNumber(10).pow(divisibility))
|
|
51
|
+
.toFixed(divisibility));
|
|
52
|
+
assert(origin_denom, `no origin_denom found on token ${token}`);
|
|
53
|
+
return new ManifestBuilder()
|
|
54
|
+
.callMethod(from_address, INSTRUCTIONS.WITHDRAW, [
|
|
55
|
+
address(origin_denom),
|
|
56
|
+
decimal(tokenAmount),
|
|
57
|
+
])
|
|
58
|
+
.callMethod(from_address, INSTRUCTIONS.WITHDRAW, [
|
|
59
|
+
address(max_fee.denom),
|
|
60
|
+
decimal(max_fee.amount),
|
|
61
|
+
])
|
|
62
|
+
.takeFromWorktop(origin_denom, tokenAmount, (builder1, bucketId1) => builder1.takeFromWorktop(max_fee.denom, new Decimal(max_fee.amount), (builder2, bucketId2) => builder2
|
|
63
|
+
.callMethod(token, 'transfer_remote', [
|
|
64
|
+
u32(destination_domain),
|
|
65
|
+
bytes(recipient),
|
|
66
|
+
bucket(bucketId1),
|
|
67
|
+
array(ValueKind.Bucket, bucket(bucketId2)),
|
|
68
|
+
enumeration(0),
|
|
69
|
+
enumeration(0),
|
|
70
|
+
])
|
|
71
|
+
.callMethod(from_address, INSTRUCTIONS.TRY_DEPOSIT_BATCH_OR_ABORT, [expression('EntireWorktop'), enumeration(0)])))
|
|
72
|
+
.build();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=populate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populate.js","sourceRoot":"","sources":["../../src/warp/populate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
|
|
2
|
+
import { RadixBase } from '../utils/base.js';
|
|
3
|
+
export declare class RadixWarpQuery {
|
|
4
|
+
protected networkId: number;
|
|
5
|
+
protected gateway: GatewayApiClient;
|
|
6
|
+
protected base: RadixBase;
|
|
7
|
+
constructor(networkId: number, gateway: GatewayApiClient, base: RadixBase);
|
|
8
|
+
getToken({ token }: {
|
|
9
|
+
token: string;
|
|
10
|
+
}): Promise<{
|
|
11
|
+
address: string;
|
|
12
|
+
owner: string;
|
|
13
|
+
token_type: 'Collateral' | 'Synthetic';
|
|
14
|
+
mailbox: string;
|
|
15
|
+
ism: string;
|
|
16
|
+
origin_denom: string;
|
|
17
|
+
name: string;
|
|
18
|
+
symbol: string;
|
|
19
|
+
description: string;
|
|
20
|
+
divisibility: number;
|
|
21
|
+
}>;
|
|
22
|
+
getRemoteRouters({ token }: {
|
|
23
|
+
token: string;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
address: string;
|
|
26
|
+
remote_routers: {
|
|
27
|
+
receiver_domain: string;
|
|
28
|
+
receiver_contract: string;
|
|
29
|
+
gas: string;
|
|
30
|
+
}[];
|
|
31
|
+
}>;
|
|
32
|
+
getBridgedSupply({ token }: {
|
|
33
|
+
token: string;
|
|
34
|
+
}): Promise<bigint>;
|
|
35
|
+
quoteRemoteTransfer({ token, destination_domain, }: {
|
|
36
|
+
token: string;
|
|
37
|
+
destination_domain: number;
|
|
38
|
+
}): Promise<{
|
|
39
|
+
resource: string;
|
|
40
|
+
amount: bigint;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/warp/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAUrE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,qBAAa,cAAc;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;gBAEd,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS;IAM5D,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,YAAY,GAAG,WAAW,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IA0EW,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACnE,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE;YACd,eAAe,EAAE,MAAM,CAAC;YACxB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,GAAG,EAAE,MAAM,CAAC;SACb,EAAE,CAAC;KACL,CAAC;IA2DW,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB/D,mBAAmB,CAAC,EAC/B,KAAK,EACL,kBAAkB,GACnB,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CA0DlD"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { PrivateKey, generateRandomNonce, } from '@radixdlt/radix-engine-toolkit';
|
|
2
|
+
import { BigNumber } from 'bignumber.js';
|
|
3
|
+
import { utils } from 'ethers';
|
|
4
|
+
import { assert } from '@hyperlane-xyz/utils';
|
|
5
|
+
export class RadixWarpQuery {
|
|
6
|
+
networkId;
|
|
7
|
+
gateway;
|
|
8
|
+
base;
|
|
9
|
+
constructor(networkId, gateway, base) {
|
|
10
|
+
this.networkId = networkId;
|
|
11
|
+
this.gateway = gateway;
|
|
12
|
+
this.base = base;
|
|
13
|
+
}
|
|
14
|
+
async getToken({ token }) {
|
|
15
|
+
const details = await this.gateway.state.getEntityDetailsVaultAggregated(token);
|
|
16
|
+
assert(details.details.blueprint_name === 'HypToken', `Expected contract at address ${token} to be "HypToken" but got ${details.details.blueprint_name}`);
|
|
17
|
+
const ownerResource = details.details.role_assignments
|
|
18
|
+
.owner.rule.access_rule.proof_rule.requirement.resource;
|
|
19
|
+
const { items } = await this.gateway.extensions.getResourceHolders(ownerResource);
|
|
20
|
+
const resourceHolders = [
|
|
21
|
+
...new Set(items.map((item) => item.holder_address)),
|
|
22
|
+
];
|
|
23
|
+
assert(resourceHolders.length === 1, `expected token holders of resource ${ownerResource} to be one, found ${resourceHolders.length} holders instead`);
|
|
24
|
+
const fields = details.details.state.fields;
|
|
25
|
+
const token_type = fields.find((f) => f.field_name === 'token_type')?.variant_name ?? '';
|
|
26
|
+
assert(token_type === 'Collateral' || token_type === 'Synthetic', `unknown token type: ${token_type}`);
|
|
27
|
+
const ismFields = fields.find((f) => f.field_name === 'ism')?.fields ?? [];
|
|
28
|
+
const tokenTypeFields = fields.find((f) => f.field_name === 'token_type')?.fields ?? [];
|
|
29
|
+
let origin_denom;
|
|
30
|
+
let metadata = {
|
|
31
|
+
name: '',
|
|
32
|
+
symbol: '',
|
|
33
|
+
description: '',
|
|
34
|
+
divisibility: 0,
|
|
35
|
+
};
|
|
36
|
+
if (token_type === 'Collateral') {
|
|
37
|
+
origin_denom =
|
|
38
|
+
tokenTypeFields.find((t) => t.type_name === 'ResourceAddress')?.value ??
|
|
39
|
+
'';
|
|
40
|
+
metadata = await this.base.getMetadata({ resource: origin_denom });
|
|
41
|
+
}
|
|
42
|
+
else if (token_type === 'Synthetic') {
|
|
43
|
+
origin_denom =
|
|
44
|
+
(fields.find((f) => f.field_name === 'resource_manager')?.fields ?? []).find((r) => r.type_name === 'ResourceAddress')?.value ?? '';
|
|
45
|
+
metadata = await this.base.getMetadata({ resource: origin_denom });
|
|
46
|
+
}
|
|
47
|
+
const result = {
|
|
48
|
+
address: token,
|
|
49
|
+
owner: resourceHolders[0],
|
|
50
|
+
token_type: token_type,
|
|
51
|
+
mailbox: fields.find((f) => f.field_name === 'mailbox')?.value ?? '',
|
|
52
|
+
ism: ismFields[0]?.value ?? '',
|
|
53
|
+
origin_denom,
|
|
54
|
+
...metadata,
|
|
55
|
+
};
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
async getRemoteRouters({ token }) {
|
|
59
|
+
const details = await this.gateway.state.getEntityDetailsVaultAggregated(token);
|
|
60
|
+
assert(details.details.blueprint_name === 'HypToken', `Expected contract at address ${token} to be "HypToken" but got ${details.details.blueprint_name}`);
|
|
61
|
+
const fields = details.details.state.fields;
|
|
62
|
+
const enrolledRoutersKeyValueStore = fields.find((f) => f.field_name === 'enrolled_routers')?.value ?? '';
|
|
63
|
+
assert(enrolledRoutersKeyValueStore, `found no enrolled routers on token ${token}`);
|
|
64
|
+
const remote_routers = [];
|
|
65
|
+
const { items } = await this.gateway.state.innerClient.keyValueStoreKeys({
|
|
66
|
+
stateKeyValueStoreKeysRequest: {
|
|
67
|
+
key_value_store_address: enrolledRoutersKeyValueStore,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
for (const { key } of items) {
|
|
71
|
+
const { entries } = await this.gateway.state.innerClient.keyValueStoreData({
|
|
72
|
+
stateKeyValueStoreDataRequest: {
|
|
73
|
+
key_value_store_address: enrolledRoutersKeyValueStore,
|
|
74
|
+
keys: [
|
|
75
|
+
{
|
|
76
|
+
key_hex: key.raw_hex,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
const routerFields = entries[0].value.programmatic_json?.fields ?? [];
|
|
82
|
+
remote_routers.push({
|
|
83
|
+
receiver_domain: routerFields.find((r) => r.field_name === 'domain')?.value ?? '',
|
|
84
|
+
receiver_contract: routerFields.find((r) => r.field_name === 'recipient')?.hex ?? '',
|
|
85
|
+
gas: routerFields.find((r) => r.field_name === 'gas')?.value ?? '',
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const result = {
|
|
89
|
+
address: token,
|
|
90
|
+
remote_routers,
|
|
91
|
+
};
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
async getBridgedSupply({ token }) {
|
|
95
|
+
const { token_type, origin_denom } = await this.getToken({ token });
|
|
96
|
+
switch (token_type) {
|
|
97
|
+
case 'Collateral': {
|
|
98
|
+
// if the token is collateral we get the token contract balance
|
|
99
|
+
// of the origin denom
|
|
100
|
+
return this.base.getBalance({ address: token, resource: origin_denom });
|
|
101
|
+
}
|
|
102
|
+
case 'Synthetic': {
|
|
103
|
+
// if the token is synthetic we get the total supply of the synthetic
|
|
104
|
+
// resource
|
|
105
|
+
return this.base.getTotalSupply({ resource: origin_denom });
|
|
106
|
+
}
|
|
107
|
+
default: {
|
|
108
|
+
throw new Error(`unknown token type: ${token_type}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async quoteRemoteTransfer({ token, destination_domain, }) {
|
|
113
|
+
const pk = new PrivateKey.Ed25519(new Uint8Array(utils.randomBytes(32)));
|
|
114
|
+
const constructionMetadata = await this.gateway.transaction.innerClient.transactionConstruction();
|
|
115
|
+
const response = await this.gateway.transaction.innerClient.transactionPreview({
|
|
116
|
+
transactionPreviewRequest: {
|
|
117
|
+
manifest: `
|
|
118
|
+
CALL_METHOD
|
|
119
|
+
Address("${token}")
|
|
120
|
+
"quote_remote_transfer"
|
|
121
|
+
${destination_domain}u32
|
|
122
|
+
Bytes("0000000000000000000000000000000000000000000000000000000000000000")
|
|
123
|
+
Decimal("0")
|
|
124
|
+
;
|
|
125
|
+
`,
|
|
126
|
+
nonce: generateRandomNonce(),
|
|
127
|
+
signer_public_keys: [
|
|
128
|
+
{
|
|
129
|
+
key_type: 'EddsaEd25519',
|
|
130
|
+
key_hex: pk.publicKeyHex(),
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
flags: {
|
|
134
|
+
use_free_credit: true,
|
|
135
|
+
},
|
|
136
|
+
start_epoch_inclusive: constructionMetadata.ledger_state.epoch,
|
|
137
|
+
end_epoch_exclusive: constructionMetadata.ledger_state.epoch + 2,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
assert(!response.receipt.error_message, `${response.receipt.error_message}`);
|
|
141
|
+
const output = response.receipt.output;
|
|
142
|
+
assert(output.length, `found no output for quote_remote_transfer method`);
|
|
143
|
+
const entries = output[0].programmatic_json.entries;
|
|
144
|
+
assert(entries.length > 0, `quote_remote_transfer returned no resources`);
|
|
145
|
+
assert(entries.length < 2, `quote_remote_transfer returned multiple resources`);
|
|
146
|
+
return {
|
|
147
|
+
resource: entries[0].key.value,
|
|
148
|
+
amount: BigInt(new BigNumber(entries[0].value.value)
|
|
149
|
+
.times(new BigNumber(10).pow(18))
|
|
150
|
+
.integerValue(BigNumber.ROUND_FLOOR)
|
|
151
|
+
.toFixed(0)),
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/warp/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { RadixBase } from '../utils/base.js';
|
|
2
|
+
import { RadixSigner } from '../utils/signer.js';
|
|
3
|
+
import { Account } from '../utils/types.js';
|
|
4
|
+
import { RadixWarpPopulate } from './populate.js';
|
|
5
|
+
export declare class RadixWarpTx {
|
|
6
|
+
private account;
|
|
7
|
+
protected base: RadixBase;
|
|
8
|
+
protected populate: RadixWarpPopulate;
|
|
9
|
+
protected signer: RadixSigner;
|
|
10
|
+
constructor(account: Account, base: RadixBase, signer: RadixSigner, populate: RadixWarpPopulate);
|
|
11
|
+
createCollateralToken({ mailbox, origin_denom, }: {
|
|
12
|
+
mailbox: string;
|
|
13
|
+
origin_denom: string;
|
|
14
|
+
}): Promise<string>;
|
|
15
|
+
createSyntheticToken({ mailbox, name, symbol, description, divisibility, }: {
|
|
16
|
+
mailbox: string;
|
|
17
|
+
name: string;
|
|
18
|
+
symbol: string;
|
|
19
|
+
description: string;
|
|
20
|
+
divisibility: number;
|
|
21
|
+
}): Promise<string>;
|
|
22
|
+
setTokenOwner({ token, new_owner, }: {
|
|
23
|
+
token: string;
|
|
24
|
+
new_owner: string;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
setTokenIsm({ token, ism }: {
|
|
27
|
+
token: string;
|
|
28
|
+
ism: string;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
enrollRemoteRouter({ token, receiver_domain, receiver_address, gas, }: {
|
|
31
|
+
token: string;
|
|
32
|
+
receiver_domain: number;
|
|
33
|
+
receiver_address: string;
|
|
34
|
+
gas: string;
|
|
35
|
+
}): Promise<void>;
|
|
36
|
+
unenrollRemoteRouter({ token, receiver_domain, }: {
|
|
37
|
+
token: string;
|
|
38
|
+
receiver_domain: number;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
remoteTransfer({ token, destination_domain, recipient, amount, custom_hook_id, gas_limit, custom_hook_metadata, max_fee, }: {
|
|
41
|
+
token: string;
|
|
42
|
+
destination_domain: number;
|
|
43
|
+
recipient: string;
|
|
44
|
+
amount: string;
|
|
45
|
+
custom_hook_id: string;
|
|
46
|
+
gas_limit: string;
|
|
47
|
+
custom_hook_metadata: string;
|
|
48
|
+
max_fee: {
|
|
49
|
+
denom: string;
|
|
50
|
+
amount: string;
|
|
51
|
+
};
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/warp/tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAU;IAEzB,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAG5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB;IAQhB,qBAAqB,CAAC,EACjC,OAAO,EACP,YAAY,GACb,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB;IAaY,oBAAoB,CAAC,EAChC,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAW,EACX,YAAY,GACb,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB;IAgBY,aAAa,CAAC,EACzB,KAAK,EACL,SAAS,GACV,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB;IAUY,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAU1D,kBAAkB,CAAC,EAC9B,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,GAAG,GACJ,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC;KACb;IAYY,oBAAoB,CAAC,EAChC,KAAK,EACL,eAAe,GAChB,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;KACzB;IAUY,cAAc,CAAC,EAC1B,KAAK,EACL,kBAAkB,EAClB,SAAS,EACT,MAAM,EACN,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,OAAO,GACR,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C;CAeF"}
|