@amadeus-protocol/sdk 1.0.5 → 1.0.7

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 (108) hide show
  1. package/README.md +2 -2
  2. package/dist/client.js +1 -1
  3. package/dist/client.js.map +1 -1
  4. package/dist/contract-state.d.ts +59 -0
  5. package/dist/contract-state.d.ts.map +1 -0
  6. package/dist/contract-state.js +117 -0
  7. package/dist/contract-state.js.map +1 -0
  8. package/dist/contracts/abi-types.d.ts +87 -0
  9. package/dist/contracts/abi-types.d.ts.map +1 -0
  10. package/dist/contracts/abi-types.js +8 -0
  11. package/dist/contracts/abi-types.js.map +1 -0
  12. package/dist/contracts/coin.d.ts +42 -0
  13. package/dist/contracts/coin.d.ts.map +1 -0
  14. package/dist/contracts/coin.js +42 -0
  15. package/dist/contracts/coin.js.map +1 -0
  16. package/dist/contracts/contract-call.d.ts +49 -0
  17. package/dist/contracts/contract-call.d.ts.map +1 -0
  18. package/dist/contracts/contract-call.js +57 -0
  19. package/dist/contracts/contract-call.js.map +1 -0
  20. package/dist/contracts/contract.d.ts +113 -0
  21. package/dist/contracts/contract.d.ts.map +1 -0
  22. package/dist/contracts/contract.js +107 -0
  23. package/dist/contracts/contract.js.map +1 -0
  24. package/dist/contracts/index.d.ts +7 -0
  25. package/dist/contracts/index.d.ts.map +1 -0
  26. package/dist/contracts/index.js +7 -0
  27. package/dist/contracts/index.js.map +1 -0
  28. package/dist/contracts/lockup/abi.d.ts +62 -0
  29. package/dist/contracts/lockup/abi.d.ts.map +1 -0
  30. package/dist/contracts/lockup/abi.js +77 -0
  31. package/dist/contracts/lockup/abi.js.map +1 -0
  32. package/dist/contracts/lockup/calls.d.ts +23 -0
  33. package/dist/contracts/lockup/calls.d.ts.map +1 -0
  34. package/dist/contracts/lockup/calls.js +25 -0
  35. package/dist/contracts/lockup/calls.js.map +1 -0
  36. package/dist/contracts/lockup/helpers.d.ts +24 -0
  37. package/dist/contracts/lockup/helpers.d.ts.map +1 -0
  38. package/dist/contracts/lockup/helpers.js +49 -0
  39. package/dist/contracts/lockup/helpers.js.map +1 -0
  40. package/dist/contracts/lockup/index.d.ts +6 -0
  41. package/dist/contracts/lockup/index.d.ts.map +1 -0
  42. package/dist/contracts/lockup/index.js +6 -0
  43. package/dist/contracts/lockup/index.js.map +1 -0
  44. package/dist/contracts/lockup/parsers.d.ts +20 -0
  45. package/dist/contracts/lockup/parsers.d.ts.map +1 -0
  46. package/dist/contracts/lockup/parsers.js +60 -0
  47. package/dist/contracts/lockup/parsers.js.map +1 -0
  48. package/dist/contracts/lockup/storage-keys.d.ts +15 -0
  49. package/dist/contracts/lockup/storage-keys.d.ts.map +1 -0
  50. package/dist/contracts/lockup/storage-keys.js +78 -0
  51. package/dist/contracts/lockup/storage-keys.js.map +1 -0
  52. package/dist/contracts/lockup/types.d.ts +90 -0
  53. package/dist/contracts/lockup/types.d.ts.map +1 -0
  54. package/dist/contracts/lockup/types.js +7 -0
  55. package/dist/contracts/lockup/types.js.map +1 -0
  56. package/dist/contracts/lockup-prime/abi.d.ts +348 -0
  57. package/dist/contracts/lockup-prime/abi.d.ts.map +1 -0
  58. package/dist/contracts/lockup-prime/abi.js +420 -0
  59. package/dist/contracts/lockup-prime/abi.js.map +1 -0
  60. package/dist/contracts/lockup-prime/calls.d.ts +53 -0
  61. package/dist/contracts/lockup-prime/calls.d.ts.map +1 -0
  62. package/dist/contracts/lockup-prime/calls.js +60 -0
  63. package/dist/contracts/lockup-prime/calls.js.map +1 -0
  64. package/dist/contracts/lockup-prime/helpers.d.ts +38 -0
  65. package/dist/contracts/lockup-prime/helpers.d.ts.map +1 -0
  66. package/dist/contracts/lockup-prime/helpers.js +147 -0
  67. package/dist/contracts/lockup-prime/helpers.js.map +1 -0
  68. package/dist/contracts/lockup-prime/index.d.ts +6 -0
  69. package/dist/contracts/lockup-prime/index.d.ts.map +1 -0
  70. package/dist/contracts/lockup-prime/index.js +6 -0
  71. package/dist/contracts/lockup-prime/index.js.map +1 -0
  72. package/dist/contracts/lockup-prime/parsers.d.ts +25 -0
  73. package/dist/contracts/lockup-prime/parsers.d.ts.map +1 -0
  74. package/dist/contracts/lockup-prime/parsers.js +68 -0
  75. package/dist/contracts/lockup-prime/parsers.js.map +1 -0
  76. package/dist/contracts/lockup-prime/storage-keys.d.ts +25 -0
  77. package/dist/contracts/lockup-prime/storage-keys.d.ts.map +1 -0
  78. package/dist/contracts/lockup-prime/storage-keys.js +92 -0
  79. package/dist/contracts/lockup-prime/storage-keys.js.map +1 -0
  80. package/dist/contracts/lockup-prime/types.d.ts +116 -0
  81. package/dist/contracts/lockup-prime/types.d.ts.map +1 -0
  82. package/dist/contracts/lockup-prime/types.js +18 -0
  83. package/dist/contracts/lockup-prime/types.js.map +1 -0
  84. package/dist/crypto.js +1 -1
  85. package/dist/crypto.js.map +1 -1
  86. package/dist/formatters.d.ts +1 -1
  87. package/dist/formatters.d.ts.map +1 -1
  88. package/dist/formatters.js +2 -2
  89. package/dist/formatters.js.map +1 -1
  90. package/dist/index.d.ts +2 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +2 -0
  93. package/dist/index.js.map +1 -1
  94. package/dist/serialization.d.ts +22 -0
  95. package/dist/serialization.d.ts.map +1 -1
  96. package/dist/serialization.js +39 -2
  97. package/dist/serialization.js.map +1 -1
  98. package/dist/signing.d.ts +39 -0
  99. package/dist/signing.d.ts.map +1 -0
  100. package/dist/signing.js +84 -0
  101. package/dist/signing.js.map +1 -0
  102. package/dist/transaction-builder.d.ts +135 -194
  103. package/dist/transaction-builder.d.ts.map +1 -1
  104. package/dist/transaction-builder.js +237 -288
  105. package/dist/transaction-builder.js.map +1 -1
  106. package/dist/types.d.ts +17 -0
  107. package/dist/types.d.ts.map +1 -1
  108. package/package.json +1 -1
