@alephium/web3 0.2.0-rc.1 → 0.2.0-rc.10

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.
Files changed (89) hide show
  1. package/.eslintignore +2 -2
  2. package/README.md +2 -135
  3. package/contracts/greeter/greeter.ral +2 -2
  4. package/contracts/greeter/greeter_interface.ral +1 -0
  5. package/contracts/greeter_main.ral +0 -2
  6. package/dist/alephium-web3.min.js +1 -1
  7. package/dist/alephium-web3.min.js.LICENSE.txt +0 -17
  8. package/dist/alephium-web3.min.js.map +1 -1
  9. package/dist/scripts/create-project.js +3 -2
  10. package/dist/src/api/api-alephium.d.ts +44 -11
  11. package/dist/src/api/api-alephium.js +16 -0
  12. package/dist/src/api/api-explorer.d.ts +16 -16
  13. package/dist/src/api/index.d.ts +2 -2
  14. package/dist/src/api/index.js +18 -3
  15. package/dist/src/contract/contract.d.ts +101 -52
  16. package/dist/src/contract/contract.js +353 -219
  17. package/dist/src/contract/index.js +5 -1
  18. package/dist/src/global.d.ts +4 -0
  19. package/dist/src/global.js +38 -0
  20. package/dist/src/index.d.ts +2 -0
  21. package/dist/src/index.js +20 -1
  22. package/dist/src/signer/index.d.ts +0 -1
  23. package/dist/src/signer/index.js +5 -2
  24. package/dist/src/signer/signer.d.ts +1 -1
  25. package/dist/src/signer/signer.js +8 -3
  26. package/dist/src/transaction/index.d.ts +0 -1
  27. package/dist/src/transaction/index.js +5 -2
  28. package/dist/src/utils/index.d.ts +0 -1
  29. package/dist/src/utils/index.js +5 -2
  30. package/dist/src/utils/subscription.d.ts +0 -1
  31. package/dist/src/utils/subscription.js +2 -1
  32. package/dist/src/utils/utils.d.ts +5 -4
  33. package/dist/src/utils/utils.js +17 -16
  34. package/jest-config.json +11 -0
  35. package/package.json +6 -34
  36. package/scripts/create-project.ts +3 -2
  37. package/src/api/api-alephium.ts +53 -5
  38. package/src/api/index.ts +13 -3
  39. package/src/contract/contract.ts +505 -318
  40. package/src/contract/events.ts +2 -2
  41. package/src/{transaction/sign-verify.ts → global.ts} +14 -15
  42. package/src/index.ts +3 -0
  43. package/src/signer/index.ts +0 -1
  44. package/src/signer/signer.ts +3 -2
  45. package/src/transaction/index.ts +0 -1
  46. package/src/transaction/status.ts +1 -1
  47. package/src/utils/index.ts +0 -1
  48. package/src/utils/subscription.ts +3 -3
  49. package/src/utils/utils.ts +10 -10
  50. package/templates/base/package.json +2 -2
  51. package/templates/base/src/greeter.ts +8 -7
  52. package/templates/react/package.json +2 -2
  53. package/templates/react/src/App.tsx +2 -2
  54. package/.eslintrc.json +0 -21
  55. package/LICENSE +0 -165
  56. package/contracts/add/add.ral +0 -16
  57. package/contracts/main.ral +0 -6
  58. package/contracts/sub/sub.ral +0 -9
  59. package/dist/src/signer/node-wallet.d.ts +0 -13
  60. package/dist/src/signer/node-wallet.js +0 -60
  61. package/dist/src/test/index.d.ts +0 -7
  62. package/dist/src/test/index.js +0 -41
  63. package/dist/src/test/privatekey-wallet.d.ts +0 -12
  64. package/dist/src/test/privatekey-wallet.js +0 -68
  65. package/dist/src/transaction/sign-verify.d.ts +0 -2
  66. package/dist/src/transaction/sign-verify.js +0 -58
  67. package/dist/src/utils/password-crypto.d.ts +0 -2
  68. package/dist/src/utils/password-crypto.js +0 -69
  69. package/gitignore +0 -10
  70. package/src/contract/ralph.test.ts +0 -178
  71. package/src/fixtures/address.json +0 -36
  72. package/src/fixtures/balance.json +0 -9
  73. package/src/fixtures/self-clique.json +0 -19
  74. package/src/fixtures/transaction.json +0 -13
  75. package/src/fixtures/transactions.json +0 -179
  76. package/src/signer/fixtures/genesis.json +0 -26
  77. package/src/signer/fixtures/wallets.json +0 -26
  78. package/src/signer/node-wallet.ts +0 -74
  79. package/src/test/index.ts +0 -32
  80. package/src/test/privatekey-wallet.ts +0 -58
  81. package/src/transaction/sign-verify.test.ts +0 -50
  82. package/src/utils/address.test.ts +0 -47
  83. package/src/utils/djb2.test.ts +0 -35
  84. package/src/utils/password-crypto.test.ts +0 -27
  85. package/src/utils/password-crypto.ts +0 -77
  86. package/src/utils/utils.test.ts +0 -161
  87. package/test/contract.test.ts +0 -178
  88. package/test/events.test.ts +0 -138
  89. package/test/transaction.test.ts +0 -72
