@fairmint/canton-node-sdk 0.0.51 → 0.0.52
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/build/src/utils/amulet/mining-rounds.d.ts +24 -0
- package/build/src/utils/amulet/mining-rounds.d.ts.map +1 -0
- package/build/src/utils/amulet/mining-rounds.js +47 -0
- package/build/src/utils/amulet/mining-rounds.js.map +1 -0
- package/build/src/utils/amulet/pre-approve-transfers.d.ts.map +1 -1
- package/build/src/utils/amulet/pre-approve-transfers.js +8 -11
- package/build/src/utils/amulet/pre-approve-transfers.js.map +1 -1
- package/build/src/utils/amulet/transfer-to-preapproved.d.ts.map +1 -1
- package/build/src/utils/amulet/transfer-to-preapproved.js +6 -12
- package/build/src/utils/amulet/transfer-to-preapproved.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ContractInfo } from './disclosed-contracts';
|
|
2
|
+
import { ValidatorApiClient } from '../../clients/validator-api';
|
|
3
|
+
/**
|
|
4
|
+
* Context information derived from open / issuing mining rounds.
|
|
5
|
+
*/
|
|
6
|
+
export interface MiningRoundContext {
|
|
7
|
+
/** Contract ID of the open mining round to reference in commands */
|
|
8
|
+
openMiningRound: string;
|
|
9
|
+
/** Contract information (for disclosed contracts) of the open mining round */
|
|
10
|
+
openMiningRoundContract: ContractInfo;
|
|
11
|
+
/** Issuing mining rounds formatted for command arguments */
|
|
12
|
+
issuingMiningRounds: Array<{
|
|
13
|
+
round: number;
|
|
14
|
+
contractId: string;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Finds the latest mining round that is currently open (\`opensAt\` is in the past)
|
|
19
|
+
* and returns useful context information.
|
|
20
|
+
*
|
|
21
|
+
* @throws Error if no mining round satisfies the criteria
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCurrentMiningRoundContext(validatorClient: ValidatorApiClient): Promise<MiningRoundContext>;
|
|
24
|
+
//# sourceMappingURL=mining-rounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mining-rounds.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/mining-rounds.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,uBAAuB,EAAE,YAAY,CAAC;IACtC,4DAA4D;IAC5D,mBAAmB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CA2C7B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCurrentMiningRoundContext = getCurrentMiningRoundContext;
|
|
4
|
+
/**
|
|
5
|
+
* Finds the latest mining round that is currently open (\`opensAt\` is in the past)
|
|
6
|
+
* and returns useful context information.
|
|
7
|
+
*
|
|
8
|
+
* @throws Error if no mining round satisfies the criteria
|
|
9
|
+
*/
|
|
10
|
+
async function getCurrentMiningRoundContext(validatorClient) {
|
|
11
|
+
const miningRoundsResponse = await validatorClient.getOpenAndIssuingMiningRounds();
|
|
12
|
+
// Filter for rounds that have opened already (opensAt <= now)
|
|
13
|
+
const now = new Date();
|
|
14
|
+
const validOpenRounds = miningRoundsResponse.open_mining_rounds.filter(round => {
|
|
15
|
+
try {
|
|
16
|
+
const opensAtRaw = round?.contract?.payload?.opensAt;
|
|
17
|
+
if (!opensAtRaw)
|
|
18
|
+
return false;
|
|
19
|
+
const opensAt = new Date(opensAtRaw);
|
|
20
|
+
return opensAt <= now;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
if (validOpenRounds.length === 0) {
|
|
27
|
+
throw new Error('No open mining rounds found with opensAt <= now');
|
|
28
|
+
}
|
|
29
|
+
// Use the *last* round that has opened (the most recent open one)
|
|
30
|
+
const lastOpenRound = validOpenRounds[validOpenRounds.length - 1];
|
|
31
|
+
const openMiningRoundContract = {
|
|
32
|
+
contractId: lastOpenRound.contract.contract_id,
|
|
33
|
+
templateId: lastOpenRound.contract.template_id,
|
|
34
|
+
createdEventBlob: lastOpenRound.contract.created_event_blob,
|
|
35
|
+
synchronizerId: lastOpenRound.domain_id, // Using domainId as synchronizerId (legacy behaviour)
|
|
36
|
+
};
|
|
37
|
+
const issuingMiningRounds = (miningRoundsResponse.issuing_mining_rounds || []).map((round) => ({
|
|
38
|
+
round: round.round_number,
|
|
39
|
+
contractId: (round.contract_id ?? round.contract?.contract_id),
|
|
40
|
+
}));
|
|
41
|
+
return {
|
|
42
|
+
openMiningRound: openMiningRoundContract.contractId,
|
|
43
|
+
openMiningRoundContract,
|
|
44
|
+
issuingMiningRounds,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=mining-rounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mining-rounds.js","sourceRoot":"","sources":["../../../../src/utils/amulet/mining-rounds.ts"],"names":[],"mappings":";;AAsBA,oEA6CC;AAnDD;;;;;GAKG;AACI,KAAK,UAAU,4BAA4B,CAChD,eAAmC;IAEnC,MAAM,oBAAoB,GACxB,MAAM,eAAe,CAAC,6BAA6B,EAAE,CAAC;IAExD,8DAA8D;IAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC7E,IAAI,CAAC;YACH,MAAM,UAAU,GAAI,KAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAA6B,CAAC;YACpF,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,OAAO,OAAO,IAAI,GAAG,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,kEAAkE;IAClE,MAAM,aAAa,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAQ,CAAC;IAEzE,MAAM,uBAAuB,GAAiB;QAC5C,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW;QAC9C,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW;QAC9C,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,kBAAkB;QAC3D,cAAc,EAAE,aAAa,CAAC,SAAS,EAAE,sDAAsD;KAChG,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,GAAG,CAChF,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;QACf,KAAK,EAAE,KAAK,CAAC,YAAsB;QACnC,UAAU,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAW;KACzE,CAAC,CACH,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,uBAAuB,CAAC,UAAU;QACnD,uBAAuB;QACvB,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-approve-transfers.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-approve-transfers.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE,MAAM,WAAW,yBAAyB;IACxC,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,SAAS,EAAE,IAAI,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,4FAA4F;IAC5F,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACnE,eAAe,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACvE,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClF,gBAAgB,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;KACzE,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CA+GpC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.preApproveTransfers = preApproveTransfers;
|
|
4
4
|
const disclosed_contracts_1 = require("./disclosed-contracts");
|
|
5
|
+
const mining_rounds_1 = require("./mining-rounds");
|
|
5
6
|
/**
|
|
6
7
|
* Creates a TransferPreapproval contract to enable pre-approved transfers for a party
|
|
7
8
|
*
|
|
@@ -13,29 +14,25 @@ const disclosed_contracts_1 = require("./disclosed-contracts");
|
|
|
13
14
|
async function preApproveTransfers(ledgerClient, validatorClient, params) {
|
|
14
15
|
console.log('🔍 Fetching network information...');
|
|
15
16
|
// Get network information
|
|
16
|
-
const [amuletRules, dsoPartyId,
|
|
17
|
+
const [amuletRules, dsoPartyId, miningRoundContext, featuredAppRight] = await Promise.all([
|
|
17
18
|
validatorClient.getAmuletRules(),
|
|
18
19
|
validatorClient.getDsoPartyId(),
|
|
19
|
-
|
|
20
|
+
(0, mining_rounds_1.getCurrentMiningRoundContext)(validatorClient),
|
|
20
21
|
validatorClient.lookupFeaturedAppRight({ partyId: params.providerPartyId })
|
|
21
22
|
]);
|
|
22
23
|
console.log('📊 Network information fetched:');
|
|
23
24
|
console.log(` Amulet Rules Contract ID: ${amuletRules.amulet_rules.contract.contract_id}`);
|
|
24
25
|
console.log(` DSO Party ID: ${dsoPartyId.dso_party_id}`);
|
|
25
|
-
console.log(` Open Mining Rounds:
|
|
26
|
-
console.log(` Issuing Mining Rounds: ${
|
|
26
|
+
console.log(` Open Mining Rounds: 1`);
|
|
27
|
+
console.log(` Issuing Mining Rounds: ${miningRoundContext.issuingMiningRounds.length}`);
|
|
27
28
|
console.log(` Featured App Right: ${featuredAppRight.featured_app_right ? 'Found' : 'Not found'}`);
|
|
28
|
-
//
|
|
29
|
-
const openMiningRoundContractId =
|
|
30
|
-
if (!openMiningRoundContractId) {
|
|
31
|
-
console.error('❌ No open mining rounds found. Available rounds:', JSON.stringify(miningRounds, null, 2));
|
|
32
|
-
throw new Error('No open mining rounds available');
|
|
33
|
-
}
|
|
29
|
+
// Derive current mining round context (handles opensAt logic)
|
|
30
|
+
const { openMiningRound: openMiningRoundContractId, openMiningRoundContract } = miningRoundContext;
|
|
34
31
|
console.log(`✅ Using open mining round: ${openMiningRoundContractId}`);
|
|
35
32
|
// Build disclosed contracts
|
|
36
33
|
const disclosedContractsParams = {
|
|
37
34
|
amuletRules: (0, disclosed_contracts_1.createContractInfo)(amuletRules.amulet_rules.contract.contract_id, amuletRules.amulet_rules.contract.created_event_blob, amuletRules.amulet_rules.domain_id || '', amuletRules.amulet_rules.contract.template_id),
|
|
38
|
-
openMiningRound: (0, disclosed_contracts_1.createContractInfo)(
|
|
35
|
+
openMiningRound: (0, disclosed_contracts_1.createContractInfo)(openMiningRoundContract.contractId, openMiningRoundContract.createdEventBlob, openMiningRoundContract.synchronizerId, openMiningRoundContract.templateId),
|
|
39
36
|
};
|
|
40
37
|
if (featuredAppRight.featured_app_right) {
|
|
41
38
|
disclosedContractsParams.featuredAppRight = (0, disclosed_contracts_1.createContractInfo)(featuredAppRight.featured_app_right.contract_id, featuredAppRight.featured_app_right.created_event_blob, featuredAppRight.featured_app_right.domain_id, featuredAppRight.featured_app_right.template_id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-approve-transfers.js","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"pre-approve-transfers.js","sourceRoot":"","sources":["../../../../src/utils/amulet/pre-approve-transfers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-to-preapproved.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"transfer-to-preapproved.d.ts","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAIjE,MAAM,WAAW,2BAA2B;IAC1C,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,6BAA6B,EAAE,MAAM,CAAC;IACtC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,4FAA4F;IAC5F,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACnE,eAAe,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;QACvE,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClF,gBAAgB,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;KACzE,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,EAAE,GAAG,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CAwGtC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transferToPreapproved = transferToPreapproved;
|
|
4
|
+
const mining_rounds_1 = require("./mining-rounds");
|
|
4
5
|
/**
|
|
5
6
|
* Transfers coins to a party that has pre-approved transfers enabled
|
|
6
7
|
*
|
|
@@ -11,16 +12,12 @@ exports.transferToPreapproved = transferToPreapproved;
|
|
|
11
12
|
*/
|
|
12
13
|
async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
13
14
|
// Get network information
|
|
14
|
-
const [amuletRules,
|
|
15
|
+
const [amuletRules, miningRoundContext, featuredAppRight] = await Promise.all([
|
|
15
16
|
validatorClient.getAmuletRules(),
|
|
16
|
-
|
|
17
|
+
(0, mining_rounds_1.getCurrentMiningRoundContext)(validatorClient),
|
|
17
18
|
validatorClient.lookupFeaturedAppRight({ partyId: params.senderPartyId })
|
|
18
19
|
]);
|
|
19
|
-
|
|
20
|
-
const openMiningRoundContractId = miningRounds.open_mining_rounds[0]?.contract?.contract_id;
|
|
21
|
-
if (!openMiningRoundContractId) {
|
|
22
|
-
throw new Error('No open mining rounds available');
|
|
23
|
-
}
|
|
20
|
+
const { openMiningRound: openMiningRoundContractId, issuingMiningRounds, } = miningRoundContext;
|
|
24
21
|
// Create the transfer command using TransferPreapproval_Send
|
|
25
22
|
const transferCommand = {
|
|
26
23
|
ExerciseCommand: {
|
|
@@ -32,10 +29,7 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
|
32
29
|
amuletRules: amuletRules.amulet_rules.contract.contract_id,
|
|
33
30
|
context: {
|
|
34
31
|
openMiningRound: openMiningRoundContractId,
|
|
35
|
-
issuingMiningRounds
|
|
36
|
-
round: round.round_number,
|
|
37
|
-
contractId: round.contract_id
|
|
38
|
-
})),
|
|
32
|
+
issuingMiningRounds,
|
|
39
33
|
validatorRights: [],
|
|
40
34
|
featuredAppRight: featuredAppRight.featured_app_right?.contract_id || null
|
|
41
35
|
}
|
|
@@ -71,7 +65,7 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
|
71
65
|
// Add issuing mining rounds contracts
|
|
72
66
|
if (params.contractDetails.issuingMiningRounds) {
|
|
73
67
|
params.contractDetails.issuingMiningRounds.forEach((details, index) => {
|
|
74
|
-
const contractId =
|
|
68
|
+
const contractId = issuingMiningRounds[index]?.contractId;
|
|
75
69
|
if (contractId) {
|
|
76
70
|
disclosedContracts.push({
|
|
77
71
|
contractId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-to-preapproved.js","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transfer-to-preapproved.js","sourceRoot":"","sources":["../../../../src/utils/amulet/transfer-to-preapproved.ts"],"names":[],"mappings":"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"}
|