@bitgo-beta/sdk-coin-tempo 1.0.1-beta.36 → 1.0.1-beta.360

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 (49) hide show
  1. package/dist/src/lib/constants.d.ts +20 -0
  2. package/dist/src/lib/constants.d.ts.map +1 -1
  3. package/dist/src/lib/constants.js +24 -4
  4. package/dist/src/lib/index.d.ts +3 -0
  5. package/dist/src/lib/index.d.ts.map +1 -1
  6. package/dist/src/lib/index.js +4 -1
  7. package/dist/src/lib/keyPair.d.ts +2 -12
  8. package/dist/src/lib/keyPair.d.ts.map +1 -1
  9. package/dist/src/lib/keyPair.js +4 -26
  10. package/dist/src/lib/tip20Abi.d.ts +90 -17
  11. package/dist/src/lib/tip20Abi.d.ts.map +1 -1
  12. package/dist/src/lib/tip20Abi.js +53 -25
  13. package/dist/src/lib/transaction.d.ts +144 -0
  14. package/dist/src/lib/transaction.d.ts.map +1 -0
  15. package/dist/src/lib/transaction.js +216 -0
  16. package/dist/src/lib/transactionBuilder.d.ts +139 -0
  17. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/transactionBuilder.js +408 -0
  19. package/dist/src/lib/types.d.ts +27 -0
  20. package/dist/src/lib/types.d.ts.map +1 -0
  21. package/dist/src/lib/types.js +3 -0
  22. package/dist/src/lib/utils.d.ts +62 -2
  23. package/dist/src/lib/utils.d.ts.map +1 -1
  24. package/dist/src/lib/utils.js +114 -4
  25. package/dist/src/register.d.ts +0 -4
  26. package/dist/src/register.d.ts.map +1 -1
  27. package/dist/src/register.js +2 -23
  28. package/dist/src/tempo.d.ts +82 -19
  29. package/dist/src/tempo.d.ts.map +1 -1
  30. package/dist/src/tempo.js +433 -29
  31. package/dist/src/tip20Token.d.ts +23 -25
  32. package/dist/src/tip20Token.d.ts.map +1 -1
  33. package/dist/src/tip20Token.js +105 -29
  34. package/dist/test/integration/tip20.d.ts +7 -0
  35. package/dist/test/integration/tip20.d.ts.map +1 -0
  36. package/dist/test/integration/tip20.js +178 -0
  37. package/dist/test/resources/tempo.d.ts +77 -0
  38. package/dist/test/resources/tempo.d.ts.map +1 -0
  39. package/dist/test/resources/tempo.js +95 -0
  40. package/dist/test/unit/index.js +172 -3
  41. package/dist/test/unit/tempo.d.ts +2 -0
  42. package/dist/test/unit/tempo.d.ts.map +1 -0
  43. package/dist/test/unit/tempo.js +207 -0
  44. package/dist/test/unit/transactionBuilder.d.ts +2 -0
  45. package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
  46. package/dist/test/unit/transactionBuilder.js +858 -0
  47. package/dist/test/unit/utils.js +4 -3
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +12 -9
@@ -5,4 +5,24 @@ export declare const MAINNET_COIN = "tempo";
5
5
  export declare const TESTNET_COIN = "ttempo";
6
6
  export declare const VALID_ADDRESS_REGEX: RegExp;
7
7
  export declare const VALID_PUBLIC_KEY_REGEX: RegExp;
8
+ /**
9
+ * Tempo Chain IDs
10
+ */
11
+ export declare const TEMPO_CHAIN_IDS: {
12
+ readonly MAINNET: 4217;
13
+ readonly TESTNET: 42431;
14
+ };
15
+ /**
16
+ * TIP-20 Token Standard
17
+ * TIP-20 uses 6 decimals (unlike ERC-20's standard 18 decimals)
18
+ */
19
+ export declare const TIP20_DECIMALS = 6;
20
+ /**
21
+ * AA Transaction Type
22
+ * Tempo uses EIP-7702 Account Abstraction with transaction type 0x76
23
+ */
24
+ export declare const AA_TRANSACTION_TYPE: "0x76";
25
+ /** TIP-20 token names for pathUSD — used to look up contract address from statics */
26
+ export declare const PATH_USD_TOKEN_MAINNET = "tempo:pathusd";
27
+ export declare const PATH_USD_TOKEN_TESTNET = "ttempo:pathusd";
8
28
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,UAAU,CAAC;AACpC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AACpD,eAAO,MAAM,sBAAsB,QAAsB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,UAAU,CAAC;AACpC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,mBAAmB,QAAwB,CAAC;AACzD,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAG,MAAe,CAAC;AAEnD,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC"}
@@ -3,9 +3,29 @@
3
3
  * Constants for Tempo blockchain (EVM-compatible)
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.VALID_PUBLIC_KEY_REGEX = exports.VALID_ADDRESS_REGEX = exports.TESTNET_COIN = exports.MAINNET_COIN = void 0;
6
+ exports.PATH_USD_TOKEN_TESTNET = exports.PATH_USD_TOKEN_MAINNET = exports.AA_TRANSACTION_TYPE = exports.TIP20_DECIMALS = exports.TEMPO_CHAIN_IDS = exports.VALID_PUBLIC_KEY_REGEX = exports.VALID_ADDRESS_REGEX = exports.TESTNET_COIN = exports.MAINNET_COIN = void 0;
7
7
  exports.MAINNET_COIN = 'tempo';
