@ledgerhq/coin-cardano 0.4.2 → 0.4.3
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/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +14 -0
- package/lib/account.js +5 -6
- package/lib/account.js.map +1 -1
- package/lib/api/getDelegationInfo.js +18 -32
- package/lib/api/getDelegationInfo.js.map +1 -1
- package/lib/api/getNetworkInfo.js +7 -18
- package/lib/api/getNetworkInfo.js.map +1 -1
- package/lib/api/getPools.js +16 -29
- package/lib/api/getPools.js.map +1 -1
- package/lib/api/getTransactions.js +101 -116
- package/lib/api/getTransactions.js.map +1 -1
- package/lib/api/submitTransaction.js +10 -21
- package/lib/api/submitTransaction.js.map +1 -1
- package/lib/bridge/index.js +1 -10
- package/lib/bridge/index.js.map +1 -1
- package/lib/broadcast.js +3 -12
- package/lib/broadcast.js.map +1 -1
- package/lib/buildOptimisticOperation.js +1 -2
- package/lib/buildOptimisticOperation.js.map +1 -1
- package/lib/buildSubAccounts.js +2 -3
- package/lib/buildSubAccounts.js.map +1 -1
- package/lib/buildTransaction.js +10 -19
- package/lib/buildTransaction.js.map +1 -1
- package/lib/cli-transaction.js +6 -1
- package/lib/cli-transaction.js.map +1 -1
- package/lib/estimateMaxSpendable.js +11 -15
- package/lib/estimateMaxSpendable.js.map +1 -1
- package/lib/getTransactionStatus.js +148 -165
- package/lib/getTransactionStatus.js.map +1 -1
- package/lib/getTransactionStatus.unit.test.js +5 -14
- package/lib/getTransactionStatus.unit.test.js.map +1 -1
- package/lib/hw-getAddress.js +3 -12
- package/lib/hw-getAddress.js.map +1 -1
- package/lib/logic.js +3 -5
- package/lib/logic.js.map +1 -1
- package/lib/prepareTransaction.js +4 -13
- package/lib/prepareTransaction.js.map +1 -1
- package/lib/signOperation.js +25 -36
- package/lib/signOperation.js.map +1 -1
- package/lib/specs.js +9 -16
- package/lib/specs.js.map +1 -1
- package/lib/synchronisation.js +13 -23
- package/lib/synchronisation.js.map +1 -1
- package/lib/synchronisation.unit.test.js +9 -18
- package/lib/synchronisation.unit.test.js.map +1 -1
- package/lib/transaction.js +18 -3
- package/lib/transaction.js.map +1 -1
- package/lib/typhonSerializer.js +2 -3
- package/lib/typhonSerializer.js.map +1 -1
- package/lib-es/account.js +5 -6
- package/lib-es/account.js.map +1 -1
- package/lib-es/api/getDelegationInfo.js +18 -32
- package/lib-es/api/getDelegationInfo.js.map +1 -1
- package/lib-es/api/getNetworkInfo.js +7 -18
- package/lib-es/api/getNetworkInfo.js.map +1 -1
- package/lib-es/api/getPools.js +16 -29
- package/lib-es/api/getPools.js.map +1 -1
- package/lib-es/api/getTransactions.js +101 -116
- package/lib-es/api/getTransactions.js.map +1 -1
- package/lib-es/api/submitTransaction.js +10 -21
- package/lib-es/api/submitTransaction.js.map +1 -1
- package/lib-es/bridge/index.js +1 -10
- package/lib-es/bridge/index.js.map +1 -1
- package/lib-es/broadcast.js +3 -12
- package/lib-es/broadcast.js.map +1 -1
- package/lib-es/buildOptimisticOperation.js +1 -2
- package/lib-es/buildOptimisticOperation.js.map +1 -1
- package/lib-es/buildSubAccounts.js +2 -3
- package/lib-es/buildSubAccounts.js.map +1 -1
- package/lib-es/buildTransaction.js +10 -19
- package/lib-es/buildTransaction.js.map +1 -1
- package/lib-es/cli-transaction.js +6 -1
- package/lib-es/cli-transaction.js.map +1 -1
- package/lib-es/estimateMaxSpendable.js +11 -15
- package/lib-es/estimateMaxSpendable.js.map +1 -1
- package/lib-es/getTransactionStatus.js +148 -165
- package/lib-es/getTransactionStatus.js.map +1 -1
- package/lib-es/getTransactionStatus.unit.test.js +5 -14
- package/lib-es/getTransactionStatus.unit.test.js.map +1 -1
- package/lib-es/hw-getAddress.js +3 -12
- package/lib-es/hw-getAddress.js.map +1 -1
- package/lib-es/logic.js +3 -5
- package/lib-es/logic.js.map +1 -1
- package/lib-es/prepareTransaction.js +4 -13
- package/lib-es/prepareTransaction.js.map +1 -1
- package/lib-es/signOperation.js +25 -36
- package/lib-es/signOperation.js.map +1 -1
- package/lib-es/specs.js +9 -16
- package/lib-es/specs.js.map +1 -1
- package/lib-es/synchronisation.js +13 -23
- package/lib-es/synchronisation.js.map +1 -1
- package/lib-es/synchronisation.unit.test.js +9 -18
- package/lib-es/synchronisation.unit.test.js.map +1 -1
- package/lib-es/transaction.js +18 -3
- package/lib-es/transaction.js.map +1 -1
- package/lib-es/typhonSerializer.js +2 -3
- package/lib-es/typhonSerializer.js.map +1 -1
- package/package.json +4 -4
- package/tsconfig.json +0 -1
|
@@ -1,41 +1,27 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import BigNumber from "bignumber.js";
|
|
11
2
|
import network from "@ledgerhq/live-network/network";
|
|
12
3
|
import { CARDANO_API_ENDPOINT, CARDANO_TESTNET_API_ENDPOINT } from "../constants";
|
|
13
4
|
import { isTestnet } from "../logic";
|
|
14
|
-
function fetchDelegationInfo(currency, stakeKey) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
return res && res.data && res.data.delegation;
|
|
5
|
+
async function fetchDelegationInfo(currency, stakeKey) {
|
|
6
|
+
const res = await network({
|
|
7
|
+
method: "GET",
|
|
8
|
+
url: isTestnet(currency)
|
|
9
|
+
? `${CARDANO_TESTNET_API_ENDPOINT}/v1/delegation`
|
|
10
|
+
: `${CARDANO_API_ENDPOINT}/v1/delegation`,
|
|
11
|
+
params: {
|
|
12
|
+
stakeKey,
|
|
13
|
+
},
|
|
26
14
|
});
|
|
15
|
+
return res && res.data && res.data.delegation;
|
|
27
16
|
}
|
|
28
|
-
export function getDelegationInfo(currency, stakeKey) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
name: (_c = res.poolInfo) === null || _c === void 0 ? void 0 : _c.name,
|
|
37
|
-
rewards: new BigNumber(res.rewardsAvailable),
|
|
38
|
-
});
|
|
17
|
+
export async function getDelegationInfo(currency, stakeKey) {
|
|
18
|
+
const res = await fetchDelegationInfo(currency, stakeKey);
|
|
19
|
+
return (res && {
|
|
20
|
+
status: res.status,
|
|
21
|
+
poolId: res.poolInfo?.poolId,
|
|
22
|
+
ticker: res.poolInfo?.ticker,
|
|
23
|
+
name: res.poolInfo?.name,
|
|
24
|
+
rewards: new BigNumber(res.rewardsAvailable),
|
|
39
25
|
});
|
|
40
26
|
}
|
|
41
27
|
//# sourceMappingURL=getDelegationInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDelegationInfo.js","sourceRoot":"","sources":["../../src/api/getDelegationInfo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDelegationInfo.js","sourceRoot":"","sources":["../../src/api/getDelegationInfo.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,OAAO,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrC,KAAK,UAAU,mBAAmB,CAChC,QAAwB,EACxB,QAAgB;IAEhB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QACxB,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,GAAG,4BAA4B,gBAAgB;YACjD,CAAC,CAAC,GAAG,oBAAoB,gBAAgB;QAC3C,MAAM,EAAE;YACN,QAAQ;SACT;KACF,CAAC,CAAC;IACH,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,IAAK,GAAG,CAAC,IAAI,CAAC,UAA4B,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,QAAgB;IAEhB,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,OAAO,CACL,GAAG,IAAI;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM;QAC5B,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM;QAC5B,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI;QACxB,OAAO,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;KAC7C,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import network from "@ledgerhq/live-network/network";
|
|
11
2
|
import { CARDANO_API_ENDPOINT, CARDANO_TESTNET_API_ENDPOINT } from "../constants";
|
|
12
3
|
import { isTestnet } from "../logic";
|
|
13
|
-
export function fetchNetworkInfo(currency) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
: `${CARDANO_API_ENDPOINT}/v1/network/info`,
|
|
20
|
-
});
|
|
21
|
-
return res && res.data;
|
|
4
|
+
export async function fetchNetworkInfo(currency) {
|
|
5
|
+
const res = await network({
|
|
6
|
+
method: "GET",
|
|
7
|
+
url: isTestnet(currency)
|
|
8
|
+
? `${CARDANO_TESTNET_API_ENDPOINT}/v1/network/info`
|
|
9
|
+
: `${CARDANO_API_ENDPOINT}/v1/network/info`,
|
|
22
10
|
});
|
|
11
|
+
return res && res.data;
|
|
23
12
|
}
|
|
24
13
|
//# sourceMappingURL=getNetworkInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNetworkInfo.js","sourceRoot":"","sources":["../../src/api/getNetworkInfo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getNetworkInfo.js","sourceRoot":"","sources":["../../src/api/getNetworkInfo.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAwB;IAC7D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QACxB,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,GAAG,4BAA4B,kBAAkB;YACnD,CAAC,CAAC,GAAG,oBAAoB,kBAAkB;KAC9C,CAAC,CAAC;IACH,OAAO,GAAG,IAAK,GAAG,CAAC,IAAuB,CAAC;AAC7C,CAAC"}
|
package/lib-es/api/getPools.js
CHANGED
|
@@ -1,37 +1,24 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { isTestnet } from "../logic";
|
|
11
2
|
import { CARDANO_API_ENDPOINT, CARDANO_TESTNET_API_ENDPOINT } from "../constants";
|
|
12
3
|
import network from "@ledgerhq/live-network/network";
|
|
13
|
-
export function fetchPoolList(currency, search, pageNo, limit) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
params: { search, pageNo, limit },
|
|
21
|
-
});
|
|
22
|
-
return res && res.data;
|
|
4
|
+
export async function fetchPoolList(currency, search, pageNo, limit) {
|
|
5
|
+
const res = await network({
|
|
6
|
+
method: "GET",
|
|
7
|
+
url: isTestnet(currency)
|
|
8
|
+
? `${CARDANO_TESTNET_API_ENDPOINT}/v1/pool/list`
|
|
9
|
+
: `${CARDANO_API_ENDPOINT}/v1/pool/list`,
|
|
10
|
+
params: { search, pageNo, limit },
|
|
23
11
|
});
|
|
12
|
+
return res && res.data;
|
|
24
13
|
}
|
|
25
|
-
export function fetchPoolDetails(currency, poolIds) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
params: { poolIds },
|
|
33
|
-
});
|
|
34
|
-
return data;
|
|
14
|
+
export async function fetchPoolDetails(currency, poolIds) {
|
|
15
|
+
const { data } = await network({
|
|
16
|
+
method: "GET",
|
|
17
|
+
url: isTestnet(currency)
|
|
18
|
+
? `${CARDANO_TESTNET_API_ENDPOINT}/v1/pool/detail`
|
|
19
|
+
: `${CARDANO_API_ENDPOINT}/v1/pool/detail`,
|
|
20
|
+
params: { poolIds },
|
|
35
21
|
});
|
|
22
|
+
return data;
|
|
36
23
|
}
|
|
37
24
|
//# sourceMappingURL=getPools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPools.js","sourceRoot":"","sources":["../../src/api/getPools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPools.js","sourceRoot":"","sources":["../../src/api/getPools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAElF,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAwB,EACxB,MAAc,EACd,MAAc,EACd,KAAa;IAEb,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QACxB,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,GAAG,4BAA4B,eAAe;YAChD,CAAC,CAAC,GAAG,oBAAoB,eAAe;QAC1C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;KAClC,CAAC,CAAC;IACH,OAAO,GAAG,IAAK,GAAG,CAAC,IAAuB,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAwB,EACxB,OAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAoB;QAChD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,GAAG,4BAA4B,iBAAiB;YAClD,CAAC,CAAC,GAAG,oBAAoB,iBAAiB;QAC5C,MAAM,EAAE,EAAE,OAAO,EAAE;KACpB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import network from "@ledgerhq/live-network/network";
|
|
11
2
|
import chunk from "lodash/chunk";
|
|
12
3
|
import range from "lodash/range";
|
|
@@ -14,119 +5,113 @@ import { getEnv } from "@ledgerhq/live-env";
|
|
|
14
5
|
import { CARDANO_API_ENDPOINT, CARDANO_TESTNET_API_ENDPOINT } from "../constants";
|
|
15
6
|
import { getBipPath, getCredentialKey, getExtendedPublicKeyFromHex, isTestnet } from "../logic";
|
|
16
7
|
import { PaymentChain } from "../types";
|
|
17
|
-
function fetchTransactions(paymentKeys, pageNo, blockHeight, currency) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
return res.data;
|
|
8
|
+
async function fetchTransactions(paymentKeys, pageNo, blockHeight, currency) {
|
|
9
|
+
const res = await network({
|
|
10
|
+
method: "POST",
|
|
11
|
+
url: isTestnet(currency)
|
|
12
|
+
? `${CARDANO_TESTNET_API_ENDPOINT}/v1/transaction`
|
|
13
|
+
: `${CARDANO_API_ENDPOINT}/v1/transaction`,
|
|
14
|
+
data: {
|
|
15
|
+
paymentKeys,
|
|
16
|
+
pageNo,
|
|
17
|
+
blockHeight,
|
|
18
|
+
},
|
|
31
19
|
});
|
|
20
|
+
return res.data;
|
|
32
21
|
}
|
|
33
|
-
function getAllTransactionsByKeys(paymentKeys, blockHeight, currency) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
-
});
|
|
22
|
+
async function getAllTransactionsByKeys(paymentKeys, blockHeight, currency) {
|
|
23
|
+
const transactions = [];
|
|
24
|
+
let latestBlockHeight = 0;
|
|
25
|
+
let isAllTrxFetched = false;
|
|
26
|
+
let pageNo = 1;
|
|
27
|
+
while (!isAllTrxFetched) {
|
|
28
|
+
const res = await fetchTransactions(paymentKeys, pageNo, blockHeight, currency);
|
|
29
|
+
transactions.push(...res.transactions);
|
|
30
|
+
latestBlockHeight = Math.max(res.blockHeight, latestBlockHeight);
|
|
31
|
+
isAllTrxFetched = res.transactions.length < res.limit;
|
|
32
|
+
pageNo += 1;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
transactions,
|
|
36
|
+
blockHeight: latestBlockHeight,
|
|
37
|
+
};
|
|
51
38
|
}
|
|
52
|
-
function getSyncedTransactionsByChain(accountPubKey, accountIndex, chainType, blockHeight, initialPaymentCredentials, currency) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
39
|
+
async function getSyncedTransactionsByChain(accountPubKey, accountIndex, chainType, blockHeight, initialPaymentCredentials, currency) {
|
|
40
|
+
const keyChainRange = getEnv("KEYCHAIN_OBSERVABLE_RANGE") || 20;
|
|
41
|
+
// credentialsMap for efficient use
|
|
42
|
+
const initialPaymentCredentialMap = {};
|
|
43
|
+
let maxUsedKeyIndex = -1;
|
|
44
|
+
initialPaymentCredentials.forEach(cred => {
|
|
45
|
+
initialPaymentCredentialMap[cred.key] = cred;
|
|
46
|
+
if (cred.isUsed)
|
|
47
|
+
maxUsedKeyIndex = cred.path.index;
|
|
48
|
+
});
|
|
49
|
+
const transactions = [];
|
|
50
|
+
let latestBlockHeight = 0;
|
|
51
|
+
// fetch transactions for existing keys
|
|
52
|
+
const trxsRes = await Promise.all(chunk(Object.keys(initialPaymentCredentialMap), keyChainRange).map(keys => getAllTransactionsByKeys(keys, blockHeight, currency)));
|
|
53
|
+
trxsRes.forEach(txRes => {
|
|
54
|
+
transactions.push(...txRes.transactions);
|
|
55
|
+
latestBlockHeight = Math.max(latestBlockHeight, txRes.blockHeight);
|
|
56
|
+
});
|
|
57
|
+
// fetch transactions for new avaialble keys
|
|
58
|
+
let newPaymentCredentialsMap = {};
|
|
59
|
+
let lastSyncedKeyIndex = initialPaymentCredentials.length
|
|
60
|
+
? initialPaymentCredentials[initialPaymentCredentials.length - 1].path.index
|
|
61
|
+
: -1;
|
|
62
|
+
let syncToKeyIndex = maxUsedKeyIndex + keyChainRange;
|
|
63
|
+
while (syncToKeyIndex !== lastSyncedKeyIndex) {
|
|
64
|
+
const currentPaymentKeysMap = {};
|
|
65
|
+
range(lastSyncedKeyIndex + 1, syncToKeyIndex + 1, 1).forEach(keyIndex => {
|
|
66
|
+
const keyPath = getCredentialKey(accountPubKey, getBipPath({
|
|
67
|
+
account: accountIndex,
|
|
68
|
+
chain: chainType,
|
|
69
|
+
index: keyIndex,
|
|
70
|
+
}));
|
|
71
|
+
currentPaymentKeysMap[keyPath.key] = {
|
|
72
|
+
isUsed: false,
|
|
73
|
+
key: keyPath.key,
|
|
74
|
+
path: keyPath.path,
|
|
75
|
+
};
|
|
70
76
|
});
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
path: keyPath.path,
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
const trxRes = yield getAllTransactionsByKeys(Object.keys(currentPaymentKeysMap), blockHeight, currency);
|
|
92
|
-
transactions.push(...trxRes.transactions);
|
|
93
|
-
lastSyncedKeyIndex = syncToKeyIndex;
|
|
94
|
-
latestBlockHeight = Math.max(latestBlockHeight, trxRes.blockHeight);
|
|
95
|
-
newPaymentCredentialsMap = Object.assign({}, newPaymentCredentialsMap, currentPaymentKeysMap);
|
|
96
|
-
maxUsedKeyIndex = trxRes.transactions.reduce((maxIndexA, { inputs, outputs }) => [...inputs, ...outputs].reduce((maxIndexB, io) => { var _a; return Math.max(((_a = newPaymentCredentialsMap[io.paymentKey]) === null || _a === void 0 ? void 0 : _a.path.index) || -1, maxIndexB); }, maxIndexA), maxUsedKeyIndex);
|
|
97
|
-
syncToKeyIndex = maxUsedKeyIndex + keyChainRange;
|
|
98
|
-
}
|
|
99
|
-
const availablePaymentCredentialsMap = Object.assign(Object.assign({}, initialPaymentCredentialMap), newPaymentCredentialsMap);
|
|
100
|
-
transactions.forEach(trx => {
|
|
101
|
-
[...trx.inputs, ...trx.outputs].forEach(io => {
|
|
102
|
-
if (availablePaymentCredentialsMap[io.paymentKey]) {
|
|
103
|
-
availablePaymentCredentialsMap[io.paymentKey].isUsed = true;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
77
|
+
const trxRes = await getAllTransactionsByKeys(Object.keys(currentPaymentKeysMap), blockHeight, currency);
|
|
78
|
+
transactions.push(...trxRes.transactions);
|
|
79
|
+
lastSyncedKeyIndex = syncToKeyIndex;
|
|
80
|
+
latestBlockHeight = Math.max(latestBlockHeight, trxRes.blockHeight);
|
|
81
|
+
newPaymentCredentialsMap = Object.assign({}, newPaymentCredentialsMap, currentPaymentKeysMap);
|
|
82
|
+
maxUsedKeyIndex = trxRes.transactions.reduce((maxIndexA, { inputs, outputs }) => [...inputs, ...outputs].reduce((maxIndexB, io) => Math.max(newPaymentCredentialsMap[io.paymentKey]?.path.index || -1, maxIndexB), maxIndexA), maxUsedKeyIndex);
|
|
83
|
+
syncToKeyIndex = maxUsedKeyIndex + keyChainRange;
|
|
84
|
+
}
|
|
85
|
+
const availablePaymentCredentialsMap = {
|
|
86
|
+
...initialPaymentCredentialMap,
|
|
87
|
+
...newPaymentCredentialsMap,
|
|
88
|
+
};
|
|
89
|
+
transactions.forEach(trx => {
|
|
90
|
+
[...trx.inputs, ...trx.outputs].forEach(io => {
|
|
91
|
+
if (availablePaymentCredentialsMap[io.paymentKey]) {
|
|
92
|
+
availablePaymentCredentialsMap[io.paymentKey].isUsed = true;
|
|
93
|
+
}
|
|
106
94
|
});
|
|
107
|
-
return {
|
|
108
|
-
transactions,
|
|
109
|
-
latestBlockHeight,
|
|
110
|
-
paymentCredentials: Object.values(availablePaymentCredentialsMap).sort((aCred, bCred) => aCred.path.index - bCred.path.index),
|
|
111
|
-
};
|
|
112
95
|
});
|
|
96
|
+
return {
|
|
97
|
+
transactions,
|
|
98
|
+
latestBlockHeight,
|
|
99
|
+
paymentCredentials: Object.values(availablePaymentCredentialsMap).sort((aCred, bCred) => aCred.path.index - bCred.path.index),
|
|
100
|
+
};
|
|
113
101
|
}
|
|
114
|
-
export function getTransactions(xpub, accountIndex, initialAccount, blockHeight, currency) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
]
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
internalCredentials,
|
|
129
|
-
};
|
|
130
|
-
});
|
|
102
|
+
export async function getTransactions(xpub, accountIndex, initialAccount, blockHeight, currency) {
|
|
103
|
+
const accountPubKey = getExtendedPublicKeyFromHex(xpub);
|
|
104
|
+
const oldExternalCredentials = initialAccount?.cardanoResources?.externalCredentials || [];
|
|
105
|
+
const oldInternalCredentials = initialAccount?.cardanoResources?.internalCredentials || [];
|
|
106
|
+
const [{ transactions: externalKeyTransactions, latestBlockHeight: aBlockHeight, paymentCredentials: externalCredentials, }, { transactions: internalKeyTransactions, latestBlockHeight: bBlockHeight, paymentCredentials: internalCredentials, },] = await Promise.all([
|
|
107
|
+
getSyncedTransactionsByChain(accountPubKey, accountIndex, PaymentChain.external, blockHeight, oldExternalCredentials, currency),
|
|
108
|
+
getSyncedTransactionsByChain(accountPubKey, accountIndex, PaymentChain.internal, blockHeight, oldInternalCredentials, currency),
|
|
109
|
+
]);
|
|
110
|
+
return {
|
|
111
|
+
transactions: [...externalKeyTransactions, ...internalKeyTransactions],
|
|
112
|
+
blockHeight: Math.max(aBlockHeight, bBlockHeight),
|
|
113
|
+
externalCredentials,
|
|
114
|
+
internalCredentials,
|
|
115
|
+
};
|
|
131
116
|
}
|
|
132
117
|
//# sourceMappingURL=getTransactions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactions.js","sourceRoot":"","sources":["../../src/api/getTransactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getTransactions.js","sourceRoot":"","sources":["../../src/api/getTransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,16 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import network from "@ledgerhq/live-network/network";
|
|
11
2
|
import { CARDANO_API_ENDPOINT, CARDANO_TESTNET_API_ENDPOINT } from "../constants";
|
|
12
3
|
import { isTestnet } from "../logic";
|
|
13
|
-
export function submitTransaction(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
return res.data.transaction;
|
|
4
|
+
export async function submitTransaction({ transaction, currency, }) {
|
|
5
|
+
const res = await network({
|
|
6
|
+
method: "POST",
|
|
7
|
+
url: isTestnet(currency)
|
|
8
|
+
? `${CARDANO_TESTNET_API_ENDPOINT}/v1/transaction/submit`
|
|
9
|
+
: `${CARDANO_API_ENDPOINT}/v1/transaction/submit`,
|
|
10
|
+
data: {
|
|
11
|
+
transaction: transaction,
|
|
12
|
+
},
|
|
25
13
|
});
|
|
14
|
+
return res.data.transaction;
|
|
26
15
|
}
|
|
27
16
|
//# sourceMappingURL=submitTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submitTransaction.js","sourceRoot":"","sources":["../../src/api/submitTransaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"submitTransaction.js","sourceRoot":"","sources":["../../src/api/submitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,WAAW,EACX,QAAQ,GAIT;IACC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QACxB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,GAAG,4BAA4B,wBAAwB;YACzD,CAAC,CAAC,GAAG,oBAAoB,wBAAwB;QACnD,IAAI,EAAE;YACJ,WAAW,EAAE,WAAW;SACzB;KACF,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,CAAC"}
|
package/lib-es/bridge/index.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { getSerializedAddressParameters, updateTransaction, makeAccountBridgeReceive, makeScanAccounts, makeSync, } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
11
2
|
import getAddressWrapper from "@ledgerhq/coin-framework/bridge/getAddressWrapper";
|
|
12
3
|
import { assignToAccountRaw, assignFromAccountRaw } from "../serialization";
|
|
@@ -28,7 +19,7 @@ export function buildCurrencyBridge(signerContext) {
|
|
|
28
19
|
});
|
|
29
20
|
return {
|
|
30
21
|
scanAccounts,
|
|
31
|
-
preload: () =>
|
|
22
|
+
preload: async () => ({}),
|
|
32
23
|
hydrate: () => { },
|
|
33
24
|
};
|
|
34
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,QAAQ,GACT,MAAM,2CAA2C,CAAC;AAGnD,OAAO,iBAAiB,MAAM,mDAAmD,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAExC,OAAO,iBAAwC,MAAM,WAAW,CAAC;AAEjE,MAAM,UAAU,mBAAmB,CAAC,aAA2C;IAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,gBAAgB,CAAC;QACpC,eAAe,EAAE,mBAAmB,CAAC,aAAa,CAAC;QACnD,YAAY,EAAE,iBAAiB,CAAC,UAAU,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;QACZ,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,aAA2C;IAE3C,MAAM,IAAI,GAAG,QAAQ,CAAC;QACpB,eAAe,EAAE,mBAAmB,CAAC,aAAa,CAAC;QACnD,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,oBAAoB;QACpB,iBAAiB;QACjB,iBAAiB;QACjB,oBAAoB;QACpB,kBAAkB;QAClB,IAAI;QACJ,OAAO;QACP,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;QAChD,SAAS;QACT,kBAAkB;QAClB,oBAAoB;QACpB,8BAA8B;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,aAA2C,EAC3C,UAAyC;IAEzC,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC"}
|
package/lib-es/broadcast.js
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { patchOperationWithHash } from "@ledgerhq/coin-framework/operation";
|
|
11
2
|
import { submitTransaction } from "./api/submitTransaction";
|
|
12
3
|
/**
|
|
13
4
|
* Broadcast the signed transaction
|
|
14
5
|
* @param {signature: string, operation: string} signedOperation
|
|
15
6
|
*/
|
|
16
|
-
export const broadcast =
|
|
7
|
+
export const broadcast = async ({ signedOperation, account, }) => {
|
|
17
8
|
const signedTx = signedOperation.signature;
|
|
18
|
-
const pendingTransaction =
|
|
9
|
+
const pendingTransaction = await submitTransaction({
|
|
19
10
|
transaction: signedTx,
|
|
20
11
|
currency: account.currency,
|
|
21
12
|
});
|
|
22
13
|
return patchOperationWithHash(signedOperation.operation, pendingTransaction.hash);
|
|
23
|
-
}
|
|
14
|
+
};
|
|
24
15
|
//# sourceMappingURL=broadcast.js.map
|
package/lib-es/broadcast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAA4C,KAAK,EAAE,EACvE,eAAe,EACf,OAAO,GACR,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC;IAC3C,MAAM,kBAAkB,GAAG,MAAM,iBAAiB,CAAC;QACjD,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC,CAAC"}
|
|
@@ -7,7 +7,6 @@ import { types as TyphonTypes } from "@stricahq/typhonjs";
|
|
|
7
7
|
import { getAccountStakeCredential, getOperationType } from "./logic";
|
|
8
8
|
import { MEMO_LABEL } from "./constants";
|
|
9
9
|
export const buildOptimisticOperation = (account, unsignedTransaction, transaction) => {
|
|
10
|
-
var _a;
|
|
11
10
|
const cardanoResources = account.cardanoResources;
|
|
12
11
|
const accountCreds = new Set([...cardanoResources.externalCredentials, ...cardanoResources.internalCredentials].map(cred => cred.key));
|
|
13
12
|
const stakeCredential = getAccountStakeCredential(account.xpub, account.index);
|
|
@@ -95,7 +94,7 @@ export const buildOptimisticOperation = (account, unsignedTransaction, transacti
|
|
|
95
94
|
extra,
|
|
96
95
|
};
|
|
97
96
|
const tokenAccount = transaction.subAccountId
|
|
98
|
-
?
|
|
97
|
+
? account.subAccounts?.find(ta => ta.id === transaction.subAccountId)
|
|
99
98
|
: null;
|
|
100
99
|
if (tokenAccount && opType === "OUT") {
|
|
101
100
|
op.subOperations = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,kBAAkB,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,KAAK,IAAI,WAAW,EAAoC,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAAuB,EACvB,mBAAsC,EACtC,WAAwB,EACN,EAAE
|
|
1
|
+
{"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"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"}
|