package/README.md CHANGED
@@ -41,7 +41,7 @@ import { AmadeusSDK } from '@amadeus-protocol/sdk'
41
41
 
42
42
  // Initialize SDK (uses default node URL if not specified)
43
43
  const sdk = new AmadeusSDK({
44
- baseUrl: 'https://nodes.amadeus.bot/api'
44
+ baseUrl: 'https://mainnet-rpc.ama.one/api'
45
45
  })
46
46
 
47
47
  // Query chain
@@ -64,7 +64,7 @@ const result = await sdk.transaction.submit(txPacked)
64
64
  import { AmadeusSDK } from '@amadeus-protocol/sdk'
65
65
 
66
66
  const sdk = new AmadeusSDK({
67
- baseUrl: 'https://nodes.amadeus.bot/api',
67
+ baseUrl: 'https://mainnet-rpc.ama.one/api',
68
68
  timeout: 30000 // Optional: custom timeout
69
69
  })
70
70
 
package/dist/client.js CHANGED
@@ -41,7 +41,7 @@ export class AmadeusClient {
41
41
  timeout: config.timeout && config.timeout > 0 ? config.timeout : DEFAULT_TIMEOUT,
42
42
  headers: {
43
43
  'Content-Type': 'application/octet-stream',
44
- 'User-Agent': `@amadeus-protocol/sdk/${SDK_VERSION}`,
44
+ 'X-Client-Type': `@amadeus-protocol/sdk/${SDK_VERSION}`,
45
45
  ...config.headers
46
46
  }
47
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC9B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAA;IACb,CAAC;AACF,CAAC;AAED,MAAM,OAAO,aAAa;IACjB,MAAM,CAA4B;IAClC,eAAe,GAA2B,IAAI,CAAA;IAEtD;;;;;OAKG;IACH,YAAY,MAAwB;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,YAAY,CAAA;QAE9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CACxB,oBAAoB,OAAO,mCAAmC,CAC9D,CAAA;QACF,CAAC;QAED,0CAA0C;QAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAErD,IAAI,CAAC,MAAM,GAAG;YACb,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;YAChF,OAAO,EAAE;gBACR,cAAc,EAAE,0BAA0B;gBAC1C,YAAY,EAAE,yBAAyB,WAAW,EAAE;gBACpD,GAAG,MAAM,CAAC,OAAO;aACjB;SACD,CAAA;IACF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAc,QAAgB,EAAE,MAAgC;QACxE,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACxC,MAAM,EAAE,KAAK;SACb,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAe,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAc,QAAgB,EAAE,IAAc;QACvD,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACnC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAEpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO,EAAE;gBACR,cAAc,EAAE,WAAW;aAC3B;SACD,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAe,CAAA;IACnD,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,QAAgB,EAAE,MAAgC;QAClE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAElD,IAAI,MAAM,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC3C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACtB,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAc;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;QACpE,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,IAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;QAC3E,CAAC;QACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,IAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;QAC3E,CAAC;QAED,oDAAoD;QACpD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,OAAO;gBACN,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAa;gBACtC,WAAW,EAAE,0BAA0B;aACvC,CAAA;QACF,CAAC;QAED,qEAAqE;QACrE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,IAA+B,CAAA;YAC3C,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,YAAY,UAAU,EAAE,CAAC;gBAC7D,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;YACnF,CAAC;YACD,IAAI,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,YAAY,UAAU,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;YACpF,CAAC;QACF,CAAC;QAED,wBAAwB;QACxB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAA;IACvE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,OAAoB;QACtD,iCAAiC;QACjC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAA;QAC9B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEvB,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACjC,GAAG,OAAO;gBACV,OAAO,EAAE;oBACR,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;oBACtB,GAAG,OAAO,CAAC,OAAO;iBAClB;gBACD,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;aACnC,CAAC,CAAA;YAEF,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,QAAQ,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClE,MAAM,IAAI,eAAe,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAA;gBACjF,CAAC;gBACD,MAAM,IAAI,eAAe,CACxB,mBAAmB,KAAK,CAAC,OAAO,EAAE,EAClC,CAAC,EACD,KAAK,YAAY,KAAK;oBACrB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;oBAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3B,CAAA;YACF,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE;gBAChE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;aACpB,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,SAAkB,CAAA;YACtB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAExD,IAAI,CAAC;gBACJ,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/C,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAClC,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;oBAClC,0DAA0D;oBAC1D,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBACxC,kDAAkD;wBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;wBACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;wBACrD,SAAS;4BACR,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,QAAQ,CAAC,MAAM,QAAQ,CAAA;oBACpE,CAAC;yBAAM,CAAC;wBACP,SAAS,GAAG,IAAI,CAAA;oBACjB,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACrB,SAAS,GAAG,mCACX,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CACrE,EAAE,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GACZ,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,IAAI,SAAS;gBAC1E,CAAC,CAAC,MAAM,CAAE,SAAgC,CAAC,KAAK,CAAC;gBACjD,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ;oBAC9B,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG;wBACvB,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB;wBACjD,CAAC,CAAC,SAAS;oBACZ,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,eAAe,CAAA;YAE3C,MAAM,IAAI,eAAe,CACxB,QAAQ,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,EACrC,QAAQ,CAAC,MAAM,EACf,SAAoC,CACpC,CAAA;QACF,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACxD,IAAI,IAAa,CAAA;QAEjB,IAAI,CAAC;YACJ,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/C,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACP,mCAAmC;gBACnC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAClC,IAAI,CAAC;oBACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACR,IAAI,GAAG,IAAI,CAAA;gBACZ,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,eAAe,CACxB,6BAA6B,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EACpG,QAAQ,CAAC,MAAM,CACf,CAAA;QACF,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YAClE,MAAM,WAAW,GAAG,IAAmB,CAAA;YACvC,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChC,6DAA6D;gBAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAA;gBAC9C,OAAO,IAAI,CAAA;YACZ,CAAC;iBAAM,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC9C,MAAM,IAAI,eAAe,CACxB,oBAAoB,EACpB,GAAG,EACH,WAAsC,CACtC,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,eAAe,CACxB,WAAW,CAAC,KAAK,IAAI,mBAAmB,EACxC,GAAG,EACH,WAAsC,CACtC,CAAA;YACF,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;OAEG;IACH,SAAS;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,GAAW;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,eAAe,CAAC,oBAAoB,GAAG,mCAAmC,CAAC,CAAA;QACtF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAA+B;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;IAC7D,CAAC;IAED;;OAEG;IACH,MAAM;QACL,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC5B,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC9B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAA;IACb,CAAC;AACF,CAAC;AAED,MAAM,OAAO,aAAa;IACjB,MAAM,CAA4B;IAClC,eAAe,GAA2B,IAAI,CAAA;IAEtD;;;;;OAKG;IACH,YAAY,MAAwB;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,YAAY,CAAA;QAE9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CACxB,oBAAoB,OAAO,mCAAmC,CAC9D,CAAA;QACF,CAAC;QAED,0CAA0C;QAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAErD,IAAI,CAAC,MAAM,GAAG;YACb,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;YAChF,OAAO,EAAE;gBACR,cAAc,EAAE,0BAA0B;gBAC1C,eAAe,EAAE,yBAAyB,WAAW,EAAE;gBACvD,GAAG,MAAM,CAAC,OAAO;aACjB;SACD,CAAA;IACF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAc,QAAgB,EAAE,MAAgC;QACxE,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACxC,MAAM,EAAE,KAAK;SACb,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAe,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAc,QAAgB,EAAE,IAAc;QACvD,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACnC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAEpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO,EAAE;gBACR,cAAc,EAAE,WAAW;aAC3B;SACD,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAe,CAAA;IACnD,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,QAAgB,EAAE,MAAgC;QAClE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAElD,IAAI,MAAM,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC3C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC5C,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACtB,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAc;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;QACpE,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,IAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;QAC3E,CAAC;QACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,IAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;QAC3E,CAAC;QAED,oDAAoD;QACpD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,OAAO;gBACN,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAa;gBACtC,WAAW,EAAE,0BAA0B;aACvC,CAAA;QACF,CAAC;QAED,qEAAqE;QACrE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,IAA+B,CAAA;YAC3C,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,YAAY,UAAU,EAAE,CAAC;gBAC7D,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAoB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;YACnF,CAAC;YACD,IAAI,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,YAAY,UAAU,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;YACpF,CAAC;QACF,CAAC;QAED,wBAAwB;QACxB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAA;IACvE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,OAAoB;QACtD,iCAAiC;QACjC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAA;QAC9B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEvB,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACjC,GAAG,OAAO;gBACV,OAAO,EAAE;oBACR,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;oBACtB,GAAG,OAAO,CAAC,OAAO;iBAClB;gBACD,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;aACnC,CAAC,CAAA;YAEF,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,QAAQ,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClE,MAAM,IAAI,eAAe,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAA;gBACjF,CAAC;gBACD,MAAM,IAAI,eAAe,CACxB,mBAAmB,KAAK,CAAC,OAAO,EAAE,EAClC,CAAC,EACD,KAAK,YAAY,KAAK;oBACrB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;oBAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3B,CAAA;YACF,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE;gBAChE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;aACpB,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,SAAkB,CAAA;YACtB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAExD,IAAI,CAAC;gBACJ,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/C,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAClC,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;oBAClC,0DAA0D;oBAC1D,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBACxC,kDAAkD;wBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;wBACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;wBACrD,SAAS;4BACR,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,QAAQ,CAAC,MAAM,QAAQ,CAAA;oBACpE,CAAC;yBAAM,CAAC;wBACP,SAAS,GAAG,IAAI,CAAA;oBACjB,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACrB,SAAS,GAAG,mCACX,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CACrE,EAAE,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GACZ,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,IAAI,SAAS;gBAC1E,CAAC,CAAC,MAAM,CAAE,SAAgC,CAAC,KAAK,CAAC;gBACjD,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ;oBAC9B,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG;wBACvB,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB;wBACjD,CAAC,CAAC,SAAS;oBACZ,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,eAAe,CAAA;YAE3C,MAAM,IAAI,eAAe,CACxB,QAAQ,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,EACrC,QAAQ,CAAC,MAAM,EACf,SAAoC,CACpC,CAAA;QACF,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QACxD,IAAI,IAAa,CAAA;QAEjB,IAAI,CAAC;YACJ,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/C,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACP,mCAAmC;gBACnC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAClC,IAAI,CAAC;oBACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACR,IAAI,GAAG,IAAI,CAAA;gBACZ,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,eAAe,CACxB,6BAA6B,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EACpG,QAAQ,CAAC,MAAM,CACf,CAAA;QACF,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YAClE,MAAM,WAAW,GAAG,IAAmB,CAAA;YACvC,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChC,6DAA6D;gBAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAA;gBAC9C,OAAO,IAAI,CAAA;YACZ,CAAC;iBAAM,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC9C,MAAM,IAAI,eAAe,CACxB,oBAAoB,EACpB,GAAG,EACH,WAAsC,CACtC,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,eAAe,CACxB,WAAW,CAAC,KAAK,IAAI,mBAAmB,EACxC,GAAG,EACH,WAAsC,CACtC,CAAA;YACF,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED;;OAEG;IACH,SAAS;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,GAAW;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,eAAe,CAAC,oBAAoB,GAAG,mCAAmC,CAAC,CAAA;QACtF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAA+B;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;IAC7D,CAAC;IAED;;OAEG;IACH,MAAM;QACL,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC5B,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Contract State Utilities
3
+ *
4
+ * Provides functions for parsing contract state values returned by the Amadeus chain.
5
+ * Contract state values are stored as binary (Uint8Array) and need to be decoded
6
+ * into usable types (numbers, strings, etc.).
7
+ */
8
+ /**
9
+ * Decode VecPack-encoded contract state and convert keys/values to Base64 strings.
10
+ *
11
+ * Useful for serializing decoded contract state for Redux or other stores
12
+ * that require JSON-serializable values.
13
+ *
14
+ * @param bytes - VecPack-encoded bytes (Uint8Array or ArrayBuffer)
15
+ * @returns Array of [key, value] tuples as Base64 strings
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const buffer = await response.arrayBuffer()
20
+ * const entries = decodeContractStateToBase64(buffer)
21
+ * // entries: [["base64key", "base64value"], ...]
22
+ * ```
23
+ */
24
+ export declare function decodeContractStateToBase64(bytes: Uint8Array | ArrayBuffer): Array<[string, string]>;
25
+ /**
26
+ * Parse a contract state value as a number.
27
+ *
28
+ * Handles multiple input types:
29
+ * - `number` — returned directly
30
+ * - `string` — parsed as integer
31
+ * - `Uint8Array` — first tries UTF-8 digit string, then little-endian binary
32
+ * - `null`/`undefined` — returns 0
33
+ *
34
+ * @param value - Raw contract state value
35
+ * @returns Parsed number (0 if unparseable)
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * parseStateNumber(new TextEncoder().encode('42')) // 42
40
+ * parseStateNumber(new Uint8Array([0x2a, 0x00])) // 42 (little-endian)
41
+ * parseStateNumber('100') // 100
42
+ * parseStateNumber(null) // 0
43
+ * ```
44
+ */
45
+ export declare function parseStateNumber(value: string | number | Uint8Array | null | undefined): number;
46
+ /**
47
+ * Parse a contract state value as a string.
48
+ *
49
+ * Handles multiple input types:
50
+ * - `string` — returned directly
51
+ * - `number` — converted to string
52
+ * - `Uint8Array` — decoded as UTF-8
53
+ * - `null`/`undefined` — returns null
54
+ *
55
+ * @param value - Raw contract state value
56
+ * @returns Parsed string or null
57
+ */
58
+ export declare function parseStateString(value: string | number | Uint8Array | null | undefined): string | null;
59
+ //# sourceMappingURL=contract-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-state.d.ts","sourceRoot":"","sources":["../src/contract-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,UAAU,GAAG,WAAW,GAC7B,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAKzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,CAWR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GACpD,MAAM,GAAG,IAAI,CAQf"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Contract State Utilities
3
+ *
4
+ * Provides functions for parsing contract state values returned by the Amadeus chain.
5
+ * Contract state values are stored as binary (Uint8Array) and need to be decoded
6
+ * into usable types (numbers, strings, etc.).
7
+ */
8
+ import { uint8ArrayToBase64 } from './encoding';
9
+ import { decodeContractState } from './serialization';
10
+ /**
11
+ * Decode VecPack-encoded contract state and convert keys/values to Base64 strings.
12
+ *
13
+ * Useful for serializing decoded contract state for Redux or other stores
14
+ * that require JSON-serializable values.
15
+ *
16
+ * @param bytes - VecPack-encoded bytes (Uint8Array or ArrayBuffer)
17
+ * @returns Array of [key, value] tuples as Base64 strings
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const buffer = await response.arrayBuffer()
22
+ * const entries = decodeContractStateToBase64(buffer)
23
+ * // entries: [["base64key", "base64value"], ...]
24
+ * ```
25
+ */
26
+ export function decodeContractStateToBase64(bytes) {
27
+ const pairs = decodeContractState(bytes);
28
+ return pairs
29
+ .filter(([key, value]) => key.length > 0 && value.length > 0)
30
+ .map(([key, value]) => [uint8ArrayToBase64(key), uint8ArrayToBase64(value)]);
31
+ }
32
+ /**
33
+ * Parse a contract state value as a number.
34
+ *
35
+ * Handles multiple input types:
36
+ * - `number` — returned directly
37
+ * - `string` — parsed as integer
38
+ * - `Uint8Array` — first tries UTF-8 digit string, then little-endian binary
39
+ * - `null`/`undefined` — returns 0
40
+ *
41
+ * @param value - Raw contract state value
42
+ * @returns Parsed number (0 if unparseable)
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * parseStateNumber(new TextEncoder().encode('42')) // 42
47
+ * parseStateNumber(new Uint8Array([0x2a, 0x00])) // 42 (little-endian)
48
+ * parseStateNumber('100') // 100
49
+ * parseStateNumber(null) // 0
50
+ * ```
51
+ */
52
+ export function parseStateNumber(value) {
53
+ if (value === null || value === undefined)
54
+ return 0;
55
+ if (typeof value === 'number')
56
+ return Number.isInteger(value) && value >= 0 ? value : 0;
57
+ if (typeof value === 'string') {
58
+ const parsed = parseInt(value, 10);
59
+ return isNaN(parsed) || parsed < 0 ? 0 : parsed;
60
+ }
61
+ if (value instanceof Uint8Array) {
62
+ return decodeUint8ArrayAsNumber(value);
63
+ }
64
+ return 0;
65
+ }
66
+ /**
67
+ * Parse a contract state value as a string.
68
+ *
69
+ * Handles multiple input types:
70
+ * - `string` — returned directly
71
+ * - `number` — converted to string
72
+ * - `Uint8Array` — decoded as UTF-8
73
+ * - `null`/`undefined` — returns null
74
+ *
75
+ * @param value - Raw contract state value
76
+ * @returns Parsed string or null
77
+ */
78
+ export function parseStateString(value) {
79
+ if (value === null || value === undefined)
80
+ return null;
81
+ if (typeof value === 'string')
82
+ return value;
83
+ if (typeof value === 'number')
84
+ return value.toString();
85
+ if (value instanceof Uint8Array) {
86
+ return new TextDecoder().decode(value);
87
+ }
88
+ return null;
89
+ }
90
+ /**
91
+ * Decode a Uint8Array contract state value as a number.
92
+ * Tries UTF-8 digit string first, falls back to little-endian binary.
93
+ */
94
+ function decodeUint8ArrayAsNumber(value) {
95
+ if (!value.length)
96
+ return 0;
97
+ // First try to interpret as UTF-8 digits
98
+ try {
99
+ const str = new TextDecoder().decode(value);
100
+ const parsed = parseInt(str, 10);
101
+ if (!isNaN(parsed)) {
102
+ return parsed;
103
+ }
104
+ }
105
+ catch {
106
+ // Fallthrough to binary parsing
107
+ }
108
+ // Fallback: parse as little-endian integer (u32/u64)
109
+ let result = 0n;
110
+ const bytesToRead = Math.min(value.length, 8);
111
+ for (let i = 0; i < bytesToRead; i++) {
112
+ result |= BigInt(value[i]) << BigInt(i * 8);
113
+ }
114
+ const asNumber = Number(result);
115
+ return Number.isSafeInteger(asNumber) ? asNumber : 0;
116
+ }
117
+ //# sourceMappingURL=contract-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-state.js","sourceRoot":"","sources":["../src/contract-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Generic ABI Type Extractors
3
+ *
4
+ * Type-level utilities that extract TypeScript types from `as const` ABI objects.
5
+ * These enable compile-time safety for contract calls without any runtime overhead.
6
+ */
7
+ /**
8
+ * Shape of an ABI function input
9
+ */
10
+ export interface AbiInput {
11
+ readonly name: string;
12
+ readonly type: string;
13
+ readonly description?: string;
14
+ readonly validation?: {
15
+ readonly min?: string;
16
+ readonly max?: string;
17
+ readonly type?: string;
18
+ };
19
+ readonly enum?: readonly string[];
20
+ }
21
+ /**
22
+ * Shape of an ABI function entry
23
+ */
24
+ export interface AbiFunction {
25
+ readonly type: 'function';
26
+ readonly name: string;
27
+ readonly inputs: readonly AbiInput[];
28
+ readonly outputs: readonly unknown[];
29
+ readonly stateMutability: string;
30
+ readonly description?: string;
31
+ readonly requirements?: readonly string[];
32
+ readonly storage?: unknown;
33
+ }
34
+ /**
35
+ * Shape of any ABI definition (contractName, abi[], errors[], storage)
36
+ */
37
+ export interface AbiDefinition {
38
+ readonly contractName: string;
39
+ readonly contractVersion?: string;
40
+ readonly abi: readonly AbiFunction[];
41
+ readonly errors?: readonly unknown[];
42
+ readonly storage?: unknown;
43
+ }
44
+ /**
45
+ * Extract the literal contract name from an ABI definition
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * type Name = ExtractContractName<typeof LOCKUP_PRIME_ABI>
50
+ * // => 'LockupPrime'
51
+ * ```
52
+ */
53
+ export type ExtractContractName<T extends AbiDefinition> = T['contractName'];
54
+ /**
55
+ * Extract a union of all function names from an ABI definition
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * type Fns = ExtractFunctionNames<typeof LOCKUP_PRIME_ABI>
60
+ * // => 'lock' | 'unlock' | 'daily_checkin'
61
+ * ```
62
+ */
63
+ export type ExtractFunctionNames<T extends AbiDefinition> = T['abi'][number]['name'];
64
+ /**
65
+ * Find a specific function entry in the ABI by name
66
+ */
67
+ type FindFunction<TAbi extends AbiDefinition, TFn extends string> = Extract<TAbi['abi'][number], {
68
+ readonly name: TFn;
69
+ }>;
70
+ /**
71
+ * Extract the inputs array for a specific function
72
+ */
73
+ type FunctionInputs<TAbi extends AbiDefinition, TFn extends string> = FindFunction<TAbi, TFn>['inputs'];
74
+ /**
75
+ * Map an inputs tuple to a params object `{ inputName: string }`
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * type Params = FunctionParams<typeof LOCKUP_PRIME_ABI, 'lock'>
80
+ * // => { amount: string; tier: string }
81
+ * ```
82
+ */
83
+ export type FunctionParams<TAbi extends AbiDefinition, TFn extends string> = {
84
+ [K in FunctionInputs<TAbi, TFn>[number] as K['name']]: string;
85
+ };
86
+ export {};
87
+ //# sourceMappingURL=abi-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi-types.d.ts","sourceRoot":"","sources":["../../src/contracts/abi-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE;QACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAAA;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,WAAW,EAAE,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,CAAC,cAAc,CAAC,CAAA;AAE5E;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpF;;GAEG;AACH,KAAK,YAAY,CAChB,IAAI,SAAS,aAAa,EAC1B,GAAG,SAAS,MAAM,IACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAAA;AAExD;;GAEG;AACH,KAAK,cAAc,CAClB,IAAI,SAAS,aAAa,EAC1B,GAAG,SAAS,MAAM,IACf,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;AAErC;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,CACzB,IAAI,SAAS,aAAa,EAC1B,GAAG,SAAS,MAAM,IACf;KACF,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;CAC7D,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generic ABI Type Extractors
3
+ *
4
+ * Type-level utilities that extract TypeScript types from `as const` ABI objects.
5
+ * These enable compile-time safety for contract calls without any runtime overhead.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=abi-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi-types.js","sourceRoot":"","sources":["../../src/contracts/abi-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Coin Contract (Special Case)
3
+ *
4
+ * The Coin contract is a built-in native contract with no WASM ABI file.
5
+ * It differs from WASM contracts:
6
+ * - First arg (recipient) is raw binary Uint8Array from fromBase58(), not a UTF-8 string
7
+ * - Amount requires toAtomicAma() conversion
8
+ *
9
+ * This module provides a dedicated builder that handles these special encodings
10
+ * while returning a standard ContractCall for uniform consumption by TransactionBuilder.
11
+ */
12
+ import type { ContractCall } from './contract-call';
13
+ /**
14
+ * Parameters for building a Coin transfer call
15
+ */
16
+ export interface CoinTransferParams {
17
+ /** Base58-encoded recipient address */
18
+ recipient: string;
19
+ /** Amount in human-readable units (e.g. 10.5 AMA) */
20
+ amount: number | string;
21
+ /** Token symbol (e.g. 'AMA') */
22
+ symbol: string;
23
+ }
24
+ /**
25
+ * Build a Coin transfer ContractCall.
26
+ *
27
+ * Handles the special encoding requirements of the Coin contract:
28
+ * - recipient is decoded from Base58 to raw Uint8Array
29
+ * - amount is converted to atomic units via toAtomicAma()
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const call = buildCoinTransfer({
34
+ * recipient: '5Kd3N...',
35
+ * amount: 10.5,
36
+ * symbol: 'AMA'
37
+ * })
38
+ * TransactionBuilder.signCall(privateKey, call)
39
+ * ```
40
+ */
41
+ export declare function buildCoinTransfer(params: CoinTransferParams): ContractCall;
42
+ //# sourceMappingURL=coin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coin.d.ts","sourceRoot":"","sources":["../../src/contracts/coin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,qDAAqD;IACrD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAU1E"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Coin Contract (Special Case)
3
+ *
4
+ * The Coin contract is a built-in native contract with no WASM ABI file.
5
+ * It differs from WASM contracts:
6
+ * - First arg (recipient) is raw binary Uint8Array from fromBase58(), not a UTF-8 string
7
+ * - Amount requires toAtomicAma() conversion
8
+ *
9
+ * This module provides a dedicated builder that handles these special encodings
10
+ * while returning a standard ContractCall for uniform consumption by TransactionBuilder.
11
+ */
12
+ import { toAtomicAma } from '../conversion';
13
+ import { fromBase58 } from '../encoding';
14
+ /**
15
+ * Build a Coin transfer ContractCall.
16
+ *
17
+ * Handles the special encoding requirements of the Coin contract:
18
+ * - recipient is decoded from Base58 to raw Uint8Array
19
+ * - amount is converted to atomic units via toAtomicAma()
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const call = buildCoinTransfer({
24
+ * recipient: '5Kd3N...',
25
+ * amount: 10.5,
26
+ * symbol: 'AMA'
27
+ * })
28
+ * TransactionBuilder.signCall(privateKey, call)
29
+ * ```
30
+ */
31
+ export function buildCoinTransfer(params) {
32
+ return {
33
+ contract: 'Coin',
34
+ method: 'transfer',
35
+ args: [
36
+ fromBase58(params.recipient),
37
+ toAtomicAma(params.amount).toString(),
38
+ params.symbol
39
+ ]
40
+ };
41
+ }
42
+ //# sourceMappingURL=coin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coin.js","sourceRoot":"","sources":["../../src/contracts/coin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAexC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA0B;IAC3D,OAAO;QACN,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE;YACL,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAC5B,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;YACrC,MAAM,CAAC,MAAM;SACb;KACD,CAAA;AACF,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Core ContractCall Abstraction
3
+ *
4
+ * Provides a generic, ABI-driven way to build contract calls with both
5
+ * compile-time type safety and runtime validation.
6
+ */
7
+ import type { SerializableValue } from '../types';
8
+ import type { AbiDefinition, ExtractFunctionNames, FunctionParams } from './abi-types';
9
+ /**
10
+ * A fully-resolved contract call ready for TransactionBuilder.
11
+ *
12
+ * The type parameters are optional and used only for documentation;
13
+ * at runtime this is just `{ contract, method, args }`.
14
+ */
15
+ export interface ContractCall<_TAbi extends AbiDefinition = AbiDefinition, _TFn extends string = string> {
16
+ /** Contract name (e.g. 'LockupPrime', 'Lockup', 'Coin') */
17
+ readonly contract: string;
18
+ /** Function/method name (e.g. 'lock', 'unlock', 'transfer') */
19
+ readonly method: string;
20
+ /** Serialized args array ready for VecPack encoding */
21
+ readonly args: SerializableValue[];
22
+ }
23
+ /**
24
+ * Build a type-safe ContractCall from an ABI definition.
25
+ *
26
+ * Compile-time:
27
+ * - `functionName` is constrained to the ABI's function name union
28
+ * - `params` is typed per the function's declared inputs
29
+ *
30
+ * Runtime:
31
+ * - Validates function exists in ABI
32
+ * - Validates all required params are present
33
+ * - Validates enum constraints on inputs that declare them
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * import { LOCKUP_PRIME_ABI } from './lockup-prime/abi'
38
+ *
39
+ * const call = buildContractCall(LOCKUP_PRIME_ABI, 'lock', {
40
+ * amount: '1000000000',
41
+ * tier: '30d'
42
+ * })
43
+ * // call.contract === 'LockupPrime'
44
+ * // call.method === 'lock'
45
+ * // call.args === ['1000000000', '30d']
46
+ * ```
47
+ */
48
+ export declare function buildContractCall<TAbi extends AbiDefinition, TFn extends ExtractFunctionNames<TAbi>>(abi: TAbi, functionName: TFn, params: FunctionParams<TAbi, TFn & string>): ContractCall<TAbi, TFn & string>;
49
+ //# sourceMappingURL=contract-call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-call.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-call.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAuB,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE3G;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAC5B,KAAK,SAAS,aAAa,GAAG,aAAa,EAC3C,IAAI,SAAS,MAAM,GAAG,MAAM;IAE5B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAA;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,SAAS,aAAa,EAC1B,GAAG,SAAS,oBAAoB,CAAC,IAAI,CAAC,EAEtC,GAAG,EAAE,IAAI,EACT,YAAY,EAAE,GAAG,EACjB,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,GACxC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,CAkClC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Core ContractCall Abstraction
3
+ *
4
+ * Provides a generic, ABI-driven way to build contract calls with both
5
+ * compile-time type safety and runtime validation.
6
+ */
7
+ /**
8
+ * Build a type-safe ContractCall from an ABI definition.
9
+ *
10
+ * Compile-time:
11
+ * - `functionName` is constrained to the ABI's function name union
12
+ * - `params` is typed per the function's declared inputs
13
+ *
14
+ * Runtime:
15
+ * - Validates function exists in ABI
16
+ * - Validates all required params are present
17
+ * - Validates enum constraints on inputs that declare them
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { LOCKUP_PRIME_ABI } from './lockup-prime/abi'
22
+ *
23
+ * const call = buildContractCall(LOCKUP_PRIME_ABI, 'lock', {
24
+ * amount: '1000000000',
25
+ * tier: '30d'
26
+ * })
27
+ * // call.contract === 'LockupPrime'
28
+ * // call.method === 'lock'
29
+ * // call.args === ['1000000000', '30d']
30
+ * ```
31
+ */
32
+ export function buildContractCall(abi, functionName, params) {
33
+ const fn = abi.abi.find((f) => f.name === functionName);
34
+ if (!fn) {
35
+ throw new Error(`Function "${String(functionName)}" not found in ${abi.contractName} ABI`);
36
+ }
37
+ const args = [];
38
+ for (const input of fn.inputs) {
39
+ const value = params[input.name];
40
+ if (value === undefined || value === null) {
41
+ throw new Error(`Missing required parameter "${input.name}" for ${abi.contractName}.${String(functionName)}`);
42
+ }
43
+ if (input.enum && input.enum.length > 0) {
44
+ if (!input.enum.includes(value)) {
45
+ throw new Error(`Invalid value "${value}" for parameter "${input.name}". ` +
46
+ `Expected one of: ${input.enum.join(', ')}`);
47
+ }
48
+ }
49
+ args.push(value);
50
+ }
51
+ return {
52
+ contract: abi.contractName,
53
+ method: functionName,
54
+ args
55
+ };
56
+ }
57
+ //# sourceMappingURL=contract-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-call.js","sourceRoot":"","sources":["../../src/contracts/contract-call.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,iBAAiB,CAIhC,GAAS,EACT,YAAiB,EACjB,MAA0C;IAE1C,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;IACvD,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACd,aAAa,MAAM,CAAC,YAAY,CAAC,kBAAkB,GAAG,CAAC,YAAY,MAAM,CACzE,CAAA;IACF,CAAC;IAED,MAAM,IAAI,GAAwB,EAAE,CAAA;IACpC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAI,MAAiC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACd,+BAA+B,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAC5F,CAAA;QACF,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACd,kBAAkB,KAAK,oBAAoB,KAAK,CAAC,IAAI,KAAK;oBAC1D,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3C,CAAA;YACF,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IAED,OAAO;QACN,QAAQ,EAAE,GAAG,CAAC,YAAyC;QACvD,MAAM,EAAE,YAAsB;QAC9B,IAAI;KACJ,CAAA;AACF,CAAC"}