@alephium/web3 0.2.0-rc.2 → 0.2.0-rc.20

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 (121) hide show
  1. package/.eslintignore +2 -2
  2. package/README.md +2 -135
  3. package/dist/alephium-web3.min.js +1 -1
  4. package/dist/alephium-web3.min.js.LICENSE.txt +0 -17
  5. package/dist/alephium-web3.min.js.map +1 -1
  6. package/dist/src/api/api-alephium.d.ts +126 -22
  7. package/dist/src/api/api-alephium.js +145 -79
  8. package/dist/src/api/api-explorer.d.ts +163 -48
  9. package/dist/src/api/api-explorer.js +157 -34
  10. package/dist/src/api/index.d.ts +3 -2
  11. package/dist/src/api/index.js +22 -3
  12. package/dist/src/api/types.d.ts +23 -0
  13. package/dist/src/api/types.js +240 -0
  14. package/dist/src/api/utils.d.ts +6 -0
  15. package/dist/{scripts/rename-gitignore.js → src/api/utils.js} +11 -6
  16. package/dist/src/contract/contract.d.ts +117 -69
  17. package/dist/src/contract/contract.js +401 -435
  18. package/dist/src/contract/events.d.ts +4 -4
  19. package/dist/src/contract/index.js +5 -1
  20. package/dist/src/contract/ralph.d.ts +5 -4
  21. package/dist/src/contract/ralph.js +27 -1
  22. package/dist/src/global.d.ts +4 -0
  23. package/dist/{scripts/stop-devnet.js → src/global.js} +17 -11
  24. package/dist/src/index.d.ts +2 -0
  25. package/dist/src/index.js +23 -1
  26. package/dist/src/signer/index.d.ts +0 -1
  27. package/dist/src/signer/index.js +5 -2
  28. package/dist/src/signer/signer.d.ts +21 -11
  29. package/dist/src/signer/signer.js +46 -9
  30. package/dist/src/transaction/index.d.ts +0 -1
  31. package/dist/src/transaction/index.js +5 -2
  32. package/dist/src/transaction/status.d.ts +2 -1
  33. package/dist/src/utils/bs58.d.ts +1 -0
  34. package/dist/src/utils/bs58.js +13 -1
  35. package/dist/src/utils/index.d.ts +0 -1
  36. package/dist/src/utils/index.js +5 -2
  37. package/dist/src/utils/subscription.d.ts +0 -1
  38. package/dist/src/utils/subscription.js +2 -1
  39. package/dist/src/utils/utils.d.ts +6 -11
  40. package/dist/src/utils/utils.js +21 -25
  41. package/jest-config.json +11 -0
  42. package/package.json +11 -48
  43. package/src/api/api-alephium.ts +178 -30
  44. package/src/api/api-explorer.ts +234 -51
  45. package/src/api/index.ts +14 -3
  46. package/src/api/types.ts +233 -0
  47. package/{scripts/rename-gitignore.js → src/api/utils.ts} +7 -6
  48. package/src/contract/contract.ts +602 -527
  49. package/src/contract/events.ts +6 -6
  50. package/src/contract/ralph.ts +29 -4
  51. package/src/{transaction/sign-verify.ts → global.ts} +14 -15
  52. package/src/index.ts +7 -0
  53. package/src/signer/index.ts +0 -1
  54. package/src/signer/signer.ts +70 -19
  55. package/src/transaction/index.ts +0 -1
  56. package/src/transaction/status.ts +4 -2
  57. package/src/utils/bs58.ts +11 -0
  58. package/src/utils/index.ts +0 -1
  59. package/src/utils/subscription.ts +3 -3
  60. package/src/utils/utils.ts +14 -22
  61. package/.eslintrc.json +0 -21
  62. package/LICENSE +0 -165
  63. package/contracts/add/add.ral +0 -16
  64. package/contracts/greeter/greeter.ral +0 -7
  65. package/contracts/greeter/greeter_interface.ral +0 -3
  66. package/contracts/greeter_main.ral +0 -9
  67. package/contracts/main.ral +0 -6
  68. package/contracts/sub/sub.ral +0 -9
  69. package/dev/user.conf +0 -29
  70. package/dist/scripts/create-project.d.ts +0 -2
  71. package/dist/scripts/create-project.js +0 -125
  72. package/dist/scripts/rename-gitignore.d.ts +0 -1
  73. package/dist/scripts/start-devnet.d.ts +0 -1
  74. package/dist/scripts/start-devnet.js +0 -131
  75. package/dist/scripts/stop-devnet.d.ts +0 -1
  76. package/dist/src/signer/node-wallet.d.ts +0 -13
  77. package/dist/src/signer/node-wallet.js +0 -60
  78. package/dist/src/test/index.d.ts +0 -7
  79. package/dist/src/test/index.js +0 -41
  80. package/dist/src/test/privatekey-wallet.d.ts +0 -12
  81. package/dist/src/test/privatekey-wallet.js +0 -68
  82. package/dist/src/transaction/sign-verify.d.ts +0 -2
  83. package/dist/src/transaction/sign-verify.js +0 -58
  84. package/dist/src/utils/password-crypto.d.ts +0 -2
  85. package/dist/src/utils/password-crypto.js +0 -69
  86. package/gitignore +0 -10
  87. package/scripts/create-project.ts +0 -137
  88. package/scripts/start-devnet.js +0 -141
  89. package/scripts/stop-devnet.js +0 -32
  90. package/src/contract/ralph.test.ts +0 -178
  91. package/src/fixtures/address.json +0 -36
  92. package/src/fixtures/balance.json +0 -9
  93. package/src/fixtures/self-clique.json +0 -19
  94. package/src/fixtures/transaction.json +0 -13
  95. package/src/fixtures/transactions.json +0 -179
  96. package/src/signer/fixtures/genesis.json +0 -26
  97. package/src/signer/fixtures/wallets.json +0 -26
  98. package/src/signer/node-wallet.ts +0 -74
  99. package/src/test/index.ts +0 -32
  100. package/src/test/privatekey-wallet.ts +0 -58
  101. package/src/transaction/sign-verify.test.ts +0 -50
  102. package/src/utils/address.test.ts +0 -47
  103. package/src/utils/djb2.test.ts +0 -35
  104. package/src/utils/password-crypto.test.ts +0 -27
  105. package/src/utils/password-crypto.ts +0 -77
  106. package/src/utils/utils.test.ts +0 -161
  107. package/templates/base/README.md +0 -34
  108. package/templates/base/package.json +0 -35
  109. package/templates/base/src/greeter.ts +0 -41
  110. package/templates/base/tsconfig.json +0 -19
  111. package/templates/react/README.md +0 -34
  112. package/templates/react/config-overrides.js +0 -18
  113. package/templates/react/package.json +0 -66
  114. package/templates/react/src/App.tsx +0 -42
  115. package/templates/react/src/artifacts/greeter.ral.json +0 -26
  116. package/templates/react/src/artifacts/greeter_main.ral.json +0 -22
  117. package/templates/shared/.eslintrc.json +0 -12
  118. package/templates/shared/scripts/header.js +0 -0
  119. package/test/contract.test.ts +0 -178
  120. package/test/events.test.ts +0 -138
  121. package/test/transaction.test.ts +0 -72
