@affluent-org/sdk 0.0.1
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/.prettierrc +11 -0
- package/Refactoring.md +548 -0
- package/dist/_compiled/Account.compiled.json +1 -0
- package/dist/_compiled/Receipt.compiled.json +1 -0
- package/dist/_compiled/WTONWallet.compiled.json +1 -0
- package/dist/_compiled/index.d.ts +4 -0
- package/dist/_compiled/index.js +12 -0
- package/dist/affluent.d.ts +14 -0
- package/dist/affluent.js +20 -0
- package/dist/constants/constants.d.ts +2 -0
- package/dist/constants/constants.js +5 -0
- package/dist/constants/contracts.d.ts +9 -0
- package/dist/constants/contracts.js +18 -0
- package/dist/context.d.ts +43 -0
- package/dist/context.js +90 -0
- package/dist/contracts/common/type.d.ts +16 -0
- package/dist/contracts/common/type.js +2 -0
- package/dist/contracts/common/utils.d.ts +3 -0
- package/dist/contracts/common/utils.js +16 -0
- package/dist/contracts/core/account/index.d.ts +38 -0
- package/dist/contracts/core/account/index.js +128 -0
- package/dist/contracts/core/account/type.d.ts +18 -0
- package/dist/contracts/core/account/type.js +2 -0
- package/dist/contracts/core/pool/index.d.ts +149 -0
- package/dist/contracts/core/pool/index.js +379 -0
- package/dist/contracts/core/pool/serializer.d.ts +15 -0
- package/dist/contracts/core/pool/serializer.js +307 -0
- package/dist/contracts/core/pool/type.d.ts +136 -0
- package/dist/contracts/core/pool/type.js +2 -0
- package/dist/contracts/dedust-farm/MockDedustFarm.d.ts +41 -0
- package/dist/contracts/dedust-farm/MockDedustFarm.js +79 -0
- package/dist/contracts/external/tonstaker.d.ts +18 -0
- package/dist/contracts/external/tonstaker.js +26 -0
- package/dist/contracts/factory/factory.d.ts +24 -0
- package/dist/contracts/factory/factory.js +58 -0
- package/dist/contracts/factory/type.d.ts +11 -0
- package/dist/contracts/factory/type.js +2 -0
- package/dist/contracts/farm/distributor.d.ts +43 -0
- package/dist/contracts/farm/distributor.js +83 -0
- package/dist/contracts/farm/receipt.d.ts +40 -0
- package/dist/contracts/farm/receipt.js +68 -0
- package/dist/contracts/irm/jump-irm/serializer.d.ts +4 -0
- package/dist/contracts/irm/jump-irm/serializer.js +26 -0
- package/dist/contracts/irm/jump-irm/type.d.ts +8 -0
- package/dist/contracts/irm/jump-irm/type.js +2 -0
- package/dist/contracts/jetton/jetton-minter.d.ts +23 -0
- package/dist/contracts/jetton/jetton-minter.js +46 -0
- package/dist/contracts/jetton/jetton-wallet.d.ts +67 -0
- package/dist/contracts/jetton/jetton-wallet.js +119 -0
- package/dist/contracts/jetton/type.d.ts +7 -0
- package/dist/contracts/jetton/type.js +2 -0
- package/dist/contracts/liquid_token/dedust/minter.d.ts +56 -0
- package/dist/contracts/liquid_token/dedust/minter.js +112 -0
- package/dist/contracts/liquid_token/dedust/wallet.d.ts +127 -0
- package/dist/contracts/liquid_token/dedust/wallet.js +213 -0
- package/dist/contracts/liquid_token/stonfi/LFStonfiJettonMinter.d.ts +53 -0
- package/dist/contracts/liquid_token/stonfi/LFStonfiJettonMinter.js +110 -0
- package/dist/contracts/liquid_token/stonfi/LFStonfiJettonWallet.d.ts +169 -0
- package/dist/contracts/liquid_token/stonfi/LFStonfiJettonWallet.js +288 -0
- package/dist/contracts/oracle/composite-onchain-oracle/index.d.ts +108 -0
- package/dist/contracts/oracle/composite-onchain-oracle/index.js +185 -0
- package/dist/contracts/oracle/parser.d.ts +7 -0
- package/dist/contracts/oracle/parser.js +77 -0
- package/dist/contracts/oracle/redstone-onchain-oracle/index.d.ts +56 -0
- package/dist/contracts/oracle/redstone-onchain-oracle/index.js +159 -0
- package/dist/contracts/oracle/redstone-onchain-oracle/serializer.d.ts +4 -0
- package/dist/contracts/oracle/redstone-onchain-oracle/serializer.js +137 -0
- package/dist/contracts/oracle/redstone-onchain-oracle/type.d.ts +57 -0
- package/dist/contracts/oracle/redstone-onchain-oracle/type.js +18 -0
- package/dist/contracts/oracle/redstone-oracle/serializer.d.ts +3 -0
- package/dist/contracts/oracle/redstone-oracle/serializer.js +30 -0
- package/dist/contracts/oracle/redstone-oracle/type.d.ts +9 -0
- package/dist/contracts/oracle/redstone-oracle/type.js +2 -0
- package/dist/contracts/oracle/redstone-parser.d.ts +9 -0
- package/dist/contracts/oracle/redstone-parser.js +58 -0
- package/dist/contracts/rfq/rfq_auction/index.d.ts +216 -0
- package/dist/contracts/rfq/rfq_auction/index.js +334 -0
- package/dist/contracts/rfq/rfq_batch/index.d.ts +346 -0
- package/dist/contracts/rfq/rfq_batch/index.js +448 -0
- package/dist/contracts/rfq/rfq_event_emitter/index.d.ts +132 -0
- package/dist/contracts/rfq/rfq_event_emitter/index.js +143 -0
- package/dist/contracts/stonfi-farm/MockStonfiFarmItem.d.ts +41 -0
- package/dist/contracts/stonfi-farm/MockStonfiFarmItem.js +83 -0
- package/dist/contracts/stonfi-farm/MockStonfiFarmMinter.d.ts +45 -0
- package/dist/contracts/stonfi-farm/MockStonfiFarmMinter.js +92 -0
- package/dist/contracts/unknown-contract/index.d.ts +14 -0
- package/dist/contracts/unknown-contract/index.js +18 -0
- package/dist/contracts/vault/share-vault/index.d.ts +206 -0
- package/dist/contracts/vault/share-vault/index.js +373 -0
- package/dist/contracts/vault/strategy-vault/codec.d.ts +710 -0
- package/dist/contracts/vault/strategy-vault/codec.js +1256 -0
- package/dist/contracts/vault/strategy-vault/computation.d.ts +11 -0
- package/dist/contracts/vault/strategy-vault/computation.js +56 -0
- package/dist/contracts/vault/strategy-vault/constants.d.ts +163 -0
- package/dist/contracts/vault/strategy-vault/constants.js +170 -0
- package/dist/contracts/vault/strategy-vault/index.d.ts +587 -0
- package/dist/contracts/vault/strategy-vault/index.js +406 -0
- package/dist/contracts/vault/strategy-vault/type.d.ts +115 -0
- package/dist/contracts/vault/strategy-vault/type.js +2 -0
- package/dist/contracts/wton/jetton-minter.d.ts +35 -0
- package/dist/contracts/wton/jetton-minter.js +71 -0
- package/dist/contracts/wton/jetton-wallet.d.ts +90 -0
- package/dist/contracts/wton/jetton-wallet.js +153 -0
- package/dist/contracts/wton/type.d.ts +7 -0
- package/dist/contracts/wton/type.js +2 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +65 -0
- package/dist/lib/assert.d.ts +1 -0
- package/dist/lib/assert.js +9 -0
- package/dist/lib/query-cache.d.ts +5 -0
- package/dist/lib/query-cache.js +57 -0
- package/dist/lib/send-msg.d.ts +11 -0
- package/dist/lib/send-msg.js +9 -0
- package/dist/services/composite-oracle/computation.d.ts +55 -0
- package/dist/services/composite-oracle/computation.js +295 -0
- package/dist/services/composite-oracle/index.d.ts +45 -0
- package/dist/services/composite-oracle/index.js +110 -0
- package/dist/services/composite-oracle/query.d.ts +36 -0
- package/dist/services/composite-oracle/query.js +251 -0
- package/dist/services/composite-oracle/types.d.ts +82 -0
- package/dist/services/composite-oracle/types.js +11 -0
- package/dist/services/pool/computation.d.ts +75 -0
- package/dist/services/pool/computation.js +219 -0
- package/dist/services/pool/index.d.ts +94 -0
- package/dist/services/pool/index.js +139 -0
- package/dist/services/pool/oracle.d.ts +20 -0
- package/dist/services/pool/oracle.js +61 -0
- package/dist/services/pool/owner/index.d.ts +37 -0
- package/dist/services/pool/owner/index.js +76 -0
- package/dist/services/pool/owner/types.d.ts +18 -0
- package/dist/services/pool/owner/types.js +2 -0
- package/dist/services/pool/query.d.ts +64 -0
- package/dist/services/pool/query.js +282 -0
- package/dist/services/pool/user/index.d.ts +86 -0
- package/dist/services/pool/user/index.js +285 -0
- package/dist/services/pool/user/types.d.ts +44 -0
- package/dist/services/pool/user/types.js +2 -0
- package/dist/services/rfq-auction/index.d.ts +81 -0
- package/dist/services/rfq-auction/index.js +93 -0
- package/dist/services/rfq-auction/oracle.d.ts +19 -0
- package/dist/services/rfq-auction/oracle.js +60 -0
- package/dist/services/rfq-auction/query.d.ts +50 -0
- package/dist/services/rfq-auction/query.js +19 -0
- package/dist/services/rfq-auction/user/index.d.ts +63 -0
- package/dist/services/rfq-auction/user/index.js +218 -0
- package/dist/services/rfq-auction/user/types.d.ts +29 -0
- package/dist/services/rfq-auction/user/types.js +2 -0
- package/dist/services/rfq-batch/index.d.ts +78 -0
- package/dist/services/rfq-batch/index.js +132 -0
- package/dist/services/rfq-batch/oracle.d.ts +22 -0
- package/dist/services/rfq-batch/oracle.js +54 -0
- package/dist/services/rfq-batch/query.d.ts +46 -0
- package/dist/services/rfq-batch/query.js +34 -0
- package/dist/services/rfq-batch/user/index.d.ts +79 -0
- package/dist/services/rfq-batch/user/index.js +171 -0
- package/dist/services/rfq-batch/user/types.d.ts +37 -0
- package/dist/services/rfq-batch/user/types.js +2 -0
- package/dist/services/share-vault/computation.d.ts +24 -0
- package/dist/services/share-vault/computation.js +42 -0
- package/dist/services/share-vault/index.d.ts +90 -0
- package/dist/services/share-vault/index.js +128 -0
- package/dist/services/share-vault/manager/index.d.ts +40 -0
- package/dist/services/share-vault/manager/index.js +111 -0
- package/dist/services/share-vault/manager/types.d.ts +23 -0
- package/dist/services/share-vault/manager/types.js +2 -0
- package/dist/services/share-vault/owner/index.d.ts +64 -0
- package/dist/services/share-vault/owner/index.js +122 -0
- package/dist/services/share-vault/owner/types.d.ts +33 -0
- package/dist/services/share-vault/owner/types.js +2 -0
- package/dist/services/share-vault/query.d.ts +34 -0
- package/dist/services/share-vault/query.js +138 -0
- package/dist/services/share-vault/user/index.d.ts +33 -0
- package/dist/services/share-vault/user/index.js +106 -0
- package/dist/services/share-vault/user/types.d.ts +13 -0
- package/dist/services/share-vault/user/types.js +2 -0
- package/dist/services/strategy-vault/index.d.ts +2124 -0
- package/dist/services/strategy-vault/index.js +268 -0
- package/dist/services/strategy-vault/manager/index.d.ts +1968 -0
- package/dist/services/strategy-vault/manager/index.js +475 -0
- package/dist/services/strategy-vault/manager/types.d.ts +144 -0
- package/dist/services/strategy-vault/manager/types.js +2 -0
- package/dist/services/strategy-vault/oracle.d.ts +66 -0
- package/dist/services/strategy-vault/oracle.js +162 -0
- package/dist/services/strategy-vault/owner/index.d.ts +277 -0
- package/dist/services/strategy-vault/owner/index.js +333 -0
- package/dist/services/strategy-vault/owner/types.d.ts +146 -0
- package/dist/services/strategy-vault/owner/types.js +2 -0
- package/dist/services/strategy-vault/query.d.ts +138 -0
- package/dist/services/strategy-vault/query.js +59 -0
- package/dist/services/strategy-vault/user/index.d.ts +89 -0
- package/dist/services/strategy-vault/user/index.js +219 -0
- package/dist/services/strategy-vault/user/types.d.ts +46 -0
- package/dist/services/strategy-vault/user/types.js +2 -0
- package/dist/types/sender.d.ts +7 -0
- package/dist/types/sender.js +2 -0
- package/dist/utils/action-parser.d.ts +7 -0
- package/dist/utils/action-parser.js +20 -0
- package/dist/utils/external-message-hash.d.ts +45 -0
- package/dist/utils/external-message-hash.js +65 -0
- package/dist/utils/oracle/redstone/readonlyCachedRedstone.d.ts +3 -0
- package/dist/utils/oracle/redstone/readonlyCachedRedstone.js +25 -0
- package/dist/utils/oracle/redstone/redstoneHelper.d.ts +21 -0
- package/dist/utils/oracle/redstone/redstoneHelper.js +228 -0
- package/dist/utils/parser.d.ts +40 -0
- package/dist/utils/parser.js +580 -0
- package/dist/utils/pending-tracker/index.d.ts +14 -0
- package/dist/utils/pending-tracker/index.js +34 -0
- package/dist/utils/pending-tracker/trackable-sender.d.ts +16 -0
- package/dist/utils/pending-tracker/trackable-sender.js +87 -0
- package/dist/utils/pending-tracker/type.d.ts +78 -0
- package/dist/utils/pending-tracker/type.js +2 -0
- package/dist/utils/pending-tracker/v3-client.d.ts +31 -0
- package/dist/utils/pending-tracker/v3-client.js +104 -0
- package/dist/utils/risk_calculator/risk_calculator.d.ts +45 -0
- package/dist/utils/risk_calculator/risk_calculator.js +332 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +12 -0
- package/package.json +46 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseDataPackageHex = parseDataPackageHex;
|
|
7
|
+
exports.createPayload = createPayload;
|
|
8
|
+
exports.getHexlifiedFeedIds = getHexlifiedFeedIds;
|
|
9
|
+
exports.getDataFeedIdTuples = getDataFeedIdTuples;
|
|
10
|
+
exports.createRedstoneHelper = createRedstoneHelper;
|
|
11
|
+
const core_1 = require("@ton/core");
|
|
12
|
+
const sdk_1 = require("@redstone-finance/sdk");
|
|
13
|
+
const protocol_1 = require("@redstone-finance/protocol");
|
|
14
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
15
|
+
const assert_1 = require("../../../lib/assert");
|
|
16
|
+
const serializeDict_1 = require("@ton/core/dist/dict/serializeDict");
|
|
17
|
+
function splitPayloadHex(payloadHex) {
|
|
18
|
+
//TODO: assert value size == 32;
|
|
19
|
+
const DATA_PACKAGE_BS = protocol_1.consts.DATA_FEED_ID_BS +
|
|
20
|
+
protocol_1.consts.DEFAULT_NUM_VALUE_BS +
|
|
21
|
+
protocol_1.consts.TIMESTAMP_BS +
|
|
22
|
+
protocol_1.consts.DATA_POINTS_COUNT_BS +
|
|
23
|
+
protocol_1.consts.DATA_POINT_VALUE_BYTE_SIZE_BS +
|
|
24
|
+
protocol_1.consts.SIGNATURE_BS;
|
|
25
|
+
const unsignedMetadataBS = new bignumber_js_1.default("0x" +
|
|
26
|
+
payloadHex.substring(payloadHex.length - 2 * (protocol_1.consts.REDSTONE_MARKER_BS + protocol_1.consts.UNSIGNED_METADATA_BYTE_SIZE_BS), payloadHex.length - 2 * protocol_1.consts.REDSTONE_MARKER_BS)).toNumber();
|
|
27
|
+
const metadataBS = protocol_1.consts.REDSTONE_MARKER_BS +
|
|
28
|
+
protocol_1.consts.UNSIGNED_METADATA_BYTE_SIZE_BS +
|
|
29
|
+
unsignedMetadataBS +
|
|
30
|
+
protocol_1.consts.DATA_PACKAGES_COUNT_BS;
|
|
31
|
+
const metadata = payloadHex.substring(payloadHex.length - 2 * metadataBS, payloadHex.length);
|
|
32
|
+
const dataPackageCount = new bignumber_js_1.default("0x" + metadata.substring(0, protocol_1.consts.DATA_PACKAGES_COUNT_BS * 2)).toNumber();
|
|
33
|
+
if (payloadHex.length - 2 * metadataBS != 2 * DATA_PACKAGE_BS * dataPackageCount) {
|
|
34
|
+
throw "Must be implemented for multi-datapoint packages";
|
|
35
|
+
}
|
|
36
|
+
const dataPackageChunks = [];
|
|
37
|
+
for (let i = 0; i < dataPackageCount; i++) {
|
|
38
|
+
dataPackageChunks.push(payloadHex.substring(i * 2 * DATA_PACKAGE_BS, (i + 1) * 2 * DATA_PACKAGE_BS));
|
|
39
|
+
}
|
|
40
|
+
return { dataPackageChunks, metadata };
|
|
41
|
+
}
|
|
42
|
+
function storeSignatureAndData(dataPackageHex, builder) {
|
|
43
|
+
const data = dataPackageHex.substring(0, dataPackageHex.length - 2 * protocol_1.consts.SIGNATURE_BS);
|
|
44
|
+
const signature = dataPackageHex.substring(dataPackageHex.length - 2 * protocol_1.consts.SIGNATURE_BS, dataPackageHex.length);
|
|
45
|
+
const v = BigInt("0x" + signature.substring(128, 130));
|
|
46
|
+
(0, assert_1.assert)([27, 28].map(BigInt).includes(v), `Wrong signature 'v' value (${v})`);
|
|
47
|
+
const signatureCell = (0, core_1.beginCell)()
|
|
48
|
+
.storeUint(BigInt("0x" + signature.substring(0, 64)), 256)
|
|
49
|
+
.storeUint(BigInt("0x" + signature.substring(64, 128)), 256)
|
|
50
|
+
.storeUint(v, 8)
|
|
51
|
+
.endCell();
|
|
52
|
+
console.assert(data.length / 2 <= 127, "Must be implemented for larger data");
|
|
53
|
+
const dataCell = (0, core_1.beginCell)()
|
|
54
|
+
.storeBuffer(Buffer.from(stringToBytes("0x" + data)))
|
|
55
|
+
.endCell();
|
|
56
|
+
builder.storeSlice(signatureCell.beginParse()).storeRef(dataCell);
|
|
57
|
+
}
|
|
58
|
+
function parseDataPackageHex(dataPackageHex) {
|
|
59
|
+
const data = dataPackageHex.substring(0, dataPackageHex.length - 2 * protocol_1.consts.SIGNATURE_BS);
|
|
60
|
+
const signature = dataPackageHex.substring(dataPackageHex.length - 2 * protocol_1.consts.SIGNATURE_BS, dataPackageHex.length);
|
|
61
|
+
const v = BigInt("0x" + signature.substring(128, 130));
|
|
62
|
+
(0, assert_1.assert)([27, 28].map(BigInt).includes(v), `Wrong signature 'v' value (${v})`);
|
|
63
|
+
const signatureCell = (0, core_1.beginCell)()
|
|
64
|
+
.storeUint(BigInt("0x" + signature.substring(0, 64)), 256)
|
|
65
|
+
.storeUint(BigInt("0x" + signature.substring(64, 128)), 256)
|
|
66
|
+
.storeUint(v, 8)
|
|
67
|
+
.endCell();
|
|
68
|
+
console.assert(data.length / 2 <= 127, "Must be implemented for larger data");
|
|
69
|
+
const dataCell = (0, core_1.beginCell)()
|
|
70
|
+
.storeBuffer(Buffer.from(stringToBytes("0x" + data)))
|
|
71
|
+
.endCell();
|
|
72
|
+
let skipLastBit = protocol_1.consts.DATA_POINTS_COUNT_BS * 8;
|
|
73
|
+
const dataPointsCount = dataCell
|
|
74
|
+
.asSlice()
|
|
75
|
+
.skip(dataCell.bits.length - skipLastBit)
|
|
76
|
+
.loadUintBig(protocol_1.consts.DATA_POINTS_COUNT_BS * 8);
|
|
77
|
+
skipLastBit += protocol_1.consts.DATA_POINT_VALUE_BYTE_SIZE_BS * 8;
|
|
78
|
+
const dataPointValueByteSize = dataCell
|
|
79
|
+
.asSlice()
|
|
80
|
+
.skip(dataCell.bits.length - skipLastBit)
|
|
81
|
+
.loadUintBig(protocol_1.consts.DATA_POINT_VALUE_BYTE_SIZE_BS * 8);
|
|
82
|
+
skipLastBit += protocol_1.consts.TIMESTAMP_BS * 8;
|
|
83
|
+
const timestamp = dataCell
|
|
84
|
+
.asSlice()
|
|
85
|
+
.skip(dataCell.bits.length - skipLastBit)
|
|
86
|
+
.loadUintBig(protocol_1.consts.TIMESTAMP_BS * 8);
|
|
87
|
+
skipLastBit += Number(dataPointValueByteSize) * 8;
|
|
88
|
+
const value = dataCell
|
|
89
|
+
.asSlice()
|
|
90
|
+
.skip(dataCell.bits.length - skipLastBit)
|
|
91
|
+
.loadUintBig(Number(dataPointValueByteSize) * 8);
|
|
92
|
+
let feedId = dataCell.asSlice().loadUintBig(protocol_1.consts.DATA_FEED_ID_BS * 8);
|
|
93
|
+
if (feedId != 0n) {
|
|
94
|
+
while (feedId == (feedId / 256n) * 256n) {
|
|
95
|
+
feedId = feedId / 256n;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
timestamp,
|
|
100
|
+
price: value,
|
|
101
|
+
feedId,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function storeMetadata(metadataHex, builder) {
|
|
105
|
+
const maxUnsignedDataLength = Math.floor(builder.availableBits / 8 -
|
|
106
|
+
(protocol_1.consts.REDSTONE_MARKER_BS + protocol_1.consts.DATA_PACKAGES_COUNT_BS + protocol_1.consts.UNSIGNED_METADATA_BYTE_SIZE_BS));
|
|
107
|
+
(0, assert_1.assert)(builder.availableBits >= metadataHex.length * 8, `Not enough bits available for metadata in builder. Unsigned metadata for this payload must not be larger than ${maxUnsignedDataLength}.`);
|
|
108
|
+
builder.storeBuilder(createBuilderFromString(metadataHex));
|
|
109
|
+
}
|
|
110
|
+
function createBuilderFromString(value) {
|
|
111
|
+
return (0, core_1.beginCell)().storeBuffer(Buffer.from(stringToBytes(value.startsWith("0x") ? value : "0x" + value)));
|
|
112
|
+
}
|
|
113
|
+
async function createPayload(assets) {
|
|
114
|
+
const paramsProvider = new sdk_1.ContractParamsProvider({
|
|
115
|
+
dataServiceId: "redstone-main-demo",
|
|
116
|
+
uniqueSignersCount: 5,
|
|
117
|
+
dataPackagesIds: assets,
|
|
118
|
+
});
|
|
119
|
+
const payloadHex = await paramsProvider.getPayloadHex(false);
|
|
120
|
+
const { dataPackageChunks, metadata } = splitPayloadHex(payloadHex);
|
|
121
|
+
const payloadCell = (0, core_1.beginCell)();
|
|
122
|
+
const cells = new Map();
|
|
123
|
+
for (let i = 0; i < dataPackageChunks.length; i++) {
|
|
124
|
+
cells.set(BigInt(i), dataPackageChunks[i]);
|
|
125
|
+
}
|
|
126
|
+
const dataPackagesDict = (0, core_1.beginCell)();
|
|
127
|
+
const BASE_KEY_LEN = 16;
|
|
128
|
+
(0, serializeDict_1.serializeDict)(cells, BASE_KEY_LEN, storeSignatureAndData, dataPackagesDict);
|
|
129
|
+
payloadCell.storeRef(dataPackagesDict);
|
|
130
|
+
storeMetadata(metadata, payloadCell);
|
|
131
|
+
return payloadCell.endCell();
|
|
132
|
+
}
|
|
133
|
+
function getHexlifiedFeedIds(assets) {
|
|
134
|
+
const paramsProvider = new sdk_1.ContractParamsProvider({
|
|
135
|
+
dataServiceId: "redstone-main-demo",
|
|
136
|
+
uniqueSignersCount: 5,
|
|
137
|
+
dataPackagesIds: assets,
|
|
138
|
+
});
|
|
139
|
+
return paramsProvider.getHexlifiedFeedIds();
|
|
140
|
+
}
|
|
141
|
+
function getDataFeedIdTuples(assets) {
|
|
142
|
+
const dataFeedIdsTupleBuilder = new core_1.TupleBuilder();
|
|
143
|
+
getHexlifiedFeedIds(assets).forEach((item) => dataFeedIdsTupleBuilder.writeNumber(BigInt(item)));
|
|
144
|
+
return (0, core_1.serializeTuple)(dataFeedIdsTupleBuilder.build());
|
|
145
|
+
}
|
|
146
|
+
function createRedstoneHelper(type) {
|
|
147
|
+
const dataServiceId = type === "demo" ? "redstone-main-demo" : "redstone-primary-prod";
|
|
148
|
+
const uniqueSignersCount = type === "demo" ? 1 : 5;
|
|
149
|
+
/////////////////////////////////////////////
|
|
150
|
+
/////////////// CREATE PAYLOAD //////////////
|
|
151
|
+
async function createPayload(assets) {
|
|
152
|
+
if (assets.length === 0)
|
|
153
|
+
return (0, core_1.beginCell)().storeUint(0, 2).endCell();
|
|
154
|
+
const paramsProvider = new sdk_1.ContractParamsProvider({
|
|
155
|
+
dataServiceId,
|
|
156
|
+
uniqueSignersCount,
|
|
157
|
+
dataPackagesIds: assets,
|
|
158
|
+
});
|
|
159
|
+
const payloadHex = await paramsProvider.getPayloadHex(false);
|
|
160
|
+
const { dataPackageChunks, metadata } = splitPayloadHex(payloadHex);
|
|
161
|
+
const payloadCell = (0, core_1.beginCell)();
|
|
162
|
+
const cells = new Map();
|
|
163
|
+
for (let i = 0; i < dataPackageChunks.length; i++) {
|
|
164
|
+
cells.set(BigInt(i), dataPackageChunks[i]);
|
|
165
|
+
}
|
|
166
|
+
const dataPackagesDict = (0, core_1.beginCell)();
|
|
167
|
+
const BASE_KEY_LEN = 16;
|
|
168
|
+
(0, serializeDict_1.serializeDict)(cells, BASE_KEY_LEN, storeSignatureAndData, dataPackagesDict);
|
|
169
|
+
payloadCell.storeRef(dataPackagesDict);
|
|
170
|
+
storeMetadata(metadata, payloadCell);
|
|
171
|
+
return payloadCell.endCell();
|
|
172
|
+
}
|
|
173
|
+
async function getPrices(assets) {
|
|
174
|
+
const paramsProvider = new sdk_1.ContractParamsProvider({
|
|
175
|
+
dataServiceId,
|
|
176
|
+
uniqueSignersCount,
|
|
177
|
+
dataPackagesIds: assets,
|
|
178
|
+
});
|
|
179
|
+
const payloadHex = await paramsProvider.getPayloadHex(false);
|
|
180
|
+
const { dataPackageChunks, metadata } = splitPayloadHex(payloadHex);
|
|
181
|
+
const result = [];
|
|
182
|
+
for (let i = 0; i < dataPackageChunks.length; i++) {
|
|
183
|
+
result.push({
|
|
184
|
+
name: assets[i],
|
|
185
|
+
...parseDataPackageHex(dataPackageChunks[i]),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
/////////////////////////////////////////////
|
|
191
|
+
////////////// CREATE FEED_IDS //////////////
|
|
192
|
+
function getHexlifiedFeedIds(assets) {
|
|
193
|
+
const paramsProvider = new sdk_1.ContractParamsProvider({
|
|
194
|
+
dataServiceId,
|
|
195
|
+
uniqueSignersCount,
|
|
196
|
+
dataPackagesIds: assets,
|
|
197
|
+
});
|
|
198
|
+
return paramsProvider.getHexlifiedFeedIds();
|
|
199
|
+
}
|
|
200
|
+
/////////////////////////////////////////////
|
|
201
|
+
////////////// CREATE FEED_IDS //////////////
|
|
202
|
+
function getDataFeedIdTuples(assets) {
|
|
203
|
+
const dataFeedIdsTupleBuilder = new core_1.TupleBuilder();
|
|
204
|
+
getHexlifiedFeedIds(assets).forEach((item) => dataFeedIdsTupleBuilder.writeNumber(BigInt(item)));
|
|
205
|
+
return (0, core_1.serializeTuple)(dataFeedIdsTupleBuilder.build());
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
createPayload,
|
|
209
|
+
getHexlifiedFeedIds,
|
|
210
|
+
getDataFeedIdTuples,
|
|
211
|
+
getPrices,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
exports.default = {
|
|
215
|
+
getDataFeedIdTuples,
|
|
216
|
+
getHexlifiedFeedIds,
|
|
217
|
+
createPayload,
|
|
218
|
+
createRedstoneHelper,
|
|
219
|
+
};
|
|
220
|
+
const encoder = new TextEncoder();
|
|
221
|
+
function stringToBytes(value) {
|
|
222
|
+
const hexArray = value
|
|
223
|
+
.slice(2)
|
|
224
|
+
.match(/.{1,2}/g)
|
|
225
|
+
?.map((byte) => parseInt(byte, 16));
|
|
226
|
+
const buffer = Buffer.from(hexArray);
|
|
227
|
+
return buffer;
|
|
228
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Address, Cell, Slice } from "@ton/core";
|
|
2
|
+
import { Maybe } from "@ton/ton/dist/utils/maybe";
|
|
3
|
+
import { ActionNotificationMsgBody, TransferOutMsgBody } from "../contracts/core/pool/type";
|
|
4
|
+
export type BaseTxMsgBody = {
|
|
5
|
+
type: string;
|
|
6
|
+
opcode: number;
|
|
7
|
+
queryId: bigint;
|
|
8
|
+
};
|
|
9
|
+
type ExcessesMsgBody = BaseTxMsgBody & {
|
|
10
|
+
type: "JettonWallet.Op.Excesses";
|
|
11
|
+
};
|
|
12
|
+
type JettonTransferMsgBody = BaseTxMsgBody & {
|
|
13
|
+
type: "JettonWallet.Op.Transfer";
|
|
14
|
+
amount: bigint;
|
|
15
|
+
recipient: Address;
|
|
16
|
+
response: Maybe<Address>;
|
|
17
|
+
forwardTonAmount: bigint;
|
|
18
|
+
forwardPayload: Maybe<Slice>;
|
|
19
|
+
};
|
|
20
|
+
type JettonInternalTransferMsgBody = BaseTxMsgBody & {
|
|
21
|
+
type: "JettonWallet.Op.InternalTransfer";
|
|
22
|
+
amount: bigint;
|
|
23
|
+
fromAddress: Maybe<Address>;
|
|
24
|
+
response: Maybe<Address>;
|
|
25
|
+
forwardTonAmount: bigint;
|
|
26
|
+
forwardPayload: Maybe<Slice>;
|
|
27
|
+
};
|
|
28
|
+
type ShareVaultProvideAggregatedPoolMsgBody = BaseTxMsgBody & {
|
|
29
|
+
type: "ShareVault.Op.ProvideAggregatedPool";
|
|
30
|
+
pools: Address[];
|
|
31
|
+
forwardPayload: Maybe<Slice>;
|
|
32
|
+
};
|
|
33
|
+
export type TxMsgBody = TransferOutMsgBody | ExcessesMsgBody | JettonTransferMsgBody | JettonInternalTransferMsgBody | ShareVaultProvideAggregatedPoolMsgBody;
|
|
34
|
+
export declare function parseActionNotification(cell: Cell): ActionNotificationMsgBody;
|
|
35
|
+
export declare function parseJettonTransfer(cell: Cell): JettonTransferMsgBody;
|
|
36
|
+
export declare function parseJettonInternalTransfer(cell: Cell): JettonInternalTransferMsgBody;
|
|
37
|
+
export declare function parseProvideAggregatedPool(cell: Cell): ShareVaultProvideAggregatedPoolMsgBody;
|
|
38
|
+
export declare function parseExcesses(cell: Cell): ExcessesMsgBody;
|
|
39
|
+
export declare function parseTx(cell: Cell): TxMsgBody | undefined | any;
|
|
40
|
+
export {};
|