@sentio/sdk 2.60.0-rc.4 → 2.60.0-rc.6
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/lib/eth/base-processor.d.ts +3 -1
- package/lib/eth/base-processor.d.ts.map +1 -1
- package/lib/eth/base-processor.js +26 -0
- package/lib/eth/base-processor.js.map +1 -1
- package/lib/eth/eth-plugin.d.ts.map +1 -1
- package/lib/eth/eth-plugin.js +37 -3
- package/lib/eth/eth-plugin.js.map +1 -1
- package/lib/iota/builtin/0x1.d.ts +817 -0
- package/lib/iota/builtin/0x1.d.ts.map +1 -0
- package/lib/iota/builtin/0x1.js +4385 -0
- package/lib/iota/builtin/0x1.js.map +1 -0
- package/lib/iota/builtin/0x2.d.ts +4529 -0
- package/lib/iota/builtin/0x2.d.ts.map +1 -0
- package/lib/iota/builtin/0x2.js +17109 -0
- package/lib/iota/builtin/0x2.js.map +1 -0
- package/lib/iota/builtin/0x3.d.ts +2293 -0
- package/lib/iota/builtin/0x3.d.ts.map +1 -0
- package/lib/iota/builtin/0x3.js +6522 -0
- package/lib/iota/builtin/0x3.js.map +1 -0
- package/lib/iota/builtin/index.d.ts +4 -0
- package/lib/iota/builtin/index.d.ts.map +1 -0
- package/lib/iota/builtin/index.js +7 -0
- package/lib/iota/builtin/index.js.map +1 -0
- package/lib/iota/codegen/codegen.d.ts +2 -0
- package/lib/iota/codegen/codegen.d.ts.map +1 -0
- package/lib/iota/codegen/codegen.js +94 -0
- package/lib/iota/codegen/codegen.js.map +1 -0
- package/lib/iota/codegen/index.d.ts +2 -0
- package/lib/iota/codegen/index.d.ts.map +1 -0
- package/lib/iota/codegen/index.js +2 -0
- package/lib/iota/codegen/index.js.map +1 -0
- package/lib/iota/codegen/run.d.ts +2 -0
- package/lib/iota/codegen/run.d.ts.map +1 -0
- package/lib/iota/codegen/run.js +12 -0
- package/lib/iota/codegen/run.js.map +1 -0
- package/lib/iota/context.d.ts +50 -0
- package/lib/iota/context.d.ts.map +1 -0
- package/lib/iota/context.js +134 -0
- package/lib/iota/context.js.map +1 -0
- package/lib/iota/ext/coin.d.ts +17 -0
- package/lib/iota/ext/coin.d.ts.map +1 -0
- package/lib/iota/ext/coin.js +532 -0
- package/lib/iota/ext/coin.js.map +1 -0
- package/lib/iota/ext/index.d.ts +3 -0
- package/lib/iota/ext/index.d.ts.map +1 -0
- package/lib/iota/ext/index.js +3 -0
- package/lib/iota/ext/index.js.map +1 -0
- package/lib/iota/ext/move-dex.d.ts +19 -0
- package/lib/iota/ext/move-dex.d.ts.map +1 -0
- package/lib/iota/ext/move-dex.js +24 -0
- package/lib/iota/ext/move-dex.js.map +1 -0
- package/lib/iota/index.d.ts +11 -0
- package/lib/iota/index.d.ts.map +1 -0
- package/lib/iota/index.js +12 -0
- package/lib/iota/index.js.map +1 -0
- package/lib/iota/iota-object-processor-template.d.ts +44 -0
- package/lib/iota/iota-object-processor-template.d.ts.map +1 -0
- package/lib/iota/iota-object-processor-template.js +171 -0
- package/lib/iota/iota-object-processor-template.js.map +1 -0
- package/lib/iota/iota-object-processor.d.ts +83 -0
- package/lib/iota/iota-object-processor.d.ts.map +1 -0
- package/lib/iota/iota-object-processor.js +193 -0
- package/lib/iota/iota-object-processor.js.map +1 -0
- package/lib/iota/iota-plugin-part.d.ts +12 -0
- package/lib/iota/iota-plugin-part.d.ts.map +1 -0
- package/lib/iota/iota-plugin-part.js +178 -0
- package/lib/iota/iota-plugin-part.js.map +1 -0
- package/lib/iota/iota-plugin.d.ts +3 -0
- package/lib/iota/iota-plugin.d.ts.map +1 -0
- package/lib/iota/iota-plugin.js +4 -0
- package/lib/iota/iota-plugin.js.map +1 -0
- package/lib/iota/iota-processor.d.ts +47 -0
- package/lib/iota/iota-processor.d.ts.map +1 -0
- package/lib/iota/iota-processor.js +223 -0
- package/lib/iota/iota-processor.js.map +1 -0
- package/lib/iota/models.d.ts +12 -0
- package/lib/iota/models.d.ts.map +1 -0
- package/lib/iota/models.js +2 -0
- package/lib/iota/models.js.map +1 -0
- package/lib/iota/move-coder.d.ts +4 -0
- package/lib/iota/move-coder.d.ts.map +1 -0
- package/lib/iota/move-coder.js +12 -0
- package/lib/iota/move-coder.js.map +1 -0
- package/lib/iota/network.d.ts +10 -0
- package/lib/iota/network.d.ts.map +1 -0
- package/lib/iota/network.js +24 -0
- package/lib/iota/network.js.map +1 -0
- package/lib/iota/utils.d.ts +3 -0
- package/lib/iota/utils.d.ts.map +1 -0
- package/lib/iota/utils.js +41 -0
- package/lib/iota/utils.js.map +1 -0
- package/lib/sui/network.d.ts.map +1 -1
- package/lib/sui/network.js +0 -3
- package/lib/sui/network.js.map +1 -1
- package/lib/sui/sui-plugin-part.d.ts +12 -0
- package/lib/sui/sui-plugin-part.d.ts.map +1 -0
- package/lib/sui/sui-plugin-part.js +178 -0
- package/lib/sui/sui-plugin-part.js.map +1 -0
- package/lib/sui/sui-plugin.d.ts +4 -0
- package/lib/sui/sui-plugin.d.ts.map +1 -1
- package/lib/sui/sui-plugin.js +12 -159
- package/lib/sui/sui-plugin.js.map +1 -1
- package/lib/testing/iota-facet.d.ts +14 -0
- package/lib/testing/iota-facet.d.ts.map +1 -0
- package/lib/testing/iota-facet.js +124 -0
- package/lib/testing/iota-facet.js.map +1 -0
- package/lib/testing/test-processor-server.d.ts +2 -0
- package/lib/testing/test-processor-server.d.ts.map +1 -1
- package/lib/testing/test-processor-server.js +3 -0
- package/lib/testing/test-processor-server.js.map +1 -1
- package/package.json +20 -8
- package/src/eth/base-processor.ts +43 -1
- package/src/eth/eth-plugin.ts +41 -3
- package/src/iota/abis/0x1.json +4213 -0
- package/src/iota/abis/0x2.json +26692 -0
- package/src/iota/abis/0x3.json +10598 -0
- package/src/iota/builtin/0x1.ts +6292 -0
- package/src/iota/builtin/0x2.ts +26198 -0
- package/src/iota/builtin/0x3.ts +11144 -0
- package/src/iota/builtin/index.ts +6 -0
- package/src/iota/codegen/codegen.ts +118 -0
- package/src/iota/codegen/index.ts +1 -0
- package/src/iota/codegen/run.ts +13 -0
- package/src/iota/context.ts +200 -0
- package/src/iota/ext/coin.ts +565 -0
- package/src/iota/ext/index.ts +2 -0
- package/src/iota/ext/move-dex.ts +52 -0
- package/src/iota/index.ts +29 -0
- package/src/iota/iota-object-processor-template.ts +277 -0
- package/src/iota/iota-object-processor.ts +386 -0
- package/src/iota/iota-plugin-part.ts +211 -0
- package/src/iota/iota-plugin.ts +2 -0
- package/src/iota/iota-processor.ts +339 -0
- package/src/iota/models.ts +14 -0
- package/src/iota/move-coder.ts +15 -0
- package/src/iota/network.ts +27 -0
- package/src/iota/utils.ts +52 -0
- package/src/sui/network.ts +0 -3
- package/src/sui/sui-plugin-part.ts +211 -0
- package/src/sui/sui-plugin.ts +12 -178
- package/src/testing/iota-facet.ts +143 -0
- package/src/testing/test-processor-server.ts +3 -0
@@ -0,0 +1,94 @@
|
|
1
|
+
import * as fs from 'fs';
|
2
|
+
import chalk from 'chalk';
|
3
|
+
import { structQname } from '@typemove/move';
|
4
|
+
import { IotaCodegen as BaseIotaCodegen } from '@typemove/iota/codegen';
|
5
|
+
import path, { join } from 'path';
|
6
|
+
import { SharedNetworkCodegen } from '../../move/shared-network-codegen.js';
|
7
|
+
import { getRpcEndpoint, IotaNetwork } from '../network.js';
|
8
|
+
import { recursiveCodegen } from '../../core/codegen.js';
|
9
|
+
export async function codegen(abisDir, outDir = join('src', 'types', 'iota'), genExample = false, builtin = false) {
|
10
|
+
if (!fs.existsSync(abisDir)) {
|
11
|
+
return;
|
12
|
+
}
|
13
|
+
const gen = new IotaCodegen();
|
14
|
+
const numFiles = await gen.generate(abisDir, outDir, builtin);
|
15
|
+
console.log(chalk.green(`Generated ${numFiles} for Iota`));
|
16
|
+
}
|
17
|
+
class IotaNetworkCodegen extends BaseIotaCodegen {
|
18
|
+
moduleGenerator;
|
19
|
+
SYSTEM_PACKAGE = '@sentio/sdk/iota';
|
20
|
+
constructor(network) {
|
21
|
+
const endpoint = getRpcEndpoint(network);
|
22
|
+
super(endpoint);
|
23
|
+
const generator = this;
|
24
|
+
this.moduleGenerator = new (class extends SharedNetworkCodegen {
|
25
|
+
ADDRESS_TYPE = 'string';
|
26
|
+
PREFIX = 'Iota';
|
27
|
+
SYSTEM_PACKAGE = '@sentio/sdk/iota';
|
28
|
+
NETWORK = IotaNetwork;
|
29
|
+
generateStructs(module, struct, events) {
|
30
|
+
let content = '';
|
31
|
+
switch (structQname(module, struct)) {
|
32
|
+
// TODO they should still have module code generated
|
33
|
+
case '0x1::ascii::Char':
|
34
|
+
case '0x1::ascii::String':
|
35
|
+
case '0x2::object::ID':
|
36
|
+
content += `export type ${struct.name} = string`;
|
37
|
+
break;
|
38
|
+
case '0x2::coin::Coin':
|
39
|
+
content += `export type ${struct.name}<T> = string`;
|
40
|
+
break;
|
41
|
+
case '0x2::balance::Balance':
|
42
|
+
content += `export type ${struct.name}<T> = bigint`;
|
43
|
+
break;
|
44
|
+
case '0x1::option::Option':
|
45
|
+
content += `export type Option<T> = T | undefined`;
|
46
|
+
break;
|
47
|
+
}
|
48
|
+
return content + super.generateStructs(module, struct, events, content !== '');
|
49
|
+
}
|
50
|
+
generateForOnEvents(module, struct) {
|
51
|
+
switch (structQname(module, struct)) {
|
52
|
+
case '0x1::ascii::Char':
|
53
|
+
case '0x1::ascii::String':
|
54
|
+
case '0x2::object::ID':
|
55
|
+
case '0x2::coin::Coin':
|
56
|
+
case '0x1::option::Option':
|
57
|
+
case '0x2::balance::Balance':
|
58
|
+
return '';
|
59
|
+
}
|
60
|
+
return super.generateForOnEvents(module, struct);
|
61
|
+
}
|
62
|
+
generateExtra(address, module) {
|
63
|
+
return generator.generateExtra(address, module);
|
64
|
+
}
|
65
|
+
})(network, this.chainAdapter);
|
66
|
+
}
|
67
|
+
generateModule(module, allEventStructs) {
|
68
|
+
return this.moduleGenerator.generateModule(module, allEventStructs);
|
69
|
+
}
|
70
|
+
generateImports() {
|
71
|
+
return super.generateImports() + this.moduleGenerator.generateImports();
|
72
|
+
}
|
73
|
+
generateLoadAll(isSystem) {
|
74
|
+
return this.moduleGenerator.generateLoadAll(isSystem);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
//
|
78
|
+
const MAINNET_CODEGEN = new IotaNetworkCodegen(IotaNetwork.MAIN_NET);
|
79
|
+
const TESTNET_CODEGEN = new IotaNetworkCodegen(IotaNetwork.TEST_NET);
|
80
|
+
class IotaCodegen {
|
81
|
+
async generate(srcDir, outputDir, builtin = false) {
|
82
|
+
let numFiles = 0;
|
83
|
+
const generators = [
|
84
|
+
['', MAINNET_CODEGEN],
|
85
|
+
['testnet', TESTNET_CODEGEN]
|
86
|
+
];
|
87
|
+
for (const [network, gen] of generators) {
|
88
|
+
const exclude = network ? [] : ['testnet'];
|
89
|
+
numFiles += await recursiveCodegen(path.join(srcDir, network), path.join(outputDir, network), (src, dst) => gen.generate(src, dst, builtin), exclude);
|
90
|
+
}
|
91
|
+
return numFiles;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
//# sourceMappingURL=codegen.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/iota/codegen/codegen.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/iota/codegen/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/iota/codegen/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/iota/codegen/run.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// #!/usr/bin/env node
|
2
|
+
import { codegen } from './codegen.js';
|
3
|
+
if (process.argv.length > 3) {
|
4
|
+
const abisDir = process.argv[2];
|
5
|
+
const targetDir = process.argv[3];
|
6
|
+
await codegen(abisDir, targetDir, false, true);
|
7
|
+
}
|
8
|
+
else {
|
9
|
+
console.error('Not enough argument');
|
10
|
+
process.exit(1);
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=run.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/iota/codegen/run.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEjC,MAAM,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AAChD,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { RecordMetaData } from '@sentio/protos';
|
2
|
+
import { type Labels } from '../index.js';
|
3
|
+
import { IotaNetwork } from './network.js';
|
4
|
+
import { IotaTransactionBlockResponse, IotaEvent, IotaMoveNormalizedModule, IotaMoveObject, IotaClient } from '@iota/iota-sdk/client';
|
5
|
+
import { MoveCoder } from './index.js';
|
6
|
+
import { MoveAccountContext, MoveContext } from '../move/index.js';
|
7
|
+
export declare class IotaContext extends MoveContext<IotaNetwork, IotaMoveNormalizedModule, IotaEvent | IotaMoveObject> {
|
8
|
+
moduleName: string;
|
9
|
+
timestamp: Date;
|
10
|
+
checkpoint: bigint;
|
11
|
+
transaction: IotaTransactionBlockResponse;
|
12
|
+
eventIndex: number;
|
13
|
+
coder: MoveCoder;
|
14
|
+
constructor(moduleName: string, network: IotaNetwork, address: string, timestamp: Date, checkpoint: bigint, transaction: IotaTransactionBlockResponse, eventIndex: number, baseLabels: Labels | undefined);
|
15
|
+
getChainId(): import("@sentio/chain").SuiChainId;
|
16
|
+
getTimestamp(): number;
|
17
|
+
getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
|
18
|
+
get client(): IotaClient;
|
19
|
+
}
|
20
|
+
export declare class IotaObjectChangeContext extends MoveContext<IotaNetwork, IotaMoveNormalizedModule, IotaEvent | IotaMoveObject> {
|
21
|
+
timestamp: Date;
|
22
|
+
checkpoint: bigint;
|
23
|
+
coder: MoveCoder;
|
24
|
+
txDigest: string;
|
25
|
+
constructor(network: IotaNetwork, address: string, timestamp: Date, checkpoint: bigint, txDigest: string, baseLabels: Labels | undefined);
|
26
|
+
getChainId(): import("@sentio/chain").SuiChainId;
|
27
|
+
getTimestamp(): number;
|
28
|
+
getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
|
29
|
+
get client(): IotaClient;
|
30
|
+
}
|
31
|
+
export declare class IotaAddressContext extends MoveAccountContext<IotaNetwork, IotaMoveNormalizedModule, IotaEvent | IotaMoveObject> {
|
32
|
+
address: string;
|
33
|
+
network: IotaNetwork;
|
34
|
+
checkpoint: bigint;
|
35
|
+
timestamp: Date;
|
36
|
+
coder: MoveCoder;
|
37
|
+
protected contractName: string;
|
38
|
+
constructor(network: IotaNetwork, address: string, checkpoint: bigint, timestamp: Date, baseLabels: Labels | undefined);
|
39
|
+
getChainId(): import("@sentio/chain").SuiChainId;
|
40
|
+
getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
|
41
|
+
get client(): IotaClient;
|
42
|
+
getTimestamp(): number;
|
43
|
+
}
|
44
|
+
export declare class IotaObjectContext extends IotaAddressContext {
|
45
|
+
contractName: string;
|
46
|
+
objectId: string;
|
47
|
+
objectVersion: bigint;
|
48
|
+
constructor(network: IotaNetwork, objectId: string, objectVersion: bigint, checkpoint: bigint, timestamp: Date, baseLabels: Labels | undefined);
|
49
|
+
}
|
50
|
+
//# sourceMappingURL=context.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/iota/context.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,134 @@
|
|
1
|
+
import { normalizeLabels } from '../index.js';
|
2
|
+
import { getClient } from './network.js';
|
3
|
+
import { defaultMoveCoder } from './move-coder.js';
|
4
|
+
import { MoveAccountContext, MoveContext } from '../move/index.js';
|
5
|
+
export class IotaContext extends MoveContext {
|
6
|
+
moduleName;
|
7
|
+
timestamp;
|
8
|
+
checkpoint;
|
9
|
+
transaction;
|
10
|
+
eventIndex;
|
11
|
+
coder;
|
12
|
+
constructor(moduleName, network, address, timestamp, checkpoint, transaction, eventIndex, baseLabels) {
|
13
|
+
super(baseLabels);
|
14
|
+
this.address = address.toLowerCase();
|
15
|
+
this.network = network;
|
16
|
+
this.moduleName = moduleName;
|
17
|
+
this.timestamp = timestamp;
|
18
|
+
this.checkpoint = checkpoint;
|
19
|
+
this.eventIndex = eventIndex;
|
20
|
+
this.coder = defaultMoveCoder(network);
|
21
|
+
if (transaction) {
|
22
|
+
this.transaction = transaction;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
getChainId() {
|
26
|
+
return this.network;
|
27
|
+
}
|
28
|
+
getTimestamp() {
|
29
|
+
return this.timestamp.getDate();
|
30
|
+
}
|
31
|
+
getMetaDataInternal(name, labels) {
|
32
|
+
return {
|
33
|
+
address: this.address,
|
34
|
+
contractName: this.moduleName,
|
35
|
+
blockNumber: this.checkpoint,
|
36
|
+
transactionIndex: 0,
|
37
|
+
transactionHash: this.transaction?.digest || '', // TODO
|
38
|
+
logIndex: this.eventIndex,
|
39
|
+
chainId: this.getChainId(),
|
40
|
+
name: name,
|
41
|
+
labels: normalizeLabels(labels)
|
42
|
+
};
|
43
|
+
}
|
44
|
+
get client() {
|
45
|
+
return getClient(this.network);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
export class IotaObjectChangeContext extends MoveContext {
|
49
|
+
timestamp;
|
50
|
+
checkpoint;
|
51
|
+
coder;
|
52
|
+
txDigest;
|
53
|
+
constructor(network, address, timestamp, checkpoint, txDigest, baseLabels) {
|
54
|
+
super(baseLabels);
|
55
|
+
this.address = address;
|
56
|
+
this.network = network;
|
57
|
+
this.timestamp = timestamp;
|
58
|
+
this.checkpoint = checkpoint;
|
59
|
+
this.txDigest = txDigest;
|
60
|
+
this.coder = defaultMoveCoder(network);
|
61
|
+
}
|
62
|
+
getChainId() {
|
63
|
+
return this.network;
|
64
|
+
}
|
65
|
+
getTimestamp() {
|
66
|
+
return this.timestamp.getDate();
|
67
|
+
}
|
68
|
+
getMetaDataInternal(name, labels) {
|
69
|
+
return {
|
70
|
+
address: this.address,
|
71
|
+
contractName: '*',
|
72
|
+
blockNumber: this.checkpoint,
|
73
|
+
transactionIndex: -1,
|
74
|
+
transactionHash: this.txDigest,
|
75
|
+
logIndex: 0,
|
76
|
+
chainId: this.getChainId(),
|
77
|
+
name: name,
|
78
|
+
labels: normalizeLabels(labels)
|
79
|
+
};
|
80
|
+
}
|
81
|
+
get client() {
|
82
|
+
return getClient(this.network);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
// TODO address handler should use this context
|
86
|
+
export class IotaAddressContext extends MoveAccountContext {
|
87
|
+
address;
|
88
|
+
network;
|
89
|
+
checkpoint;
|
90
|
+
timestamp;
|
91
|
+
coder;
|
92
|
+
contractName = 'address';
|
93
|
+
constructor(network, address, checkpoint, timestamp, baseLabels) {
|
94
|
+
super(baseLabels);
|
95
|
+
this.address = address;
|
96
|
+
this.network = network;
|
97
|
+
this.checkpoint = checkpoint;
|
98
|
+
this.timestamp = timestamp;
|
99
|
+
this.coder = defaultMoveCoder(network);
|
100
|
+
}
|
101
|
+
getChainId() {
|
102
|
+
return this.network;
|
103
|
+
}
|
104
|
+
getMetaDataInternal(name, labels) {
|
105
|
+
return {
|
106
|
+
address: this.address,
|
107
|
+
contractName: this.contractName,
|
108
|
+
blockNumber: this.checkpoint,
|
109
|
+
transactionIndex: 0,
|
110
|
+
transactionHash: '',
|
111
|
+
logIndex: 0,
|
112
|
+
chainId: this.getChainId(),
|
113
|
+
name: name,
|
114
|
+
labels: normalizeLabels(labels)
|
115
|
+
};
|
116
|
+
}
|
117
|
+
get client() {
|
118
|
+
return getClient(this.network);
|
119
|
+
}
|
120
|
+
getTimestamp() {
|
121
|
+
return this.timestamp.getDate();
|
122
|
+
}
|
123
|
+
}
|
124
|
+
export class IotaObjectContext extends IotaAddressContext {
|
125
|
+
contractName = 'object';
|
126
|
+
objectId;
|
127
|
+
objectVersion;
|
128
|
+
constructor(network, objectId, objectVersion, checkpoint, timestamp, baseLabels) {
|
129
|
+
super(network, objectId, checkpoint, timestamp, baseLabels);
|
130
|
+
this.objectId = objectId;
|
131
|
+
this.objectVersion = objectVersion;
|
132
|
+
}
|
133
|
+
}
|
134
|
+
//# sourceMappingURL=context.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/iota/context.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { BaseCoinInfo } from '../../move/ext/index.js';
|
2
|
+
import { IotaNetwork } from '../network.js';
|
3
|
+
export declare function initCoinList(): Promise<void>;
|
4
|
+
export interface IotaCoinInfo {
|
5
|
+
network: string;
|
6
|
+
address: string;
|
7
|
+
symbol: string;
|
8
|
+
name: string;
|
9
|
+
decimals: number;
|
10
|
+
}
|
11
|
+
export declare function whitelistCoins(): Map<string, BaseCoinInfo>;
|
12
|
+
export declare function whiteListed(coin: string): boolean;
|
13
|
+
export declare function getCoinInfo(type: string): BaseCoinInfo;
|
14
|
+
export declare function getCoinInfoWithFallback(type: string, network?: IotaNetwork): Promise<BaseCoinInfo>;
|
15
|
+
export declare function getPrice(coinType: string, timestamp: number): Promise<number>;
|
16
|
+
export declare function calculateValueInUsd(n: bigint, coinInfo: BaseCoinInfo, timestamp: number): Promise<import("@sentio/bigdecimal").BigDecimal>;
|
17
|
+
//# sourceMappingURL=coin.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"coin.d.ts","sourceRoot":"","sources":["../../../src/iota/ext/coin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAMtD,OAAO,EAAa,WAAW,EAAE,MAAM,eAAe,CAAA;AAKtD,wBAAsB,YAAY,kBAUjC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AA6BD,wBAAgB,cAAc,8BAE7B;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAatD;AAID,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAyBxG;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWnF;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oDAI7F"}
|