8
8
  exports.TESTNET_COIN = 'ttempo';
9
- exports.VALID_ADDRESS_REGEX = /^[A-Za-z0-9]+$/; // Update with actual address format
10
- exports.VALID_PUBLIC_KEY_REGEX = /^[A-Fa-f0-9]{64}$/; // Update with actual public key format
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFVSxRQUFBLFlBQVksR0FBRyxPQUFPLENBQUM7QUFDdkIsUUFBQSxZQUFZLEdBQUcsUUFBUSxDQUFDO0FBRXhCLFFBQUEsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxvQ0FBb0M7QUFDNUUsUUFBQSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLHVDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uc3RhbnRzIGZvciBUZW1wbyBibG9ja2NoYWluIChFVk0tY29tcGF0aWJsZSlcbiAqL1xuXG5leHBvcnQgY29uc3QgTUFJTk5FVF9DT0lOID0gJ3RlbXBvJztcbmV4cG9ydCBjb25zdCBURVNUTkVUX0NPSU4gPSAndHRlbXBvJztcblxuZXhwb3J0IGNvbnN0IFZBTElEX0FERFJFU1NfUkVHRVggPSAvXltBLVphLXowLTldKyQvOyAvLyBVcGRhdGUgd2l0aCBhY3R1YWwgYWRkcmVzcyBmb3JtYXRcbmV4cG9ydCBjb25zdCBWQUxJRF9QVUJMSUNfS0VZX1JFR0VYID0gL15bQS1GYS1mMC05XXs2NH0kLzsgLy8gVXBkYXRlIHdpdGggYWN0dWFsIHB1YmxpYyBrZXkgZm9ybWF0XG4iXX0=
9
+ exports.VALID_ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/;
10
+ exports.VALID_PUBLIC_KEY_REGEX = /^[A-Fa-f0-9]{64}$/;
11
+ /**
12
+ * Tempo Chain IDs
13
+ */
14
+ exports.TEMPO_CHAIN_IDS = {
15
+ MAINNET: 4217,
16
+ TESTNET: 42431, // Moderato testnet
17
+ };
18
+ /**
19
+ * TIP-20 Token Standard
20
+ * TIP-20 uses 6 decimals (unlike ERC-20's standard 18 decimals)
21
+ */
22
+ exports.TIP20_DECIMALS = 6;
23
+ /**
24
+ * AA Transaction Type
25
+ * Tempo uses EIP-7702 Account Abstraction with transaction type 0x76
26
+ */
27
+ exports.AA_TRANSACTION_TYPE = '0x76';
28
+ /** TIP-20 token names for pathUSD — used to look up contract address from statics */
29
+ exports.PATH_USD_TOKEN_MAINNET = 'tempo:pathusd';
30
+ exports.PATH_USD_TOKEN_TESTNET = 'ttempo:pathusd';
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFVSxRQUFBLFlBQVksR0FBRyxPQUFPLENBQUM7QUFDdkIsUUFBQSxZQUFZLEdBQUcsUUFBUSxDQUFDO0FBRXhCLFFBQUEsbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7QUFDNUMsUUFBQSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztBQUUxRDs7R0FFRztBQUNVLFFBQUEsZUFBZSxHQUFHO0lBQzdCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLEtBQUssRUFBRSxtQkFBbUI7Q0FDM0IsQ0FBQztBQUVYOzs7R0FHRztBQUNVLFFBQUEsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUVoQzs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHLE1BQWUsQ0FBQztBQUVuRCxxRkFBcUY7QUFDeEUsUUFBQSxzQkFBc0IsR0FBRyxlQUFlLENBQUM7QUFDekMsUUFBQSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uc3RhbnRzIGZvciBUZW1wbyBibG9ja2NoYWluIChFVk0tY29tcGF0aWJsZSlcbiAqL1xuXG5leHBvcnQgY29uc3QgTUFJTk5FVF9DT0lOID0gJ3RlbXBvJztcbmV4cG9ydCBjb25zdCBURVNUTkVUX0NPSU4gPSAndHRlbXBvJztcblxuZXhwb3J0IGNvbnN0IFZBTElEX0FERFJFU1NfUkVHRVggPSAvXjB4W2EtZkEtRjAtOV17NDB9JC87XG5leHBvcnQgY29uc3QgVkFMSURfUFVCTElDX0tFWV9SRUdFWCA9IC9eW0EtRmEtZjAtOV17NjR9JC87XG5cbi8qKlxuICogVGVtcG8gQ2hhaW4gSURzXG4gKi9cbmV4cG9ydCBjb25zdCBURU1QT19DSEFJTl9JRFMgPSB7XG4gIE1BSU5ORVQ6IDQyMTcsXG4gIFRFU1RORVQ6IDQyNDMxLCAvLyBNb2RlcmF0byB0ZXN0bmV0XG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFRJUC0yMCBUb2tlbiBTdGFuZGFyZFxuICogVElQLTIwIHVzZXMgNiBkZWNpbWFscyAodW5saWtlIEVSQy0yMCdzIHN0YW5kYXJkIDE4IGRlY2ltYWxzKVxuICovXG5leHBvcnQgY29uc3QgVElQMjBfREVDSU1BTFMgPSA2O1xuXG4vKipcbiAqIEFBIFRyYW5zYWN0aW9uIFR5cGVcbiAqIFRlbXBvIHVzZXMgRUlQLTc3MDIgQWNjb3VudCBBYnN0cmFjdGlvbiB3aXRoIHRyYW5zYWN0aW9uIHR5cGUgMHg3NlxuICovXG5leHBvcnQgY29uc3QgQUFfVFJBTlNBQ1RJT05fVFlQRSA9ICcweDc2JyBhcyBjb25zdDtcblxuLyoqIFRJUC0yMCB0b2tlbiBuYW1lcyBmb3IgcGF0aFVTRCDigJQgdXNlZCB0byBsb29rIHVwIGNvbnRyYWN0IGFkZHJlc3MgZnJvbSBzdGF0aWNzICovXG5leHBvcnQgY29uc3QgUEFUSF9VU0RfVE9LRU5fTUFJTk5FVCA9ICd0ZW1wbzpwYXRodXNkJztcbmV4cG9ydCBjb25zdCBQQVRIX1VTRF9UT0tFTl9URVNUTkVUID0gJ3R0ZW1wbzpwYXRodXNkJztcbiJdfQ==
@@ -3,4 +3,7 @@ export * from './utils';
3
3
  export * from './constants';