@@ -1,11 +1,11 @@
1
- import { ContractEvent } from '../api/api-alephium';
1
+ import { node } from '../api';
2
2
  import { Subscription, SubscribeOptions } from '../utils';
3
- export declare class EventSubscription extends Subscription<ContractEvent> {
3
+ export declare class EventSubscription extends Subscription<node.ContractEvent> {
4
4
  readonly contractAddress: string;
5
5
  private fromCount;
6
- constructor(options: SubscribeOptions<ContractEvent>, contractAddress: string, fromCount?: number);
6
+ constructor(options: SubscribeOptions<node.ContractEvent>, contractAddress: string, fromCount?: number);
7
7
  startPolling(): void;
8
8
  currentEventCount(): number;
9
9
  polling(): Promise<void>;
10
10
  }
11
- export declare function subscribeToEvents(options: SubscribeOptions<ContractEvent>, contractAddress: string, fromCount?: number): EventSubscription;
11
+ export declare function subscribeToEvents(options: SubscribeOptions<node.ContractEvent>, contractAddress: string, fromCount?: number): EventSubscription;
@@ -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];
@@ -1,5 +1,5 @@
1
- import { node } from '../api';
2
- import { Fields, Val } from './contract';
1
+ import { Val } from '../api';
2
+ import { Fields, FieldsSig } from './contract';
3
3
  export declare function encodeBool(bool: boolean): Uint8Array;