@@ -73,7 +73,7 @@ function prepareShared(packageRoot, projectRoot) {
73
73
  console.log(` to ${projectRoot}`);
74
74
  console.log('...');
75
75
  fs_extra_1.default.copySync(path_1.default.join(packageRoot, 'templates/shared'), projectRoot);
76
- copy('', ['.editorconfig', '.eslintignore', '.gitattributes', 'LICENSE']);
76
+ copy('', ['.editorconfig', '.eslintignore', '.gitattributes']);
77
77
  copy('dev', ['user.conf']);
78
78
  copy('scripts', ['start-devnet.js', 'stop-devnet.js']);
79
79
  if (fs_extra_1.default.existsSync(path_1.default.join(packageRoot, 'gitignore'))) {
@@ -86,7 +86,8 @@ function prepareShared(packageRoot, projectRoot) {
86
86
  }
87
87
  function prepareBase(packageRoot, projectRoot) {
88
88
  prepareShared(packageRoot, projectRoot);
89
- copy('contracts', ['greeter.ral', 'greeter_interface.ral', 'greeter_main.ral']);
89
+ copy('contracts', ['greeter_main.ral']);
90
+ copy('contracts/greeter', ['greeter.ral', 'greeter_interface.ral']);
90
91
  fs_extra_1.default.copySync(path_1.default.join(packageRoot, 'templates/base'), projectRoot);
91
92
  }
92
93
  function prepareReact(packageRoot, projectRoot, projectName) {
@@ -305,17 +305,33 @@ export interface ChangeActiveAddress {
305
305
  address: string;
306
306
  }
307
307
  export interface CompileContractResult {
308
+ name: string;
308
309
  bytecode: string;
309
310
  /** @format 32-byte-hash */
310
311
  codeHash: string;
311
312
  fields: FieldsSig;
312
313
  functions: FunctionSig[];
313
314
  events: EventSig[];
315
+ warnings: string[];
316
+ }
317
+ export interface CompileProjectResult {
318
+ contracts: CompileContractResult[];
319
+ scripts: CompileScriptResult[];
314
320
  }
315
321
  export interface CompileScriptResult {
322
+ name: string;
316
323
  bytecodeTemplate: string;
317
324
  fields: FieldsSig;
318
325
  functions: FunctionSig[];
326
+ warnings: string[];
327
+ }
328
+ export interface CompilerOptions {
329
+ ignoreUnusedConstantsWarnings?: boolean;
330
+ ignoreUnusedVariablesWarnings?: boolean;
331
+ ignoreUnusedFieldsWarnings?: boolean;
332
+ ignoreUnusedPrivateFunctionsWarnings?: boolean;
333
+ ignoreReadonlyCheckWarnings?: boolean;
334
+ ignoreExternalCallCheckWarnings?: boolean;
319
335
  }
320
336
  export interface Confirmed {
321
337
  /** @format block-hash */
@@ -332,6 +348,7 @@ export interface Confirmed {
332
348
  }
333
349
  export interface Contract {
334
350
  code: string;
351
+ compilerOptions?: CompilerOptions;
335
352
  }
336
353
  export interface ContractEvent {
337
354
  /** @format block-hash */
@@ -409,7 +426,6 @@ export interface Destination {
409
426
  export declare type DiscoveryAction = Reachable | Unreachable;
410
427
  export interface EventSig {
411
428
  name: string;
412
- signature: string;
413
429
  fieldNames: string[];
414
430
  fieldTypes: string[];
415
431
  }
@@ -417,9 +433,9 @@ export interface FetchResponse {
417
433
  blocks: BlockEntry[][];
418
434
  }
419
435
  export interface FieldsSig {
420
- signature: string;
421
436
  names: string[];
422
437
  types: string[];
438
+ isMutable: boolean[];
423
439
  }
424
440
  export interface FixedAssetOutput {
425
441
  /** @format int32 */
@@ -438,9 +454,12 @@ export interface FixedAssetOutput {
438
454
  }
439
455
  export interface FunctionSig {
440
456
  name: string;
441
- signature: string;
442
- argNames: string[];
443
- argTypes: string[];
457
+ usePreapprovedAssets: boolean;
458
+ useAssetsInContract: boolean;
459
+ isPublic: boolean;
460
+ paramNames: string[];
461
+ paramTypes: string[];
462
+ paramIsMutable: boolean[];
444
463
  returnTypes: string[];
445
464
  }
446
465
  export interface Group {
@@ -522,6 +541,10 @@ export interface Penalty {
522
541
  value: number;
523
542
  type: string;
524
543
  }
544
+ export interface Project {
545
+ code: string;
546
+ compilerOptions?: CompilerOptions;
547
+ }
525
548
  export interface Reachable {
526
549
  peers: string[];
527
550
  type: string;
@@ -542,6 +565,7 @@ export interface RevealMnemonicResult {
542
565
  }
543
566
  export interface Script {
544
567
  code: string;
568
+ compilerOptions?: CompilerOptions;
545
569
  }
546
570
  export interface SelfClique {
547
571
  /** @format clique-id */
@@ -1013,8 +1037,8 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
1013
1037
  * @request POST:/wallets/{wallet_name}/derive-next-address
1014
1038
  */
1015
1039
  postWalletsWalletNameDeriveNextAddress: (walletName: string, query?: {
1016
- group?: number | undefined;
1017
- } | undefined, params?: RequestParams) => Promise<AddressInfo>;
1040
+ group?: number;
1041
+ }, params?: RequestParams) => Promise<AddressInfo>;
1018
1042
  /**
1019
1043
  * @description Your wallet need to have been created with the miner flag set to true
1020
1044
  *
@@ -1146,8 +1170,8 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
1146
1170
  * @request GET:/infos/current-hashrate
1147
1171
  */
1148
1172
  getInfosCurrentHashrate: (query?: {
1149
- timespan?: number | undefined;
1150
- } | undefined, params?: RequestParams) => Promise<string>;
1173
+ timespan?: number;
1174
+ }, params?: RequestParams) => Promise<string>;
1151
1175
  };
1152
1176
  blockflow: {
1153
1177
  /**
@@ -1334,6 +1358,15 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
1334
1358
  * @request POST:/contracts/compile-contract
1335
1359
  */
1336
1360
  postContractsCompileContract: (data: Contract, params?: RequestParams) => Promise<CompileContractResult>;
1361
+ /**
1362
+ * No description
1363
+ *
1364
+ * @tags Contracts
1365
+ * @name PostContractsCompileProject
1366
+ * @summary Compile a project
1367
+ * @request POST:/contracts/compile-project
1368
+ */
1369
+ postContractsCompileProject: (data: Project, params?: RequestParams) => Promise<CompileProjectResult>;
1337
1370
  /**
1338
1371
  * No description
1339
1372
  *
@@ -1485,8 +1518,8 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
1485
1518
  * @request GET:/events/tx-id/{txId}
1486
1519
  */
1487
1520
  getEventsTxIdTxid: (txId: string, query?: {
1488
- group?: number | undefined;
1489
- } | undefined, params?: RequestParams) => Promise<ContractEventsByTxId>;
1521
+ group?: number;
1522
+ }, params?: RequestParams) => Promise<ContractEventsByTxId>;
1490
1523
  };
1491
1524
  }
1492
1525
  export {};
@@ -901,6 +901,22 @@ class Api extends HttpClient {
901
901
  format: 'json',
902
902
  ...params
903
903
  }).then(convertHttpResponse),
904
+ /**
905
+ * No description
906
+ *
907
+ * @tags Contracts
908
+ * @name PostContractsCompileProject
909
+ * @summary Compile a project
910
+ * @request POST:/contracts/compile-project
911
+ */
912
+ postContractsCompileProject: (data, params = {}) => this.request({
913
+ path: `/contracts/compile-project`,
914
+ method: 'POST',
915
+ body: data,
916
+ type: ContentType.Json,
917
+ format: 'json',
918
+ ...params
919
+ }).then(convertHttpResponse),
904
920
  /**
905
921
  * No description
906
922
  *
@@ -269,10 +269,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
269
269
  * @request GET:/blocks
270
270
  */
271
271
  getBlocks: (query?: {
272
- page?: number | undefined;
273
- limit?: number | undefined;
274
- reverse?: boolean | undefined;
275
- } | undefined, params?: RequestParams) => Promise<ListBlocks>;
272
+ page?: number;
273
+ limit?: number;
274
+ reverse?: boolean;
275
+ }, params?: RequestParams) => Promise<ListBlocks>;
276
276
  /**
277
277
  * @description Get a block with hash
278
278
  *
@@ -289,10 +289,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
289
289
  * @request GET:/blocks/{block-hash}/transactions
290
290
  */