4
4
  export * from './iface';
5
5
  export * from './tip20Abi';
6
+ export * from './types';
7
+ export * from './transactionBuilder';
8
+ export * from './transaction';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
@@ -19,4 +19,7 @@ __exportStar(require("./utils"), exports);
19
19
  __exportStar(require("./constants"), exports);
20
20
  __exportStar(require("./iface"), exports);
21
21
  __exportStar(require("./tip20Abi"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpcDIwQWJpJztcbiJdfQ==
22
+ __exportStar(require("./types"), exports);
23
+ __exportStar(require("./transactionBuilder"), exports);
24
+ __exportStar(require("./transaction"), exports);
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsNkNBQTJCO0FBQzNCLDBDQUF3QjtBQUN4Qix1REFBcUM7QUFDckMsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpcDIwQWJpJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG4iXX0=
@@ -2,17 +2,7 @@
2
2
  * Tempo KeyPair - Reuses Ethereum KeyPair Implementation
3
3
  *
4
4
  * Since Tempo is EVM-compatible and uses the same cryptography (ECDSA/secp256k1)
5
- * as Ethereum, we can directly reuse the Ethereum KeyPair implementation.
5
+ * as Ethereum, we directly reuse the Ethereum KeyPair implementation from abstract-eth.
6
6
  */
7
- import { DefaultKeys, KeyPairOptions } from '@bitgo-beta/sdk-core';
8
- /**
9
- * Tempo KeyPair class
10
- * Uses same key derivation as Ethereum (BIP32 + secp256k1)
11
- */
12
- export declare class KeyPair {
13
- private keyPair;
14
- constructor(source?: KeyPairOptions);
15
- getKeys(): DefaultKeys;
16
- getAddress(): string;
17
- }
7
+ export { KeyPair } from '@bitgo-beta/abstract-eth';
18
8
  //# sourceMappingURL=keyPair.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAAc;gBAEjB,MAAM,CAAC,EAAE,cAAc;IAWnC,OAAO,IAAI,WAAW;IAItB,UAAU,IAAI,MAAM;CAIrB"}
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC"}
@@ -3,32 +3,10 @@
3
3
  * Tempo KeyPair - Reuses Ethereum KeyPair Implementation
4
4
  *
5
5
  * Since Tempo is EVM-compatible and uses the same cryptography (ECDSA/secp256k1)
6
- * as Ethereum, we can directly reuse the Ethereum KeyPair implementation.
6
+ * as Ethereum, we directly reuse the Ethereum KeyPair implementation from abstract-eth.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.KeyPair = void 0;
10
- const secp256k1_1 = require("@bitgo-beta/secp256k1");
11
- /**
12
- * Tempo KeyPair class
13
- * Uses same key derivation as Ethereum (BIP32 + secp256k1)
14
- */
15
- class KeyPair {
16
- constructor(source) {
17
- // TODO: Implement proper key generation when needed
18
- const seed = Buffer.alloc(64);
19
- const hdNode = secp256k1_1.bip32.fromSeed(seed);
20
- this.keyPair = {
21
- prv: hdNode.toBase58(),
22
- pub: hdNode.neutered().toBase58(),
23
- };
24
- }
25
- getKeys() {
26
- return this.keyPair;
27
- }
28
- getAddress() {
29
- // TODO: Implement Ethereum-style address derivation
30
- return '0x0000000000000000000000000000000000000000';
31
- }
32
- }
33
- exports.KeyPair = KeyPair;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUVILHFEQUE4QztBQUc5Qzs7O0dBR0c7QUFDSCxNQUFhLE9BQU87SUFHbEIsWUFBWSxNQUF1QjtRQUNqQyxvREFBb0Q7UUFDcEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDdEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ1Isb0RBQW9EO1FBQ3BELE9BQU8sNENBQTRDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBdEJELDBCQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVtcG8gS2V5UGFpciAtIFJldXNlcyBFdGhlcmV1bSBLZXlQYWlyIEltcGxlbWVudGF0aW9uXG4gKlxuICogU2luY2UgVGVtcG8gaXMgRVZNLWNvbXBhdGlibGUgYW5kIHVzZXMgdGhlIHNhbWUgY3J5cHRvZ3JhcGh5IChFQ0RTQS9zZWNwMjU2azEpXG4gKiBhcyBFdGhlcmV1bSwgd2UgY2FuIGRpcmVjdGx5IHJldXNlIHRoZSBFdGhlcmV1bSBLZXlQYWlyIGltcGxlbWVudGF0aW9uLlxuICovXG5cbmltcG9ydCB7IGJpcDMyIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCB7IERlZmF1bHRLZXlzLCBLZXlQYWlyT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuLyoqXG4gKiBUZW1wbyBLZXlQYWlyIGNsYXNzXG4gKiBVc2VzIHNhbWUga2V5IGRlcml2YXRpb24gYXMgRXRoZXJldW0gKEJJUDMyICsgc2VjcDI1NmsxKVxuICovXG5leHBvcnQgY2xhc3MgS2V5UGFpciB7XG4gIHByaXZhdGUga2V5UGFpcjogRGVmYXVsdEtleXM7XG5cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgcHJvcGVyIGtleSBnZW5lcmF0aW9uIHdoZW4gbmVlZGVkXG4gICAgY29uc3Qgc2VlZCA9IEJ1ZmZlci5hbGxvYyg2NCk7XG4gICAgY29uc3QgaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc2VlZCk7XG5cbiAgICB0aGlzLmtleVBhaXIgPSB7XG4gICAgICBwcnY6IGhkTm9kZS50b0Jhc2U1OCgpLFxuICAgICAgcHViOiBoZE5vZGUubmV1dGVyZWQoKS50b0Jhc2U1OCgpLFxuICAgIH07XG4gIH1cblxuICBnZXRLZXlzKCk6IERlZmF1bHRLZXlzIHtcbiAgICByZXR1cm4gdGhpcy5rZXlQYWlyO1xuICB9XG5cbiAgZ2V0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBFdGhlcmV1bS1zdHlsZSBhZGRyZXNzIGRlcml2YXRpb25cbiAgICByZXR1cm4gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG4gIH1cbn1cbiJdfQ==
10
+ var abstract_eth_1 = require("@bitgo-beta/abstract-eth");
11
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return abstract_eth_1.KeyPair; } });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUVILHlEQUFtRDtBQUExQyx1R0FBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlbXBvIEtleVBhaXIgLSBSZXVzZXMgRXRoZXJldW0gS2V5UGFpciBJbXBsZW1lbnRhdGlvblxuICpcbiAqIFNpbmNlIFRlbXBvIGlzIEVWTS1jb21wYXRpYmxlIGFuZCB1c2VzIHRoZSBzYW1lIGNyeXB0b2dyYXBoeSAoRUNEU0Evc2VjcDI1NmsxKVxuICogYXMgRXRoZXJldW0sIHdlIGRpcmVjdGx5IHJldXNlIHRoZSBFdGhlcmV1bSBLZXlQYWlyIGltcGxlbWVudGF0aW9uIGZyb20gYWJzdHJhY3QtZXRoLlxuICovXG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuIl19
@@ -1,25 +1,98 @@
1
1
  /**
2
- * TIP20 Token Standard ABI (Skeleton)
2
+ * TIP-20 Token Standard ABI
3
3
  *
4
- * TODO: Update this file when TIP20 ABI becomes available
4
+ * TIP-20 is Tempo's token standard, similar to ERC-20 but with:
5
+ * - 6 decimal places (instead of 18)
6
+ * - transferWithMemo function for attaching metadata
5
7
  */