4
4
  export declare function encodeI256(i256: bigint): Uint8Array;
5
5
  export declare function encodeU256(u256: bigint): Uint8Array;
@@ -7,6 +7,7 @@ export declare function encodeByteVec(bytes: string): Uint8Array;
7
7
  export declare function encodeAddress(address: string): Uint8Array;
8
8
  export declare function encodeScriptFieldAsString(tpe: string, value: Val): string;
9
9
  export declare function encodeScriptField(tpe: string, value: Val): Uint8Array;
10
- export declare function buildScriptByteCode(bytecodeTemplate: string, fields: Fields, fieldsSig: node.FieldsSig): string;
11
- export declare function buildContractByteCode(bytecode: string, fields: Fields, fieldsSig: node.FieldsSig): string;
10
+ export declare function buildScriptByteCode(bytecodeTemplate: string, fields: Fields, fieldsSig: FieldsSig): string;
11
+ export declare function buildContractByteCode(bytecode: string, fields: Fields, fieldsSig: FieldsSig): string;
12
12
  export declare function encodeContractField(tpe: string, value: Val): Uint8Array[];
13
+ export declare function buildDebugBytecode(bytecode: string, bytecodePatch: string): string;
@@ -18,7 +18,7 @@ along with the library. If not, see <http://www.gnu.org/licenses/>.
18
18
  */
19
19
  var _a;
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.encodeContractField = exports.buildContractByteCode = exports.buildScriptByteCode = exports.encodeScriptField = exports.encodeScriptFieldAsString = exports.encodeAddress = exports.encodeByteVec = exports.encodeU256 = exports.encodeI256 = exports.encodeBool = void 0;
21
+ exports.buildDebugBytecode = exports.encodeContractField = exports.buildContractByteCode = exports.buildScriptByteCode = exports.encodeScriptField = exports.encodeScriptFieldAsString = exports.encodeAddress = exports.encodeByteVec = exports.encodeU256 = exports.encodeI256 = exports.encodeBool = void 0;
22
22
  const buffer_1 = require("buffer/");
23
23
  const utils_1 = require("../utils");
24
24
  const bigIntZero = BigInt(0);
@@ -343,6 +343,32 @@ exports.encodeContractField = encodeContractField;
343
343
  function invalidVal(tpe, value) {
344
344
  return Error(`Invalid API value ${value} for type ${tpe}`);
345
345
  }
346
+ function buildDebugBytecode(bytecode, bytecodePatch) {
347
+ if (bytecodePatch === '') {
348
+ return bytecode;
349
+ }
350
+ const pattern = /[=+-][0-9a-f]*/g;
351
+ let result = '';
352
+ let index = 0;
353
+ for (const parts of bytecodePatch.matchAll(pattern)) {
354
+ const part = parts[0];
355
+ const diffType = part[0];
356
+ if (diffType === '=') {
357
+ const length = parseInt(part.substring(1));
358
+ result = result + bytecode.slice(index, index + length);
359
+ index = index + length;
360
+ }
361
+ else if (diffType === '+') {
362
+ result = result + part.substring(1);
363
+ }
364
+ else {
365
+ const length = parseInt(part.substring(1));
366
+ index = index + length;
367
+ }
368
+ }
369
+ return result;
370
+ }
371
+ exports.buildDebugBytecode = buildDebugBytecode;
346
372
  // export function buildContractByteCode(
