@fairmint/canton-node-sdk 0.0.52 → 0.0.54
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.
|
@@ -32,6 +32,11 @@ export interface TransferToPreapprovedParams {
|
|
|
32
32
|
createdEventBlob: string;
|
|
33
33
|
synchronizerId: string;
|
|
34
34
|
};
|
|
35
|
+
/** TransferPreapproval contract details (optional) */
|
|
36
|
+
transferPreapproval?: {
|
|
37
|
+
createdEventBlob: string;
|
|
38
|
+
synchronizerId: string;
|
|
39
|
+
};
|
|
35
40
|
};
|
|
36
41
|
}
|
|
37
42
|
export interface TransferToPreapprovedResult {
|
|
@@ -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;AAKjE,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;QACxE,sDAAsD;QACtD,mBAAmB,CAAC,EAAE;YAAE,gBAAgB,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5E,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,CAgHtC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transferToPreapproved = transferToPreapproved;
|
|
4
4
|
const mining_rounds_1 = require("./mining-rounds");
|
|
5
|
+
const disclosed_contracts_1 = require("./disclosed-contracts");
|
|
5
6
|
/**
|
|
6
7
|
* Transfers coins to a party that has pre-approved transfers enabled
|
|
7
8
|
*
|
|
@@ -17,7 +18,7 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
|
17
18
|
(0, mining_rounds_1.getCurrentMiningRoundContext)(validatorClient),
|
|
18
19
|
validatorClient.lookupFeaturedAppRight({ partyId: params.senderPartyId })
|
|
19
20
|
]);
|
|
20
|
-
const { openMiningRound: openMiningRoundContractId,
|
|
21
|
+
const { openMiningRound: openMiningRoundContractId, } = miningRoundContext;
|
|
21
22
|
// Create the transfer command using TransferPreapproval_Send
|
|
22
23
|
const transferCommand = {
|
|
23
24
|
ExerciseCommand: {
|
|
@@ -29,7 +30,7 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
|
29
30
|
amuletRules: amuletRules.amulet_rules.contract.contract_id,
|
|
30
31
|
context: {
|
|
31
32
|
openMiningRound: openMiningRoundContractId,
|
|
32
|
-
issuingMiningRounds,
|
|
33
|
+
issuingMiningRounds: [],
|
|
33
34
|
validatorRights: [],
|
|
34
35
|
featuredAppRight: featuredAppRight.featured_app_right?.contract_id || null
|
|
35
36
|
}
|
|
@@ -41,63 +42,53 @@ async function transferToPreapproved(ledgerClient, validatorClient, params) {
|
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
|
-
// Build disclosed contracts
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
// Add open mining round contract
|
|
58
|
-
if (openMiningRoundContractId && params.contractDetails.openMiningRound) {
|
|
59
|
-
disclosedContracts.push({
|
|
60
|
-
contractId: openMiningRoundContractId,
|
|
61
|
-
createdEventBlob: params.contractDetails.openMiningRound.createdEventBlob,
|
|
62
|
-
synchronizerId: params.contractDetails.openMiningRound.synchronizerId,
|
|
45
|
+
// Build disclosed contracts – always disclose required contracts, falling back to network lookups when
|
|
46
|
+
// explicit contractDetails are not provided.
|
|
47
|
+
// Determine TransferPreapproval contract info (createdEventBlob & synchronizerId)
|
|
48
|
+
let transferPreapprovalContractInfo;
|
|
49
|
+
if (params.contractDetails?.transferPreapproval) {
|
|
50
|
+
transferPreapprovalContractInfo = (0, disclosed_contracts_1.createContractInfo)(params.transferPreapprovalContractId, params.contractDetails.transferPreapproval.createdEventBlob, params.contractDetails.transferPreapproval.synchronizerId);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
try {
|
|
54
|
+
const preapprovalEvents = await ledgerClient.getEventsByContractId({
|
|
55
|
+
contractId: params.transferPreapprovalContractId,
|
|
63
56
|
});
|
|
57
|
+
const createdEventBlob = preapprovalEvents?.created?.createdEvent?.createdEventBlob;
|
|
58
|
+
const synchronizerId = preapprovalEvents?.created?.synchronizerId;
|
|
59
|
+
const templateId = preapprovalEvents?.created?.createdEvent?.templateId;
|
|
60
|
+
if (createdEventBlob && synchronizerId) {
|
|
61
|
+
transferPreapprovalContractInfo = (0, disclosed_contracts_1.createContractInfo)(params.transferPreapprovalContractId, createdEventBlob, synchronizerId, templateId);
|
|
62
|
+
}
|
|
64
63
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
params.contractDetails.issuingMiningRounds.forEach((details, index) => {
|
|
68
|
-
const contractId = issuingMiningRounds[index]?.contractId;
|
|
69
|
-
if (contractId) {
|
|
70
|
-
disclosedContracts.push({
|
|
71
|
-
contractId,
|
|
72
|
-
createdEventBlob: details.createdEventBlob,
|
|
73
|
-
synchronizerId: details.synchronizerId,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
// Add featured app right contract
|
|
79
|
-
if (featuredAppRight.featured_app_right?.contract_id && params.contractDetails.featuredAppRight) {
|
|
80
|
-
disclosedContracts.push({
|
|
81
|
-
contractId: featuredAppRight.featured_app_right.contract_id,
|
|
82
|
-
createdEventBlob: params.contractDetails.featuredAppRight.createdEventBlob,
|
|
83
|
-
synchronizerId: params.contractDetails.featuredAppRight.synchronizerId,
|
|
84
|
-
});
|
|
64
|
+
catch {
|
|
65
|
+
// Ignore fetch errors – the contract may be on the same synchronizer and not require disclosure
|
|
85
66
|
}
|
|
86
67
|
}
|
|
68
|
+
// Build the full disclosed contracts list
|
|
69
|
+
const disclosedContractsParams = {
|
|
70
|
+
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),
|
|
71
|
+
openMiningRound: miningRoundContext.openMiningRoundContract,
|
|
72
|
+
};
|
|
73
|
+
if (featuredAppRight.featured_app_right) {
|
|
74
|
+
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);
|
|
75
|
+
}
|
|
76
|
+
if (transferPreapprovalContractInfo) {
|
|
77
|
+
disclosedContractsParams.additionalContracts = [transferPreapprovalContractInfo];
|
|
78
|
+
}
|
|
79
|
+
const disclosedContracts = (0, disclosed_contracts_1.buildAmuletDisclosedContracts)(disclosedContractsParams);
|
|
87
80
|
// Submit the command
|
|
88
81
|
const submitParams = {
|
|
89
82
|
commands: [transferCommand],
|
|
90
83
|
commandId: `transfer-preapproved-${Date.now()}`,
|
|
91
84
|
actAs: [params.senderPartyId],
|
|
85
|
+
disclosedContracts,
|
|
92
86
|
};
|
|
93
|
-
if (disclosedContracts) {
|
|
94
|
-
submitParams.disclosedContracts = disclosedContracts;
|
|
95
|
-
}
|
|
96
87
|
const result = await ledgerClient.submitAndWaitForTransactionTree(submitParams);
|
|
97
88
|
return {
|
|
98
89
|
contractId: params.transferPreapprovalContractId,
|
|
99
90
|
domainId: amuletRules.amulet_rules.domain_id || '',
|
|
100
|
-
transferResult: result
|
|
91
|
+
transferResult: result,
|
|
101
92
|
};
|
|
102
93
|
}
|
|
103
94
|
//# sourceMappingURL=transfer-to-preapproved.js.map
|
|
@@ -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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"}
|