6
8
  /**
7
- * Placeholder TIP20 ABI
8
- * This is an empty array that should be replaced with the actual ABI
9
+ * TIP-20 transferWithMemo ABI
10
+ * Standard function for TIP-20 token transfers with memo field
9
11
  */
10
- export declare const TIP20_ABI: readonly [];
12
+ export declare const TIP20_TRANSFER_WITH_MEMO_ABI: readonly [{
13
+ readonly type: "function";
14
+ readonly name: "transferWithMemo";
15
+ readonly inputs: readonly [{
16
+ readonly name: "to";
17
+ readonly type: "address";
18
+ }, {
19
+ readonly name: "amount";
20
+ readonly type: "uint256";
21
+ }, {
22
+ readonly name: "memo";
23
+ readonly type: "bytes32";
24
+ }];
25
+ readonly outputs: readonly [{
26
+ readonly name: "";
27
+ readonly type: "bool";
28
+ }];
29
+ readonly stateMutability: "nonpayable";
30
+ }];
11
31
  /**
12
- * Placeholder for TIP20 Factory ABI
32
+ * Standard TIP-20 token ABI (similar to ERC-20)
13
33
  */
14
- export declare const TIP20_FACTORY_ABI: readonly [];
15
- /**
16
- * Get the method signature for TIP20 transfer
17
- * TODO: Update with actual method name if different from ERC20
18
- */
19
- export declare function getTip20TransferSignature(): string;
20
- /**
21
- * Get the method signature for TIP20 transferFrom
22
- * TODO: Update with actual method name if different from ERC20
23
- */
24
- export declare function getTip20TransferFromSignature(): string;
34
+ export declare const TIP20_ABI: readonly [{
35
+ readonly type: "function";
36
+ readonly name: "balanceOf";
37
+ readonly inputs: readonly [{
38
+ readonly name: "account";
39
+ readonly type: "address";
40
+ }];
41
+ readonly outputs: readonly [{
42
+ readonly name: "";
43
+ readonly type: "uint256";
44
+ }];
45
+ readonly stateMutability: "view";
46
+ }, {
47
+ readonly type: "function";
48
+ readonly name: "transfer";
49
+ readonly inputs: readonly [{
50
+ readonly name: "to";
51
+ readonly type: "address";
52
+ }, {
53
+ readonly name: "amount";
54
+ readonly type: "uint256";
55
+ }];
56
+ readonly outputs: readonly [{
57
+ readonly name: "";
58
+ readonly type: "bool";
59
+ }];
60
+ readonly stateMutability: "nonpayable";
61
+ }, {
62
+ readonly type: "function";
63
+ readonly name: "transferFrom";
64
+ readonly inputs: readonly [{
65
+ readonly name: "from";
66
+ readonly type: "address";
67
+ }, {
68
+ readonly name: "to";
69
+ readonly type: "address";
70
+ }, {
71
+ readonly name: "amount";
72
+ readonly type: "uint256";
73
+ }];
74
+ readonly outputs: readonly [{
75
+ readonly name: "";
76
+ readonly type: "bool";
77
+ }];
78
+ readonly stateMutability: "nonpayable";
79
+ }, {
80
+ readonly type: "function";
81
+ readonly name: "transferWithMemo";
82
+ readonly inputs: readonly [{
83
+ readonly name: "to";
84
+ readonly type: "address";
85
+ }, {
86
+ readonly name: "amount";
87
+ readonly type: "uint256";
88
+ }, {
89
+ readonly name: "memo";
90
+ readonly type: "bytes32";
91
+ }];
92
+ readonly outputs: readonly [{
93
+ readonly name: "";
94
+ readonly type: "bool";
95
+ }];
96
+ readonly stateMutability: "nonpayable";
97
+ }];
25
98
  //# sourceMappingURL=tip20Abi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tip20Abi.d.ts","sourceRoot":"","sources":["../../../src/lib/tip20Abi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS,aAAc,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,iBAAiB,aAAc,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD"}