291
291
  getBlocksBlockHashTransactions: (blockHash: string, query?: {
292
- page?: number | undefined;
293
- limit?: number | undefined;
294
- reverse?: boolean | undefined;
295
- } | undefined, params?: RequestParams) => Promise<Transaction[]>;
292
+ page?: number;
293
+ limit?: number;
294
+ reverse?: boolean;
295
+ }, params?: RequestParams) => Promise<Transaction[]>;
296
296
  };
297
297
  transactions: {
298
298
  /**
@@ -321,10 +321,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
321
321
  * @request GET:/addresses/{address}/transactions
322
322
  */
323
323
  getAddressesAddressTransactions: (address: string, query?: {
324
- page?: number | undefined;
325
- limit?: number | undefined;
326
- reverse?: boolean | undefined;
327
- } | undefined, params?: RequestParams) => Promise<Transaction[]>;
324
+ page?: number;
325
+ limit?: number;
326
+ reverse?: boolean;
327
+ }, params?: RequestParams) => Promise<Transaction[]>;
328
328
  /**
329
329
  * @description Get total transactions of a given address
330
330
  *
@@ -367,10 +367,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
367
367
  * @request GET:/infos/supply
368
368
  */
369
369
  getInfosSupply: (query?: {
370
- page?: number | undefined;
371
- limit?: number | undefined;
372
- reverse?: boolean | undefined;
373
- } | undefined, params?: RequestParams) => Promise<TokenSupply[]>;
370
+ page?: number;
371
+ limit?: number;
372
+ reverse?: boolean;
373
+ }, params?: RequestParams) => Promise<TokenSupply[]>;
374
374
  /**
375
375
  * @description Get the ALPH total supply
376
376
  *
@@ -1,7 +1,7 @@
1
1
  import { Api as NodeApi } from './api-alephium';
2
2
  import { Api as ExplorerApi } from './api-explorer';
3
- export declare class NodeProvider extends NodeApi<null> {
4
- constructor(baseUrl: string);
3
+ export declare class NodeProvider extends NodeApi<string> {
4
+ constructor(baseUrl: string, apiKey?: string);
5
5
  }
6
6
  export declare class ExplorerProvider extends ExplorerApi<null> {
7
7
  constructor(baseUrl: string);
@@ -18,7 +18,11 @@ along with the library. If not, see <http://www.gnu.org/licenses/>.
18
18
  */