347
373
  // compiled: node.TemplateContractByteCode,
348
374
  // templateVariables: TemplateVariables
@@ -0,0 +1,4 @@
1
+ import { NodeProvider } from './api';
2
+ export declare function setCurrentNodeProvider(provider: NodeProvider): void;
3
+ export declare function setCurrentNodeProvider(baseUrl: string, apiKey?: string): void;
4
+ export declare function getCurrentNodeProvider(): NodeProvider;
@@ -16,17 +16,23 @@ GNU Lesser General Public License for more details.
16
16
  You should have received a copy of the GNU Lesser General Public License
17
17
  along with the library. If not, see <http://www.gnu.org/licenses/>.
18
18
  */
19
- const fs = require('fs');
20
- const process = require('process');
21
- const path = require('path');
22
- const pidFile = process.cwd() + path.sep + 'dev' + path.sep + 'alephium.pid';
23
- try {
24
- const pid = parseInt(fs.readFileSync(pidFile).toString());
25
- if (pid) {
26
- console.log(`Stopping the running devnet: ${pid}`);
27
- process.kill(pid);
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.getCurrentNodeProvider = exports.setCurrentNodeProvider = void 0;
21
+ const api_1 = require("./api");
22
+ let _currentNodeProvider = undefined;
23
+ function setCurrentNodeProvider(provider, apiKey) {
24
+ if (typeof provider == 'string') {
25
+ _currentNodeProvider = new api_1.NodeProvider(provider, apiKey);
26
+ }
27
+ else {
28
+ _currentNodeProvider = provider;
28
29
  }
29
30
  }
30
- catch (e) {
31
- console.log(`Error in stopping the running devnet: ${e}`);
31
+ exports.setCurrentNodeProvider = setCurrentNodeProvider;
32
+ function getCurrentNodeProvider() {
33
+ if (typeof _currentNodeProvider === 'undefined') {
34
+ throw Error('No node provider is set.');
35
+ }
36
+ return _currentNodeProvider;
32
37
  }
38
+ exports.getCurrentNodeProvider = getCurrentNodeProvider;
@@ -4,3 +4,5 @@ export * from './signer';
4
4
  export * from './utils';
5
5
  export * from './transaction';
6
6
  export * from './constants';
7
+ export * as web3 from './global';
8
+ export * as utils from './utils';
package/dist/src/index.js CHANGED
@@ -18,18 +18,40 @@ 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];
25
29
  }));
30
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
31
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
32
+ }) : function(o, v) {
33
+ o["default"] = v;
34
+ });
26
35
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
37
  };
38
+ var __importStar = (this && this.__importStar) || function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
29
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.utils = exports.web3 = void 0;
47
+ BigInt.prototype['toJSON'] = function () {
48
+ return this.toString();
49
+ };
30
50
  __exportStar(require("./api"), exports);
31
51
  __exportStar(require("./contract"), exports);
32
52
  __exportStar(require("./signer"), exports);
33
53
  __exportStar(require("./utils"), exports);
34
54
  __exportStar(require("./transaction"), exports);
35
55
  __exportStar(require("./constants"), exports);
56
+ exports.web3 = __importStar(require("./global"));
57
+ exports.utils = __importStar(require("./utils"));
@@ -1,2 +1 @@
1
1
  export * from './signer';
2
- export * from './node-wallet';
@@ -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];
@@ -28,4 +32,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
28
32
  };
29
33
  Object.defineProperty(exports, "__esModule", { value: true });