1
+ {"version":3,"file":"tip20Abi.d.ts","sourceRoot":"","sources":["../../../src/lib/tip20Abi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BZ,CAAC"}
@@ -1,34 +1,62 @@
1
1
  "use strict";
2
2
  /**
3
- * TIP20 Token Standard ABI (Skeleton)
3
+ * TIP-20 Token Standard ABI
4
4
  *
5
- * TODO: Update this file when TIP20 ABI becomes available
5
+ * TIP-20 is Tempo's token standard, similar to ERC-20 but with:
6
+ * - 6 decimal places (instead of 18)
7
+ * - transferWithMemo function for attaching metadata
6
8
  */
7
9
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.TIP20_FACTORY_ABI = exports.TIP20_ABI = void 0;
9
- exports.getTip20TransferSignature = getTip20TransferSignature;
10
- exports.getTip20TransferFromSignature = getTip20TransferFromSignature;
10
+ exports.TIP20_ABI = exports.TIP20_TRANSFER_WITH_MEMO_ABI = void 0;
11
11
  /**
12
- * Placeholder TIP20 ABI
13
- * This is an empty array that should be replaced with the actual ABI
12
+ * TIP-20 transferWithMemo ABI
13
+ * Standard function for TIP-20 token transfers with memo field
14
14
  */
15
- exports.TIP20_ABI = [];
15
+ exports.TIP20_TRANSFER_WITH_MEMO_ABI = [
16
+ {
17
+ type: 'function',
18
+ name: 'transferWithMemo',
19
+ inputs: [
20
+ { name: 'to', type: 'address' },
21
+ { name: 'amount', type: 'uint256' },
22
+ { name: 'memo', type: 'bytes32' },
23
+ ],
24
+ outputs: [{ name: '', type: 'bool' }],
25
+ stateMutability: 'nonpayable',
26
+ },
27
+ ];
16
28
  /**
17
- * Placeholder for TIP20 Factory ABI
29
+ * Standard TIP-20 token ABI (similar to ERC-20)
18
30
  */
19
- exports.TIP20_FACTORY_ABI = [];
20
- /**
21
- * Get the method signature for TIP20 transfer
22
- * TODO: Update with actual method name if different from ERC20
23
- */
24
- function getTip20TransferSignature() {
25
- return 'transfer(address,uint256)';
26
- }
27
- /**
28
- * Get the method signature for TIP20 transferFrom
29
- * TODO: Update with actual method name if different from ERC20
30
- */
31
- function getTip20TransferFromSignature() {
32
- return 'transferFrom(address,address,uint256)';
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBBYmkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RpcDIwQWJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFpQkgsOERBRUM7QUFNRCxzRUFFQztBQXpCRDs7O0dBR0c7QUFDVSxRQUFBLFNBQVMsR0FBRyxFQUFXLENBQUM7QUFFckM7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLEVBQVcsQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxTQUFnQix5QkFBeUI7SUFDdkMsT0FBTywyQkFBMkIsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsNkJBQTZCO0lBQzNDLE9BQU8sdUNBQXVDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVElQMjAgVG9rZW4gU3RhbmRhcmQgQUJJIChTa2VsZXRvbilcbiAqXG4gKiBUT0RPOiBVcGRhdGUgdGhpcyBmaWxlIHdoZW4gVElQMjAgQUJJIGJlY29tZXMgYXZhaWxhYmxlXG4gKi9cblxuLyoqXG4gKiBQbGFjZWhvbGRlciBUSVAyMCBBQklcbiAqIFRoaXMgaXMgYW4gZW1wdHkgYXJyYXkgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsIEFCSVxuICovXG5leHBvcnQgY29uc3QgVElQMjBfQUJJID0gW10gYXMgY29uc3Q7XG5cbi8qKlxuICogUGxhY2Vob2xkZXIgZm9yIFRJUDIwIEZhY3RvcnkgQUJJXG4gKi9cbmV4cG9ydCBjb25zdCBUSVAyMF9GQUNUT1JZX0FCSSA9IFtdIGFzIGNvbnN0O1xuXG4vKipcbiAqIEdldCB0aGUgbWV0aG9kIHNpZ25hdHVyZSBmb3IgVElQMjAgdHJhbnNmZXJcbiAqIFRPRE86IFVwZGF0ZSB3aXRoIGFjdHVhbCBtZXRob2QgbmFtZSBpZiBkaWZmZXJlbnQgZnJvbSBFUkMyMFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGlwMjBUcmFuc2ZlclNpZ25hdHVyZSgpOiBzdHJpbmcge1xuICByZXR1cm4gJ3RyYW5zZmVyKGFkZHJlc3MsdWludDI1NiknO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWV0aG9kIHNpZ25hdHVyZSBmb3IgVElQMjAgdHJhbnNmZXJGcm9tXG4gKiBUT0RPOiBVcGRhdGUgd2l0aCBhY3R1YWwgbWV0aG9kIG5hbWUgaWYgZGlmZmVyZW50IGZyb20gRVJDMjBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRpcDIwVHJhbnNmZXJGcm9tU2lnbmF0dXJlKCk6IHN0cmluZyB7XG4gIHJldHVybiAndHJhbnNmZXJGcm9tKGFkZHJlc3MsYWRkcmVzcyx1aW50MjU2KSc7XG59XG4iXX0=
31
+ exports.TIP20_ABI = [
32
+ {
33
+ type: 'function',
34
+ name: 'balanceOf',
35
+ inputs: [{ name: 'account', type: 'address' }],
36
+ outputs: [{ name: '', type: 'uint256' }],
37
+ stateMutability: 'view',
38
+ },
39
+ {
40
+ type: 'function',
41
+ name: 'transfer',
42
+ inputs: [
43
+ { name: 'to', type: 'address' },
44
+ { name: 'amount', type: 'uint256' },
45
+ ],
46
+ outputs: [{ name: '', type: 'bool' }],
47
+ stateMutability: 'nonpayable',
48
+ },
49
+ {
50
+ type: 'function',
51
+ name: 'transferFrom',
52
+ inputs: [
53
+ { name: 'from', type: 'address' },
54
+ { name: 'to', type: 'address' },
55
+ { name: 'amount', type: 'uint256' },
56
+ ],
57
+ outputs: [{ name: '', type: 'bool' }],
58
+ stateMutability: 'nonpayable',
59
+ },
60
+ ...exports.TIP20_TRANSFER_WITH_MEMO_ABI,
61
+ ];
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBBYmkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RpcDIwQWJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVIOzs7R0FHRztBQUNVLFFBQUEsNEJBQTRCLEdBQUc7SUFDMUM7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQy9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ25DLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQ2xDO1FBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNyQyxlQUFlLEVBQUUsWUFBWTtLQUM5QjtDQUNPLENBQUM7QUFFWDs7R0FFRztBQUNVLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLFdBQVc7UUFDakIsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMvQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUNwQztRQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDckMsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxjQUFjO1FBQ3BCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ2pDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQy9CLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQ3BDO1FBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNyQyxlQUFlLEVBQUUsWUFBWTtLQUM5QjtJQUNELEdBQUcsb0NBQTRCO0NBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRJUC0yMCBUb2tlbiBTdGFuZGFyZCBBQklcbiAqXG4gKiBUSVAtMjAgaXMgVGVtcG8ncyB0b2tlbiBzdGFuZGFyZCwgc2ltaWxhciB0byBFUkMtMjAgYnV0IHdpdGg6XG4gKiAtIDYgZGVjaW1hbCBwbGFjZXMgKGluc3RlYWQgb2YgMTgpXG4gKiAtIHRyYW5zZmVyV2l0aE1lbW8gZnVuY3Rpb24gZm9yIGF0dGFjaGluZyBtZXRhZGF0YVxuICovXG5cbi8qKlxuICogVElQLTIwIHRyYW5zZmVyV2l0aE1lbW8gQUJJXG4gKiBTdGFuZGFyZCBmdW5jdGlvbiBmb3IgVElQLTIwIHRva2VuIHRyYW5zZmVycyB3aXRoIG1lbW8gZmllbGRcbiAqL1xuZXhwb3J0IGNvbnN0IFRJUDIwX1RSQU5TRkVSX1dJVEhfTUVNT19BQkkgPSBbXG4gIHtcbiAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgIG5hbWU6ICd0cmFuc2ZlcldpdGhNZW1vJyxcbiAgICBpbnB1dHM6IFtcbiAgICAgIHsgbmFtZTogJ3RvJywgdHlwZTogJ2FkZHJlc3MnIH0sXG4gICAgICB7IG5hbWU6ICdhbW91bnQnLCB0eXBlOiAndWludDI1NicgfSxcbiAgICAgIHsgbmFtZTogJ21lbW8nLCB0eXBlOiAnYnl0ZXMzMicgfSxcbiAgICBdLFxuICAgIG91dHB1dHM6IFt7IG5hbWU6ICcnLCB0eXBlOiAnYm9vbCcgfV0sXG4gICAgc3RhdGVNdXRhYmlsaXR5OiAnbm9ucGF5YWJsZScsXG4gIH0sXG5dIGFzIGNvbnN0O1xuXG4vKipcbiAqIFN0YW5kYXJkIFRJUC0yMCB0b2tlbiBBQkkgKHNpbWlsYXIgdG8gRVJDLTIwKVxuICovXG5leHBvcnQgY29uc3QgVElQMjBfQUJJID0gW1xuICB7XG4gICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBuYW1lOiAnYmFsYW5jZU9mJyxcbiAgICBpbnB1dHM6IFt7IG5hbWU6ICdhY2NvdW50JywgdHlwZTogJ2FkZHJlc3MnIH1dLFxuICAgIG91dHB1dHM6IFt7IG5hbWU6ICcnLCB0eXBlOiAndWludDI1NicgfV0sXG4gICAgc3RhdGVNdXRhYmlsaXR5OiAndmlldycsXG4gIH0sXG4gIHtcbiAgICB0eXBlOiAnZnVuY3Rpb24nLFxuICAgIG5hbWU6ICd0cmFuc2ZlcicsXG4gICAgaW5wdXRzOiBbXG4gICAgICB7IG5hbWU6ICd0bycsIHR5cGU6ICdhZGRyZXNzJyB9LFxuICAgICAgeyBuYW1lOiAnYW1vdW50JywgdHlwZTogJ3VpbnQyNTYnIH0sXG4gICAgXSxcbiAgICBvdXRwdXRzOiBbeyBuYW1lOiAnJywgdHlwZTogJ2Jvb2wnIH1dLFxuICAgIHN0YXRlTXV0YWJpbGl0eTogJ25vbnBheWFibGUnLFxuICB9LFxuICB7XG4gICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBuYW1lOiAndHJhbnNmZXJGcm9tJyxcbiAgICBpbnB1dHM6IFtcbiAgICAgIHsgbmFtZTogJ2Zyb20nLCB0eXBlOiAnYWRkcmVzcycgfSxcbiAgICAgIHsgbmFtZTogJ3RvJywgdHlwZTogJ2FkZHJlc3MnIH0sXG4gICAgICB7IG5hbWU6ICdhbW91bnQnLCB0eXBlOiAndWludDI1NicgfSxcbiAgICBdLFxuICAgIG91dHB1dHM6IFt7IG5hbWU6ICcnLCB0eXBlOiAnYm9vbCcgfV0sXG4gICAgc3RhdGVNdXRhYmlsaXR5OiAnbm9ucGF5YWJsZScsXG4gIH0sXG4gIC4uLlRJUDIwX1RSQU5TRkVSX1dJVEhfTUVNT19BQkksXG5dIGFzIGNvbnN0O1xuIl19
@@ -0,0 +1,144 @@
1
+ /**
2
+ * TIP-20 Transaction
3
+ *
4
+ * Represents a Tempo Account Abstraction (AA) transaction (type 0x76)
5
+ * Supports single or batch TIP-20 token transfers with memos
6
+ */
7
+ import { BaseTransaction, TransactionType } from '@bitgo-beta/sdk-core';
8
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
9
+ import { Address, Hex, RawContractCall, Tip20Operation } from './types';
10
+ /**
11
+ * TIP-20 Transaction Request Structure
12
+ * Represents the raw transaction data for Tempo Account Abstraction (EIP-7702)
13
+ */
14
+ export interface Tip20TransactionRequest {
15
+ /** Transaction type (0x76 for Tempo AA) */
16
+ type: number | string;
17
+ /** Chain ID for the Tempo network */
18
+ chainId: number;
19
+ /** Transaction nonce */
20
+ nonce: number;
21
+ /** Maximum fee per gas (EIP-1559) */
22
+ maxFeePerGas: bigint;
23
+ /** Maximum priority fee per gas (EIP-1559) */
24
+ maxPriorityFeePerGas: bigint;
25
+ /** Gas limit for the transaction */
26
+ gas: bigint;
27
+ /** Array of calls to execute in this transaction */
28
+ calls: {
29
+ to: Address;
30
+ data: Hex;
31
+ value: bigint;
32
+ }[];
33
+ /** Access list (optional, typically empty for TIP-20) */
34
+ accessList?: unknown[];
35
+ /** Optional TIP-20 token to use for paying fees */
36
+ feeToken?: Address;
37
+ }
38
+ export interface TxData {
39
+ type: number | string;
40
+ chainId: number;
41
+ nonce: number;
42
+ maxFeePerGas: string;
43
+ maxPriorityFeePerGas: string;
44
+ gas: string;
45
+ callCount: number;
46
+ feeToken?: string;
47
+ operations: Tip20Operation[];
48
+ rawCalls: RawContractCall[];
49
+ signature?: {
50
+ r: Hex;
51
+ s: Hex;
52
+ yParity: number;
53
+ };
54
+ }
55
+ export declare class Tip20Transaction extends BaseTransaction {
56
+ private txRequest;
57
+ private _operations;
58
+ private _rawCalls;
59
+ private _signature?;
60
+ constructor(_coinConfig: Readonly<CoinConfig>, request: Tip20TransactionRequest, operations?: Tip20Operation[], rawCalls?: RawContractCall[]);
61
+ get type(): TransactionType;
62
+ canSign(): boolean;
63
+ serialize(signature?: {
64
+ r: Hex;
65
+ s: Hex;
66
+ yParity: number;
67
+ }): Promise<Hex>;
68
+ /**
69
+ * Encode calls as RLP tuples for atomic batch execution
70
+ * @returns Array of [to, value, data] tuples
71
+ * @private
72
+ */
73
+ private encodeCallsAsTuples;
74
+ /**
75
+ * Encode EIP-2930 access list as RLP tuples
76
+ * @returns Array of [address, storageKeys[]] tuples
77
+ * @private
78
+ */
79
+ private encodeAccessList;
80
+ /**
81
+ * Convert bigint to hex string for RLP encoding
82
+ * @param value bigint value to convert
83
+ * @returns Hex string
84
+ * @private
85
+ */
86
+ private bigintToHex;
87
+ /**
88
+ * Build base RLP data array per Tempo EIP-7702 specification
89
+ * @param callsTuples Encoded calls
90
+ * @param accessTuples Encoded access list
91
+ * @returns RLP-ready array of transaction fields
92
+ * @private
93
+ */
94
+ private buildBaseRlpData;
95
+ /**
96
+ * Encode secp256k1 signature as 65-byte envelope
97
+ * @param signature ECDSA signature components
98
+ * @returns Hex string of concatenated r (32) + s (32) + v (1) bytes
99
+ * @private
100
+ */
101
+ private encodeSignature;
102
+ /**
103
+ * RLP encode and prepend transaction type byte
104
+ * @param rlpData Transaction fields array
105
+ * @returns Hex string with 0x76 prefix
106
+ * @private
107
+ */
108
+ private rlpEncodeWithTypePrefix;
109
+ /**
110
+ * Serialize Tempo AA transaction (type 0x76) per EIP-7702 specification
111
+ * Format: 0x76 || RLP([chainId, fees, gas, calls, accessList, nonce fields, feeToken, sponsorship, authList, signature?])
112
+ * @param signature Optional ECDSA signature (omit for unsigned transactions)
113
+ * @returns RLP-encoded transaction hex string
114
+ * @private
115
+ */
116
+ private serializeTransaction;
117
+ getOperations(): Tip20Operation[];
118
+ getRawCalls(): RawContractCall[];
119
+ getFeeToken(): Address | undefined;
120
+ getOperationCount(): number;
121
+ isBatch(): boolean;
122
+ setSignature(signature: {
123
+ r: Hex;
124
+ s: Hex;
125
+ yParity: number;
126
+ }): void;
127
+ getSignature(): {
128
+ r: Hex;
129
+ s: Hex;
130
+ yParity: number;
131
+ } | undefined;
132
+ /**
133
+ * Recover the signer address from the transaction signature.
134
+ * @returns Checksummed sender address, or undefined if unsigned
135
+ */
136
+ getSenderAddress(): string | undefined;
137
+ toJson(): TxData;
138
+ toBroadcastFormat(): Promise<string>;
139
+ /** @inheritdoc */
140
+ get id(): string;
141
+ toString(): string;
142
+ canBroadcast(): boolean;
143
+ }
144
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGxE;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,KAAK,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,UAAU,CAAC,CAAsC;gBAGvD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EACjC,OAAO,EAAE,uBAAuB,EAChC,UAAU,GAAE,cAAc,EAAO,EACjC,QAAQ,GAAE,eAAe,EAAO;IAsBlC,IAAI,IAAI,IAAI,eAAe,CAE1B;IAED,OAAO,IAAI,OAAO;IAIZ,SAAS,CAAC,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAK9E;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAY5B,aAAa,IAAI,cAAc,EAAE;IAIjC,WAAW,IAAI,eAAe,EAAE;IAIhC,WAAW,IAAI,OAAO,GAAG,SAAS;IAIlC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,IAAI,OAAO;IAIlB,YAAY,CAAC,SAAS,EAAE;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIlE,YAAY,IAAI;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAI/D;;;OAGG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;IActC,MAAM,IAAI,MAAM;IAgBV,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,CAOf;IAED,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,OAAO;CAGxB"}