19
19
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
20
  if (k2 === undefined) k2 = k;
21
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
22
26
  }) : (function(o, m, k, k2) {
23
27
  if (k2 === undefined) k2 = k;
24
28
  o[k2] = m[k];
@@ -40,8 +44,19 @@ exports.explorer = exports.node = exports.ExplorerProvider = exports.NodeProvide
40
44
  const api_alephium_1 = require("./api-alephium");
41
45
  const api_explorer_1 = require("./api-explorer");
42
46
  class NodeProvider extends api_alephium_1.Api {
43
- constructor(baseUrl) {
44
- super({ baseUrl: baseUrl });
47
+ constructor(baseUrl, apiKey) {
48
+ // eslint-disable-next-line security/detect-possible-timing-attacks
49
+ if (apiKey === undefined) {
50
+ super({ baseUrl: baseUrl });
51
+ }
52
+ else {
53
+ super({
54
+ baseUrl: baseUrl,
55
+ baseApiParams: { secure: true },
56
+ securityWorker: (accessToken) => (accessToken !== null ? { headers: { 'X-API-KEY': `${accessToken}` } } : {})
57
+ });
58
+ this.setSecurityData(apiKey);
59
+ }
45
60
  }
46
61
  }
47
62
  exports.NodeProvider = NodeProvider;
@@ -1,79 +1,128 @@
1
- import { NodeProvider } from '../api';
2
- import { node } from '../api';
1
+ import { node, NodeProvider } from '../api';
3
2
  import { SignDeployContractTxParams, SignExecuteScriptTxParams, SignerWithNodeProvider } from '../signer';
3
+ import { CompileContractResult, CompileScriptResult } from '../api/api-alephium';
4
+ declare type FieldsSig = node.FieldsSig;
5
+ declare type EventSig = node.EventSig;
6
+ declare type FunctionSig = node.FunctionSig;
7
+ declare enum SourceType {
8
+ Contract = 0,
9
+ Script = 1,
10
+ AbstractContract = 2,
11
+ Interface = 3
12
+ }
13
+ export declare type CompilerOptions = node.CompilerOptions & {
14
+ errorOnWarnings: boolean;
15
+ };
16
+ export declare const DEFAULT_NODE_COMPILER_OPTIONS: node.CompilerOptions;
17
+ export declare const DEFAULT_COMPILER_OPTIONS: CompilerOptions;
18
+ declare class TypedMatcher<T extends SourceType> {
19
+ matcher: RegExp;
20
+ type: T;
21
+ constructor(pattern: string, type: T);
22
+ match(str: string): number;
23
+ }
4
24
  declare class SourceFile {
5
- readonly dirs: string[];
6
- readonly dirPath: string;
7
- readonly contractPath: string;
8
- readonly artifactPath: string;
9
- constructor(dirs: string[], fileName: string);
10
- }
11
- export declare abstract class Common {
12
- readonly sourceCodeSha256: string;
13
- readonly functions: node.FunctionSig[];
14
- static readonly importRegex: RegExp;
15
- static readonly contractRegex: RegExp;
16
- static readonly interfaceRegex: RegExp;
17
- static readonly scriptRegex: RegExp;
18
- private static _artifactCache;
19
- static artifactCacheCapacity: number;
20
- protected static _getArtifactFromCache(codeHash: string): Contract | Script | undefined;
21
- protected static _putArtifactToCache(contract: Contract): void;
22
- constructor(sourceCodeSha256: string, functions: node.FunctionSig[]);
23
- protected static _artifactsFolder(): string;
24
- static getSourceFile(path: string, _dirs: string[]): SourceFile;
25
- protected static _handleImports(pathes: string[], contractStr: string, importsCache: string[]): Promise<string>;
26
- protected static _loadContractStr(sourceFile: SourceFile, importsCache: string[], validate: (code: string) => void): Promise<string>;
27
- static checkFileNameExtension(fileName: string): void;
28
- protected static _from<T extends {
29
- sourceCodeSha256: string;
30
- }>(provider: NodeProvider, sourceFile: SourceFile, loadContractStr: (sourceFile: SourceFile, importsCache: string[]) => Promise<string>, compile: (provider: NodeProvider, sourceFile: SourceFile, contractStr: string, contractHash: string) => Promise<T>): Promise<T>;
31
- protected _saveToFile(sourceFile: SourceFile): Promise<void>;
25
+ type: SourceType;
26
+ contractPath: string;
27
+ sourceCode: string;
28
+ sourceCodeHash: string;
29
+ getArtifactPath(artifactsRootPath: string): string;
30
+ constructor(type: SourceType, sourceCode: string, sourceCodeHash: string, contractPath: string);
31
+ static from(type: SourceType, sourceCode: string, contractPath: string): Promise<SourceFile>;
32
+ }
33
+ declare class Compiled<T extends Artifact> {
34
+ sourceFile: SourceFile;
35
+ artifact: T;
36
+ warnings: string[];
37
+ constructor(sourceFile: SourceFile, artifact: T, warnings: string[]);
38
+ }
39
+ declare class ProjectArtifact {
40
+ static readonly artifactFileName = ".project.json";
41
+ compilerOptionsUsed: node.CompilerOptions;
42
+ infos: Map<string, {
43
+ sourceCodeHash: string;
44
+ warnings: string[];
45
+ }>;
46
+ static checkCompilerOptionsParameter(compilerOptions: node.CompilerOptions): void;
47
+ constructor(compilerOptionsUsed: node.CompilerOptions, infos: Map<string, {
48
+ sourceCodeHash: string;
49
+ warnings: string[];
50
+ }>);
51
+ saveToFile(rootPath: string): Promise<void>;
52
+ needToReCompile(compilerOptions: node.CompilerOptions, files: SourceFile[]): boolean;
53
+ static from(rootPath: string): Promise<ProjectArtifact | undefined>;
54
+ }
55
+ export declare class Project {
56
+ sourceFiles: SourceFile[];
57
+ contracts: Compiled<Contract>[];
58
+ scripts: Compiled<Script>[];
59
+ projectArtifact: ProjectArtifact;
60
+ readonly contractsRootPath: string;
61
+ readonly artifactsRootPath: string;
62
+ readonly nodeProvider: NodeProvider;
63
+ static currentProject: Project;
64
+ static readonly abstractContractMatcher: TypedMatcher<SourceType>;
65
+ static readonly contractMatcher: TypedMatcher<SourceType.Contract>;
66
+ static readonly interfaceMatcher: TypedMatcher<SourceType.Interface>;
67
+ static readonly scriptMatcher: TypedMatcher<SourceType.Script>;
68
+ static readonly matchers: TypedMatcher<SourceType>[];
69
+ static buildProjectArtifact(sourceFiles: SourceFile[], contracts: Compiled<Contract>[], scripts: Compiled<Script>[], compilerOptions: node.CompilerOptions): ProjectArtifact;
70
+ private constructor();
71
+ private getContractPath;
72
+ static checkCompilerWarnings(warnings: string[], errorOnWarnings: boolean): void;
73
+ static contract(path: string): Contract;
74
+ static script(path: string): Script;
75
+ private saveArtifactsToFile;
76
+ contractByCodeHash(codeHash: string): Contract;
77
+ private static compile;
78
+ private static loadArtifacts;
79
+ private static loadSourceFile;
80
+ private static loadSourceFiles;
81
+ static build(compilerOptionsPartial?: Partial<CompilerOptions>, contractsRootPath?: string, artifactsRootPath?: string): Promise<void>;
82
+ }
83
+ export declare abstract class Artifact {
84
+ readonly functions: FunctionSig[];
85
+ constructor(functions: FunctionSig[]);
32
86
  abstract buildByteCodeToDeploy(initialFields?: Fields): string;
87
+ publicFunctions(): string[];
88
+ usingPreapprovedAssetsFunctions(): string[];
89
+ usingAssetsInContractFunctions(): string[];
33
90
  }
34
- export declare class Contract extends Common {
91
+ export declare class Contract extends Artifact {
35
92
  readonly bytecode: string;
36
93
  readonly codeHash: string;
37
- readonly fieldsSig: node.FieldsSig;
38
- readonly eventsSig: node.EventSig[];
39
- constructor(sourceCodeSha256: string, bytecode: string, codeHash: string, fieldsSig: node.FieldsSig, eventsSig: node.EventSig[], functions: node.FunctionSig[]);
40
- static checkCodeType(fileName: string, contractStr: string): void;
41
- private static loadContractStr;
42
- static fromSource(provider: NodeProvider, path: string): Promise<Contract>;
43
- private static compile;
94
+ readonly fieldsSig: FieldsSig;
95
+ readonly eventsSig: EventSig[];
96
+ constructor(bytecode: string, codeHash: string, fieldsSig: FieldsSig, eventsSig: EventSig[], functions: FunctionSig[]);
44
97
  static fromJson(artifact: any): Contract;
98
+ static fromCompileResult(result: CompileContractResult): Contract;
45
99
  static fromArtifactFile(path: string): Promise<Contract>;
46
- fetchState(provider: NodeProvider, address: string, group: number): Promise<ContractState>;
100
+ fetchState(address: string, group: number): Promise<ContractState>;
47
101
  toString(): string;
48
102
  toState(fields: Fields, asset: Asset, address?: string): ContractState;
49
103
  static randomAddress(): string;
50
104
  private _test;
51
- testPublicMethod(provider: NodeProvider, funcName: string, params: TestContractParams): Promise<TestContractResult>;
52
- testPrivateMethod(provider: NodeProvider, funcName: string, params: TestContractParams): Promise<TestContractResult>;
105
+ testPublicMethod(funcName: string, params: TestContractParams): Promise<TestContractResult>;
106
+ testPrivateMethod(funcName: string, params: TestContractParams): Promise<TestContractResult>;
53
107
  toApiFields(fields?: Fields): node.Val[];
54
108
  toApiArgs(funcName: string, args?: Arguments): node.Val[];
55
109
  getMethodIndex(funcName: string): number;
56
110
  toApiContractStates(states?: ContractState[]): node.ContractState[] | undefined;
57
111
  toTestContract(funcName: string, params: TestContractParams): node.TestContract;
58
- static fromCodeHash(codeHash: string): Promise<Contract>;
59
- static getFieldsSig(state: node.ContractState): Promise<node.FieldsSig>;
60
112
  fromApiContractState(state: node.ContractState): Promise<ContractState>;
61
- static ContractCreatedEvent: node.EventSig;
62
- static ContractDestroyedEvent: node.EventSig;
113
+ static ContractCreatedEvent: EventSig;
114
+ static ContractDestroyedEvent: EventSig;
63
115
  static fromApiEvent(event: node.ContractEventByTxId, codeHash: string | undefined): Promise<ContractEventByTxId>;
64
116
  fromTestContractResult(methodIndex: number, result: node.TestContractResult): Promise<TestContractResult>;
65
117
  paramsForDeployment(params: BuildDeployContractTx): Promise<SignDeployContractTxParams>;
66
118
  transactionForDeployment(signer: SignerWithNodeProvider, params: Omit<BuildDeployContractTx, 'signerAddress'>): Promise<DeployContractTransaction>;
67
119
  buildByteCodeToDeploy(initialFields: Fields): string;
68
120
  }
69
- export declare class Script extends Common {
121
+ export declare class Script extends Artifact {
70
122
  readonly bytecodeTemplate: string;
71
- readonly fieldsSig: node.FieldsSig;
72
- constructor(sourceCodeSha256: string, bytecodeTemplate: string, fieldsSig: node.FieldsSig, functions: node.FunctionSig[]);
73
- static checkCodeType(fileName: string, contractStr: string): void;
74
- private static loadContractStr;
75
- static fromSource(provider: NodeProvider, path: string): Promise<Script>;
76
- private static compile;
123
+ readonly fieldsSig: FieldsSig;
124
+ constructor(bytecodeTemplate: string, fieldsSig: FieldsSig, functions: FunctionSig[]);
125
+ static fromCompileResult(result: CompileScriptResult): Script;
77
126
  static fromJson(artifact: any): Script;
78
127
  static fromArtifactFile(path: string): Promise<Script>;
79
128
  toString(): string;
@@ -107,7 +156,7 @@ export interface ContractState {
107
156
  initialStateHash?: string;
108
157
  codeHash: string;
109
158
  fields: Fields;
110
- fieldsSig: node.FieldsSig;
159
+ fieldsSig: FieldsSig;
111
160
  asset: Asset;
112
161
  }
113
162
  export interface TestContractParams {