30
34
  __exportStar(require("./signer"), exports);
31
- __exportStar(require("./node-wallet"), exports);
@@ -1,6 +1,6 @@
1
- import { NodeProvider } from '../api';
1
+ import { NodeProvider, Number256, Token } from '../api';
2
2
  import { node } from '../api';
3
- import { Token } from '../api/api-alephium';
3
+ export declare type OutputRef = node.OutputRef;
4
4
  export interface SignResult {
5
5
  fromGroup: number;
6
6
  toGroup: number;
@@ -23,10 +23,10 @@ export declare type GetAccountsParams = undefined;
23
23
  export declare type GetAccountsResult = Account[];
24
24
  export interface SignTransferTxParams {
25
25
  signerAddress: string;
26
- destinations: node.Destination[];
27
- utxos?: node.OutputRef[];
26
+ destinations: Destination[];
27
+ utxos?: OutputRef[];
28
28
  gasAmount?: number;
29
- gasPrice?: string;
29
+ gasPrice?: Number256;
30
30
  submitTx?: boolean;
31
31
  }
32
32
  export interface SignTransferTxResult {
@@ -39,11 +39,11 @@ export interface SignTransferTxResult {
39
39
  export interface SignDeployContractTxParams {
40
40
  signerAddress: string;
41
41
  bytecode: string;
42
- initialAttoAlphAmount?: string;
42
+ initialAttoAlphAmount?: Number256;
43
43
  initialTokenAmounts?: Token[];
44
- issueTokenAmount?: string;
44
+ issueTokenAmount?: Number256;
45
45
  gasAmount?: number;
46
- gasPrice?: string;
46
+ gasPrice?: Number256;
47
47
  submitTx?: boolean;
48
48
  }
49
49
  export interface SignDeployContractTxResult {
@@ -59,7 +59,7 @@ export interface SignExecuteScriptTxParams {
59
59
  signerAddress: string;
60
60
  bytecode: string;
61
61
  attoAlphAmount?: string;
62
- tokens?: node.Token[];
62
+ tokens?: Token[];
63
63
  gasAmount?: number;
64
64
  gasPrice?: string;
65
65
  submitTx?: boolean;
@@ -111,9 +111,9 @@ export declare abstract class SignerWithNodeProvider implements SignerProvider {
111
111
  alwaysSubmitTx: boolean;
112
112
  abstract getAccounts(): Promise<Account[]>;
113
113
  getAccount(signerAddress: string): Promise<Account>;
114
- constructor(provider: NodeProvider, alwaysSubmitTx: boolean);
114
+ constructor(alwaysSubmitTx: boolean);
115
115
  private defaultSignerAddress;
116
- submitTransaction(unsignedTx: string, txHash: string, signerAddress?: string): Promise<SubmissionResult>;
116
+ submitTransaction(unsignedTx: string, signerAddress?: string): Promise<SubmissionResult>;
117
117
  private shouldSubmitTx;
118
118
  private usePublicKey;
119
119
  signTransferTx(params: SignTransferTxParams): Promise<SignTransferTxResult>;
@@ -141,3 +141,13 @@ export interface SubmissionResult {
141
141
  }
142
142
  export declare function verifyHexString(hexString: string, publicKey: string, signature: string): boolean;
143
143
  export declare function verifySignedMessage(message: string, publicKey: string, signature: string): boolean;
144
+ export interface Destination {
145
+ address: string;
146
+ attoAlphAmount: Number256;
147
+ tokens?: Token[];
148
+ lockTime?: number;
149
+ message?: string;
150
+ }
151
+ export declare function toApiDestination(data: Destination): node.Destination;
152
+ export declare function toApiDestinations(data: Destination[]): node.Destination[];
153
+ export declare function fromApiDestination(data: node.Destination): Destination;
@@ -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];
@@ -39,11 +43,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
43
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
44
  };
41
45
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.verifySignedMessage = exports.verifyHexString = exports.SignerWithNodeProvider = void 0;
46
+ exports.fromApiDestination = exports.toApiDestinations = exports.toApiDestination = exports.verifySignedMessage = exports.verifyHexString = exports.SignerWithNodeProvider = void 0;
43
47
  const elliptic_1 = require("elliptic");
48
+ const api_1 = require("../api");
44
49
  const utils = __importStar(require("../utils"));
45
50
  const utils_1 = require("../utils");
46
51
  const blakejs_1 = __importDefault(require("blakejs"));
52
+ const global_1 = require("../global");
47
53
  const ec = new elliptic_1.ec('secp256k1');
48
54
  (0, utils_1.assertType)();
49
55
  (0, utils_1.assertType)();
@@ -58,8 +64,8 @@ const ec = new elliptic_1.ec('secp256k1');
58
64
  (0, utils_1.assertType)();
59
65
  (0, utils_1.assertType)();
60
66
  class SignerWithNodeProvider {
61
- constructor(provider, alwaysSubmitTx) {
62
- this.provider = provider;
67
+ constructor(alwaysSubmitTx) {
68
+ this.provider = (0, global_1.getCurrentNodeProvider)();
63
69
  this.alwaysSubmitTx = alwaysSubmitTx;
64
70
  }
65
71
  async getAccount(signerAddress) {
@@ -75,9 +81,11 @@ class SignerWithNodeProvider {
75
81
  async defaultSignerAddress() {
76
82
  return (await this.getAccounts())[0].address;
77
83
  }
78
- async submitTransaction(unsignedTx, txHash, signerAddress) {
84
+ async submitTransaction(unsignedTx, signerAddress) {
85
+ const decoded = await this.provider.transactions.postTransactionsDecodeUnsignedTx({ unsignedTx: unsignedTx });
86
+ const txId = decoded.unsignedTx.txId;
79
87
  const address = typeof signerAddress !== 'undefined' ? signerAddress : await this.defaultSignerAddress();
80
- const signature = await this.signRaw(address, txHash);
88
+ const signature = await this.signRaw(address, txId);
81
89
  const params = { unsignedTx: unsignedTx, signature: signature };
82
90
  return this.provider.transactions.postTransactionsSubmit(params);
83
91
  }
@@ -100,7 +108,12 @@ class SignerWithNodeProvider {
100
108
  return this.handleSign({ signerAddress: params.signerAddress, ...response }, this.shouldSubmitTx(params));
101
109
  }
102
110
  async buildTransferTx(params) {
103
- return this.provider.transactions.postTransactionsBuild(await this.usePublicKey(params));
111
+ const data = {
112
+ ...(await this.usePublicKey(params)),
113
+ destinations: toApiDestinations(params.destinations),
114
+ gasPrice: (0, api_1.toApiNumber256Optional)(params.gasPrice)
115
+ };
116
+ return this.provider.transactions.postTransactionsBuild(data);
104
117
  }
105
118
  async signDeployContractTx(params) {
106
119
  const response = await this.buildContractCreationTx(params);
@@ -109,14 +122,25 @@ class SignerWithNodeProvider {
109
122
  return { ...result, contractId: contractId, contractAddress: response.contractAddress };
110
123
  }
111
124
  async buildContractCreationTx(params) {
112
- return this.provider.contracts.postContractsUnsignedTxDeployContract(await this.usePublicKey(params));
125
+ const data = {
126
+ ...(await this.usePublicKey(params)),
127
+ initialAttoAlphAmount: (0, api_1.toApiNumber256Optional)(params.initialAttoAlphAmount),
128
+ initialTokenAmounts: (0, api_1.toApiTokens)(params.initialTokenAmounts),
129
+ issueTokenAmount: (0, api_1.toApiNumber256Optional)(params.issueTokenAmount),
130
+ gasPrice: (0, api_1.toApiNumber256Optional)(params.gasPrice)
131
+ };
132
+ return this.provider.contracts.postContractsUnsignedTxDeployContract(data);
113
133
  }
114
134
  async signExecuteScriptTx(params) {
115
135
  const response = await this.buildScriptTx(params);
116
136
  return this.handleSign({ signerAddress: params.signerAddress, ...response }, this.shouldSubmitTx(params));
117
137
  }
118
138
  async buildScriptTx(params) {
119
- return this.provider.contracts.postContractsUnsignedTxExecuteScript(await this.usePublicKey(params));
139
+ const data = {
140
+ ...(await this.usePublicKey(params)),
141
+ tokens: (0, api_1.toApiTokens)(params.tokens)
142
+ };
143
+ return this.provider.contracts.postContractsUnsignedTxExecuteScript(data);
120
144
  }
121
145
  // in general, wallet should show the decoded information to user for confirmation
122
146
  // please overwrite this function for real wallet
@@ -182,3 +206,16 @@ function verifySignedMessage(message, publicKey, signature) {
182
206
  return verifyHexString(utils.binToHex(messageHash), publicKey, signature);
183
207
  }
184
208
  exports.verifySignedMessage = verifySignedMessage;
209
+ utils_1.assertType;
210
+ function toApiDestination(data) {
211
+ return { ...data, attoAlphAmount: (0, api_1.toApiNumber256)(data.attoAlphAmount), tokens: (0, api_1.toApiTokens)(data.tokens) };
212
+ }
213
+ exports.toApiDestination = toApiDestination;
214
+ function toApiDestinations(data) {
215
+ return data.map(toApiDestination);
216
+ }
217
+ exports.toApiDestinations = toApiDestinations;
218
+ function fromApiDestination(data) {
219
+ return { ...data, attoAlphAmount: (0, api_1.fromApiNumber256)(data.attoAlphAmount), tokens: (0, api_1.fromApiTokens)(data.tokens) };
220
+ }
221
+ exports.fromApiDestination = fromApiDestination;
@@ -1,2 +1 @@
1
- export * from './sign-verify';
2
1
  export * from './status';
@@ -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];
@@ -27,5 +31,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
31
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
32
  };
29
33
  Object.defineProperty(exports, "__esModule", { value: true });
30
- __exportStar(require("./sign-verify"), exports);
31
34
  __exportStar(require("./status"), exports);
@@ -1,5 +1,6 @@
1
- import { TxStatus } from '../api/api-alephium';
1
+ import { node } from '../api';
2
2
  import { Subscription, SubscribeOptions } from '../utils';
3
+ export declare type TxStatus = node.TxStatus;
3
4
  export declare class TxStatusSubscription extends Subscription<TxStatus> {
4
5
  readonly txId: string;
5
6
  readonly fromGroup?: number;
@@ -1,4 +1,5 @@
1
1
  /** This source is under MIT License and come originally from https://github.com/cryptocoinjs/bs58 **/
2
2
  import basex from 'base-x';
3
3
  export declare const bs58: basex.BaseConverter;
4
+ export declare function isBase58(s: string): boolean;
4
5
  export default bs58;
@@ -20,9 +20,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
20
20
  return (mod && mod.__esModule) ? mod : { "default": mod };
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.bs58 = void 0;
23
+ exports.isBase58 = exports.bs58 = void 0;
24
24
  /** This source is under MIT License and come originally from https://github.com/cryptocoinjs/bs58 **/
25
25
  const base_x_1 = __importDefault(require("base-x"));
26
26
  const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
27
27
  exports.bs58 = (0, base_x_1.default)(ALPHABET);
28
+ function isBase58(s) {
29
+ if (s === '' || s.trim() === '') {
30
+ return false;
31
+ }
32
+ try {
33
+ return exports.bs58.encode(exports.bs58.decode(s)) === s;
34
+ }
35
+ catch (err) {
36
+ return false;
37
+ }
38
+ }
39
+ exports.isBase58 = isBase58;
28
40
  exports.default = exports.bs58;
@@ -1,6 +1,5 @@
1
1
  export * from './address';
2
2
  export * from './bs58';
3
3
  export * from './djb2';
4
- export * from './password-crypto';
5
4
  export * from './utils';
6
5
  export * from './subscription';
@@ -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];
@@ -30,6 +34,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
30
34
  __exportStar(require("./address"), exports);
31
35
  __exportStar(require("./bs58"), exports);
32
36
  __exportStar(require("./djb2"), exports);
33
- __exportStar(require("./password-crypto"), exports);
34
37
  __exportStar(require("./utils"), exports);
35
38
  __exportStar(require("./subscription"), exports);
@@ -3,7 +3,6 @@ import { NodeProvider } from '../api';
3
3
  declare type MessageCallback<Message> = (message: Message) => Promise<void>;
4
4
  declare type ErrorCallback<Message> = (error: any, subscription: Subscription<Message>) => Promise<void>;
5
5
  export interface SubscribeOptions<Message> {
6
- provider: NodeProvider;
7
6
  pollingInterval: number;
8
7
  messageCallback: MessageCallback<Message>;
9
8
  errorCallback: ErrorCallback<Message>;
@@ -22,9 +22,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.Subscription = void 0;
24
24
  const eventemitter3_1 = __importDefault(require("eventemitter3"));
25
+ const global_1 = require("../global");
25
26
  class Subscription {
26
27
  constructor(options) {
27
- this.provider = options.provider;
28
+ this.provider = (0, global_1.getCurrentNodeProvider)();
28
29
  this.pollingInterval = options.pollingInterval;
29
30
  this.messageCallback = options.messageCallback;
30
31
  this.errorCallback = options.errorCallback;
@@ -1,27 +1,22 @@
1
1
  import { ec as EC, SignatureInput } from 'elliptic';
2
- import * as node from '../api/api-alephium';
3
- import * as explorer from '../api/api-explorer';
4
- export declare function convertHttpResponse<T>(response: node.HttpResponse<T, {
5
- detail: string;
6
- }> | explorer.HttpResponse<T, {
7
- detail: string;
8
- }>): T;
9
2
  export declare function signatureEncode(signature: EC.Signature): string;
10
- export declare const signatureDecode: (ec: EC, signature: string) => SignatureInput;
3
+ export declare function signatureDecode(ec: EC, signature: string): SignatureInput;
4
+ export declare function xorByte(intValue: number): number;
11
5
  export declare function isHexString(input: string): boolean;
12
- export declare const groupOfAddress: (address: string) => number;
6
+ export declare function groupOfAddress(address: string): number;
13
7
  export declare function contractIdFromAddress(address: string): Uint8Array;
14
8
  export declare function tokenIdFromAddress(address: string): Uint8Array;
15
9
  export declare function hexToBinUnsafe(hex: string): Uint8Array;
16
10
  export declare function binToHex(bin: Uint8Array): string;
11
+ export declare function groupOfPrivateKey(privateKey: string): number;
17
12
  export declare function publicKeyFromPrivateKey(privateKey: string): string;
18
13
  export declare function addressFromPublicKey(publicKey: string): string;
19
14
  export declare function addressFromContractId(contractId: string): string;
20
15
  export declare function contractIdFromTx(txId: string, outputIndex: number): string;
21
16
  export declare function subContractId(parentContractId: string, pathInHex: string): string;
22
17
  export declare function stringToHex(str: string): string;
23
- export declare function hexToString(str: any): string;
24
- export declare function timeout(ms: number): Promise<unknown>;
18
+ export declare function hexToString(str: string): string;
19
+ export declare function timeout(ms: number): Promise<void>;
25
20
  declare type _Eq<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
26
21
  export declare type Eq<X, Y> = _Eq<{
27
22
  [P in keyof X]: X[P];