@tari-project/tarijs 0.1.20 → 0.1.22

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 (214) hide show
  1. package/dist/builders/helpers/index.d.ts +2 -0
  2. package/dist/builders/helpers/index.js +2 -0
  3. package/dist/builders/helpers/submitTransaction.d.ts +13 -0
  4. package/dist/builders/helpers/submitTransaction.js +59 -0
  5. package/dist/builders/helpers/workspace.d.ts +23 -0
  6. package/dist/builders/helpers/workspace.js +29 -0
  7. package/dist/builders/index.d.ts +3 -0
  8. package/dist/builders/index.js +3 -0
  9. package/dist/builders/transaction/TransactionBuilder.d.ts +44 -0
  10. package/dist/builders/transaction/TransactionBuilder.js +164 -0
  11. package/dist/builders/transaction/TransactionRequest.d.ts +27 -0
  12. package/dist/builders/transaction/TransactionRequest.js +67 -0
  13. package/dist/builders/transaction/index.d.ts +2 -0
  14. package/dist/builders/transaction/index.js +2 -0
  15. package/dist/builders/types/Amount.d.ts +23 -0
  16. package/dist/builders/types/Amount.js +93 -0
  17. package/dist/builders/types/Arg.d.ts +1 -0
  18. package/dist/builders/types/Arg.js +1 -0
  19. package/dist/builders/types/Builder.d.ts +47 -0
  20. package/dist/builders/types/Builder.js +1 -0
  21. package/dist/builders/types/ComponentAddress.js +1 -0
  22. package/dist/builders/types/ConfidentialClaim.d.ts +8 -0
  23. package/dist/builders/types/ConfidentialClaim.js +1 -0
  24. package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/ConfidentialOutput.d.ts +3 -3
  25. package/dist/builders/types/ConfidentialOutput.js +1 -0
  26. package/dist/builders/types/ConfidentialOutputStatement.d.ts +9 -0
  27. package/dist/builders/types/ConfidentialOutputStatement.js +1 -0
  28. package/dist/builders/types/ConfidentialStatement.d.ts +8 -0
  29. package/dist/builders/types/ConfidentialStatement.js +1 -0
  30. package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/ConfidentialWithdrawProof.d.ts +3 -3
  31. package/dist/builders/types/ConfidentialWithdrawProof.js +1 -0
  32. package/dist/builders/types/ElgamalVerifiableBalance.js +1 -0
  33. package/dist/builders/types/Epoch.js +1 -0
  34. package/dist/builders/types/FinalizeResult.d.ts +20 -0
  35. package/dist/builders/types/FinalizeResult.js +1 -0
  36. package/dist/builders/types/Instruction.d.ts +56 -0
  37. package/dist/builders/types/Instruction.js +1 -0
  38. package/dist/builders/types/ResourceAddress.js +2 -0
  39. package/dist/builders/types/SubstateDiff.d.ts +7 -0
  40. package/dist/builders/types/SubstateDiff.js +1 -0
  41. package/dist/builders/types/SubstateRequirement.d.ts +5 -0
  42. package/dist/builders/types/SubstateRequirement.js +1 -0
  43. package/dist/builders/types/TemplateAddress.d.ts +1 -0
  44. package/dist/builders/types/TemplateAddress.js +2 -0
  45. package/dist/builders/types/Transaction.d.ts +15 -0
  46. package/dist/builders/types/Transaction.js +1 -0
  47. package/dist/builders/types/TransactionId.d.ts +1 -0
  48. package/dist/builders/types/TransactionId.js +1 -0
  49. package/dist/builders/types/TransactionResult.d.ts +22 -0
  50. package/dist/builders/types/TransactionResult.js +10 -0
  51. package/dist/builders/types/TransactionSignature.js +1 -0
  52. package/dist/builders/types/UnsignedTransaction.d.ts +12 -0
  53. package/dist/builders/types/UnsignedTransaction.js +1 -0
  54. package/dist/builders/types/VersionedSubstateId.d.ts +5 -0
  55. package/dist/builders/types/VersionedSubstateId.js +1 -0
  56. package/dist/builders/types/ViewableBalanceProof.js +2 -0
  57. package/dist/builders/types/Workspace.d.ts +3 -0
  58. package/dist/builders/types/Workspace.js +1 -0
  59. package/dist/builders/types/index.d.ts +24 -0
  60. package/dist/builders/types/index.js +2 -0
  61. package/dist/{src/index.d.ts → index.d.ts} +5 -1
  62. package/dist/index.js +12 -1063
  63. package/dist/providers/index.js +1 -0
  64. package/dist/providers/metamask/index.js +169 -0
  65. package/dist/providers/metamask/utils.js +55 -0
  66. package/dist/providers/tari_universe/index.js +3 -0
  67. package/dist/providers/tari_universe/provider.js +88 -0
  68. package/dist/providers/tari_universe/types.js +1 -0
  69. package/dist/{src/providers → providers}/types.d.ts +2 -1
  70. package/dist/providers/types.js +10 -0
  71. package/dist/providers/wallet_daemon/index.js +3 -0
  72. package/dist/providers/wallet_daemon/provider.js +173 -0
  73. package/dist/providers/wallet_daemon/tari_permissions.js +282 -0
  74. package/dist/providers/wallet_daemon/webrtc.js +201 -0
  75. package/dist/providers/wallet_daemon/webrtc_transport.js +18 -0
  76. package/dist/providers/walletconnect/index.d.ts +23 -0
  77. package/dist/providers/walletconnect/index.js +217 -0
  78. package/dist/templates/Account.d.ts +65 -0
  79. package/dist/templates/Account.js +31 -0
  80. package/dist/templates/Pool.d.ts +30 -0
  81. package/dist/templates/Pool.js +20 -0
  82. package/dist/templates/Tariswap.d.ts +65 -0
  83. package/dist/templates/Tariswap.js +36 -0
  84. package/dist/templates/TemplateFactory.d.ts +9 -0
  85. package/dist/templates/TemplateFactory.js +18 -0
  86. package/dist/templates/TestFaucet.d.ts +49 -0
  87. package/dist/templates/TestFaucet.js +31 -0
  88. package/dist/templates/index.d.ts +4 -0
  89. package/dist/templates/index.js +4 -0
  90. package/dist/utils.js +22 -0
  91. package/package.json +14 -13
  92. package/dist/index.js.map +0 -1
  93. package/dist/node_modules/@tari-project/typescript-bindings/index.d.ts +0 -111
  94. package/dist/node_modules/@tari-project/typescript-bindings/src/helpers/helpers.d.ts +0 -11
  95. package/dist/node_modules/@tari-project/typescript-bindings/src/types/AccessRule.d.ts +0 -4
  96. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Account.d.ts +0 -7
  97. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Amount.d.ts +0 -1
  98. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Arg.d.ts +0 -5
  99. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ArgDef.d.ts +0 -5
  100. package/dist/node_modules/@tari-project/typescript-bindings/src/types/AuthHook.d.ts +0 -5
  101. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Block.d.ts +0 -31
  102. package/dist/node_modules/@tari-project/typescript-bindings/src/types/BucketId.d.ts +0 -1
  103. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Claims.d.ts +0 -7
  104. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Command.d.ts +0 -13
  105. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Committee.d.ts +0 -3
  106. package/dist/node_modules/@tari-project/typescript-bindings/src/types/CommitteeInfo.d.ts +0 -5
  107. package/dist/node_modules/@tari-project/typescript-bindings/src/types/CommitteeShardInfo.d.ts +0 -10
  108. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ComponentAccessRules.d.ts +0 -5
  109. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ComponentBody.d.ts +0 -3
  110. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ComponentHeader.d.ts +0 -13
  111. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ComponentKey.d.ts +0 -1
  112. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ConfidentialClaim.d.ts +0 -8
  113. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ConfidentialOutputStatement.d.ts +0 -9
  114. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ConfidentialStatement.d.ts +0 -8
  115. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ConfidentialTransferInputSelection.d.ts +0 -1
  116. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Decision.d.ts +0 -1
  117. package/dist/node_modules/@tari-project/typescript-bindings/src/types/EntityId.d.ts +0 -1
  118. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Event.d.ts +0 -9
  119. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Evidence.d.ts +0 -5
  120. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ExecuteResult.d.ts +0 -4
  121. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ExecutedTransaction.d.ts +0 -21
  122. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FeeBreakdown.d.ts +0 -5
  123. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FeeClaim.d.ts +0 -6
  124. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FeeClaimAddress.d.ts +0 -1
  125. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FeeCostBreakdown.d.ts +0 -6
  126. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FeeReceipt.d.ts +0 -7
  127. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FeeSource.d.ts +0 -1
  128. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FinalizeResult.d.ts +0 -13
  129. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ForeignProposal.d.ts +0 -10
  130. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ForeignProposalState.d.ts +0 -1
  131. package/dist/node_modules/@tari-project/typescript-bindings/src/types/FunctionDef.d.ts +0 -8
  132. package/dist/node_modules/@tari-project/typescript-bindings/src/types/IndexedValue.d.ts +0 -5
  133. package/dist/node_modules/@tari-project/typescript-bindings/src/types/IndexedWellKnownTypes.d.ts +0 -18
  134. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Instruction.d.ts +0 -40
  135. package/dist/node_modules/@tari-project/typescript-bindings/src/types/InstructionResult.d.ts +0 -6
  136. package/dist/node_modules/@tari-project/typescript-bindings/src/types/JrpcPermission.d.ts +0 -14
  137. package/dist/node_modules/@tari-project/typescript-bindings/src/types/JrpcPermissions.d.ts +0 -2
  138. package/dist/node_modules/@tari-project/typescript-bindings/src/types/LeaderFee.d.ts +0 -4
  139. package/dist/node_modules/@tari-project/typescript-bindings/src/types/LockFlag.d.ts +0 -1
  140. package/dist/node_modules/@tari-project/typescript-bindings/src/types/LogEntry.d.ts +0 -5
  141. package/dist/node_modules/@tari-project/typescript-bindings/src/types/LogLevel.d.ts +0 -1
  142. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Metadata.d.ts +0 -1
  143. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NetworkCommitteeInfo.d.ts +0 -6
  144. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NodeHeight.d.ts +0 -1
  145. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungible.d.ts +0 -4
  146. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungibleAddress.d.ts +0 -1
  147. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungibleAddressContents.d.ts +0 -6
  148. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungibleContainer.d.ts +0 -2
  149. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungibleId.d.ts +0 -9
  150. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungibleIndex.d.ts +0 -4
  151. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungibleIndexAddress.d.ts +0 -5
  152. package/dist/node_modules/@tari-project/typescript-bindings/src/types/NonFungibleToken.d.ts +0 -9
  153. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Ordering.d.ts +0 -1
  154. package/dist/node_modules/@tari-project/typescript-bindings/src/types/OwnerRule.d.ts +0 -6
  155. package/dist/node_modules/@tari-project/typescript-bindings/src/types/PeerAddress.d.ts +0 -1
  156. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ProofId.d.ts +0 -1
  157. package/dist/node_modules/@tari-project/typescript-bindings/src/types/QuorumCertificate.d.ts +0 -15
  158. package/dist/node_modules/@tari-project/typescript-bindings/src/types/QuorumDecision.d.ts +0 -1
  159. package/dist/node_modules/@tari-project/typescript-bindings/src/types/RejectReason.d.ts +0 -11
  160. package/dist/node_modules/@tari-project/typescript-bindings/src/types/RequireRule.d.ts +0 -8
  161. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Resource.d.ts +0 -16
  162. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ResourceAccessRules.d.ts +0 -9
  163. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ResourceContainer.d.ts +0 -25
  164. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ResourceType.d.ts +0 -1
  165. package/dist/node_modules/@tari-project/typescript-bindings/src/types/RestrictedAccessRule.d.ts +0 -8
  166. package/dist/node_modules/@tari-project/typescript-bindings/src/types/RuleRequirement.d.ts +0 -12
  167. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Shard.d.ts +0 -1
  168. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ShardEvidence.d.ts +0 -5
  169. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Substate.d.ts +0 -5
  170. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateAddress.d.ts +0 -1
  171. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateDestroyed.d.ts +0 -9
  172. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateDiff.d.ts +0 -6
  173. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateId.d.ts +0 -24
  174. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateLockFlag.d.ts +0 -1
  175. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateRecord.d.ts +0 -19
  176. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateRequirement.d.ts +0 -5
  177. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateType.d.ts +0 -1
  178. package/dist/node_modules/@tari-project/typescript-bindings/src/types/SubstateValue.d.ts +0 -25
  179. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TemplateDef.d.ts +0 -4
  180. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TemplateDefV1.d.ts +0 -6
  181. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Transaction.d.ts +0 -15
  182. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TransactionAtom.d.ts +0 -10
  183. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TransactionPoolRecord.d.ts +0 -16
  184. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TransactionPoolStage.d.ts +0 -1
  185. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TransactionReceipt.d.ts +0 -9
  186. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TransactionReceiptAddress.d.ts +0 -1
  187. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TransactionResult.d.ts +0 -9
  188. package/dist/node_modules/@tari-project/typescript-bindings/src/types/TransactionStatus.d.ts +0 -1
  189. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Type.d.ts +0 -9
  190. package/dist/node_modules/@tari-project/typescript-bindings/src/types/UnclaimedConfidentialOutput.d.ts +0 -4
  191. package/dist/node_modules/@tari-project/typescript-bindings/src/types/UnsignedTransaction.d.ts +0 -10
  192. package/dist/node_modules/@tari-project/typescript-bindings/src/types/ValidatorSignature.d.ts +0 -7
  193. package/dist/node_modules/@tari-project/typescript-bindings/src/types/Vault.d.ts +0 -4
  194. package/dist/node_modules/@tari-project/typescript-bindings/src/types/VaultId.d.ts +0 -1
  195. package/dist/node_modules/@tari-project/typescript-bindings/src/types/VersionedSubstateId.d.ts +0 -5
  196. package/dist/node_modules/@tari-project/typescript-bindings/src/types/VersionedSubstateIdLockIntent.d.ts +0 -6
  197. /package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/ComponentAddress.d.ts +0 -0
  198. /package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/ElgamalVerifiableBalance.d.ts +0 -0
  199. /package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/Epoch.d.ts +0 -0
  200. /package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/ResourceAddress.d.ts +0 -0
  201. /package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/TransactionSignature.d.ts +0 -0
  202. /package/dist/{node_modules/@tari-project/typescript-bindings/src → builders}/types/ViewableBalanceProof.d.ts +0 -0
  203. /package/dist/{src/providers → providers}/index.d.ts +0 -0
  204. /package/dist/{src/providers → providers}/metamask/index.d.ts +0 -0
  205. /package/dist/{src/providers → providers}/metamask/utils.d.ts +0 -0
  206. /package/dist/{src/providers → providers}/tari_universe/index.d.ts +0 -0
  207. /package/dist/{src/providers → providers}/tari_universe/provider.d.ts +0 -0
  208. /package/dist/{src/providers → providers}/tari_universe/types.d.ts +0 -0
  209. /package/dist/{src/providers → providers}/wallet_daemon/index.d.ts +0 -0
  210. /package/dist/{src/providers → providers}/wallet_daemon/provider.d.ts +0 -0
  211. /package/dist/{src/providers → providers}/wallet_daemon/tari_permissions.d.ts +0 -0
  212. /package/dist/{src/providers → providers}/wallet_daemon/webrtc.d.ts +0 -0
  213. /package/dist/{src/providers → providers}/wallet_daemon/webrtc_transport.d.ts +0 -0
  214. /package/dist/{src/utils.d.ts → utils.d.ts} +0 -0
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils.ts","../src/providers/types.ts","../src/providers/metamask/utils.ts","../src/providers/metamask/index.ts","../src/providers/wallet_daemon/webrtc.ts","../src/providers/wallet_daemon/tari_permissions.ts","../src/providers/wallet_daemon/webrtc_transport.ts","../src/providers/wallet_daemon/provider.ts","../src/providers/tari_universe/provider.ts"],"sourcesContent":["export function toHexString(byteArray: any): string {\n if (Array.isArray(byteArray)) {\n return Array.from(byteArray, function (byte) {\n return ('0' + (byte & 0xff).toString(16)).slice(-2);\n }).join('');\n }\n if (byteArray === undefined) {\n return 'undefined';\n }\n // object might be a tagged object\n if (byteArray['@@TAGGED@@'] !== undefined) {\n return toHexString(byteArray['@@TAGGED@@'][1]);\n }\n return 'Unsupported type';\n}\n\nexport function fromHexString(hexString: string) {\n let res = [];\n for (let i = 0; i < hexString.length; i += 2) {\n res.push(Number('0x' + hexString.substring(i, i + 2)));\n }\n return res;\n}","export type SubstateMetadata = {\n substate_id: string;\n module_name: string | null;\n version: number;\n template_address: string | null;\n}\n\nexport type SubstateRequirement = {\n substate_id: string;\n version?: number | null;\n};\n\nexport type SubmitTransactionRequest = {\n account_id: number;\n instructions: object[];\n fee_instructions: object[];\n inputs: object[];\n input_refs: object[];\n required_substates: SubstateRequirement[];\n is_dry_run: boolean;\n min_epoch: number | null;\n max_epoch: number | null;\n};\n\nexport type SubmitTransactionResponse = {\n transaction_id: string;\n};\n\nexport type TransactionResult = {\n transaction_id: string;\n status: TransactionStatus;\n result: object | null;\n};\n\nexport enum TransactionStatus {\n New,\n DryRun,\n Pending,\n Accepted,\n Rejected,\n InvalidTransaction,\n OnlyFeeAccepted,\n}\n\nexport interface Account {\n account_id: number;\n address: string;\n public_key: string;\n resources: VaultData[];\n}\n\nexport interface VaultData {\n type: string;\n balance: number;\n resource_address: string;\n}\n\nexport interface VaultBalances {\n balances: Map<string, number | null>;\n}\n\nexport interface TemplateDefinition {\n // TODO: Define this type\n [key: string]: any;\n}\n\nexport interface Substate {\n value: any;\n address: {\n substate_id: string;\n version: number;\n };\n}\n\nexport type ListSubstatesResponse = {\n substates: Array<SubstateMetadata>;\n};\n","import { MetaMaskInpageProvider } from '@metamask/providers';\n\n\nexport type GetSnapsResponse = Record<string, Snap>;\n\nexport type Snap = {\n permissionName: string;\n id: string;\n version: string;\n initialPermissions: Record<string, unknown>;\n};\n\n/**\n * Get the installed snaps in MetaMask.\n *\n * @param provider - The MetaMask inpage provider.\n * @returns The snaps installed in MetaMask.\n */\nexport const getSnaps = async (\n provider: MetaMaskInpageProvider,\n): Promise<GetSnapsResponse> =>\n (await provider.request({\n method: 'wallet_getSnaps',\n })) as unknown as GetSnapsResponse;\n\n\n/**\n * Connect a snap to MetaMask.\n *\n * @param snapId - The ID of the snap.\n * @param params - The params to pass with the snap to connect.\n */\nexport const connectSnap = async (\n provider: MetaMaskInpageProvider,\n snaps: Record<string, {version?: string}>,\n) => {\n await provider.request({\n method: 'wallet_requestSnaps',\n params: snaps,\n });\n};\n\n/**\n * Get the snap from MetaMask.\n *\n * @param version - The version of the snap to install (optional).\n * @returns The snap object returned by the extension.\n */\nexport const getSnap = async (\n provider: MetaMaskInpageProvider,\n snapId: string,\n version?: string\n): Promise<Snap | undefined> => {\n try {\n const snaps = await getSnaps(provider);\n\n return Object.values(snaps).find(\n (snap) =>\n snap.id === snapId && (!version || snap.version === version),\n );\n } catch (e) {\n console.log('Failed to obtain installed snap', e);\n return undefined;\n }\n};\n\nexport const isLocalSnap = (snapId: string) => snapId.startsWith('local:');\n\n/**\n * Detect if the wallet injecting the ethereum object is MetaMask Flask.\n *\n * @returns True if the MetaMask version is Flask, false otherwise.\n */\nexport const isFlask = async (provider: MetaMaskInpageProvider) => {\n try {\n const clientVersion = await provider.request({\n method: 'web3_clientVersion',\n });\n\n const isFlaskDetected = (clientVersion as string[])?.includes('flask');\n\n return Boolean(provider && isFlaskDetected);\n } catch {\n return false;\n }\n};","import {TariProvider} from \"../index\";\nimport {\n SubmitTransactionRequest,\n TransactionResult,\n TransactionStatus,\n SubmitTransactionResponse,\n VaultBalances, TemplateDefinition, Substate,\n ListSubstatesResponse,\n} from \"../types\";\nimport {MetaMaskInpageProvider} from '@metamask/providers';\nimport {connectSnap, getSnap, isFlask, Snap} from \"./utils\";\nimport {Maybe} from \"@metamask/providers/dist/utils\";\nimport {Account} from \"../types\";\nimport { SubstateType } from \"@tari-project/typescript-bindings\";\n\nexport const MetamaskNotInstalled = 'METAMASK_NOT_INSTALLED';\nexport const MetamaskIsNotFlask = 'METAMASK_IS_NOT_FLASK';\nexport const TariSnapNotInstalled = 'TARI_SNAP_NOT_INSTALLED';\n\nexport class MetamaskTariProvider implements TariProvider {\n public providerName = \"Metamask\";\n snapId: string;\n snapVersion: string | undefined;\n metamask: MetaMaskInpageProvider;\n snap?: Snap;\n metamaskConnected: boolean;\n\n constructor(snapId: string, metamask: MetaMaskInpageProvider) {\n this.snapId = snapId;\n this.snapVersion = undefined;\n this.metamask = metamask;\n this.metamaskConnected = false;\n }\n\n async connect(): Promise<void> {\n // check that the metamask provider is valid\n if (!this.metamask || !this.metamask.isMetaMask) {\n throw MetamaskNotInstalled;\n }\n\n // check that flask is installed\n if (!isFlask(this.metamask)) {\n throw MetamaskIsNotFlask;\n }\n\n // connect to the tari snap\n // this will request MetaMask the installation of the tari snap if it's not already installed\n await connectSnap(this.metamask, {[this.snapId]:{version: this.snapVersion}});\n\n // store the tari snap reference\n const snap = await getSnap(this.metamask, this.snapId);\n if (!snap) {\n // this should olny happen if the user didn't accept the tari snap in the previous step\n throw TariSnapNotInstalled;\n }\n this.snap = snap;\n this.metamaskConnected = true;\n }\n\n public isConnected(): boolean {\n return this.metamaskConnected;\n }\n\n public async createFreeTestCoins(account_id: number): Promise<Account> {\n const res = await this.metamaskRequest('getFreeTestCoins', {\n amount: 1000000,\n account_id,\n fee: 2000\n }) as any;\n return {\n account_id,\n address: res.address,\n public_key: res.public_key,\n resources: []\n };\n }\n\n async getAccount(): Promise<Account> {\n return await this.metamaskRequest('getAccountData', {account_id: 0}) as any;\n }\n\n async getSubstate(substate_address: string): Promise<Substate> {\n const {substate, address: substate_id, version} = await this.metamaskRequest<any>('getSubstate', { substate_address });\n return {value: substate, address: {substate_id, version}}\n }\n\n async listSubstates(filter_by_template: string | null, filter_by_type: SubstateType | null, limit: number | null, offset: number | null): Promise<ListSubstatesResponse> {\n const res = await this.metamaskRequest('listSubstates', {\n filter_by_template,\n filter_by_type,\n limit,\n offset,\n }) as any;\n\n return res;\n }\n\n async submitTransaction(req: SubmitTransactionRequest): Promise<SubmitTransactionResponse> {\n const params = {\n instructions: req.instructions,\n fee_instructions: req.fee_instructions,\n input_refs: req.input_refs,\n required_substates: req.required_substates || [],\n is_dry_run: req.is_dry_run,\n };\n\n const resp = await this.metamaskRequest<any>('sendTransaction', params);\n if (!resp) {\n throw new Error(\"Failed to submit transaction to metamask snap: empty response\");\n }\n if (resp.error) {\n throw new Error(`Failed to submit transaction to metamask snap: ${resp.error}`);\n }\n return { transaction_id: resp.transaction_id };\n }\n\n public async getTransactionResult(transactionId: string): Promise<TransactionResult> {\n // This request returns the response from the indexer get_transaction_result request\n const resp: Maybe<any> = await this.metamaskRequest('getTransactionResult', { transaction_id: transactionId });\n\n if (!resp) {\n throw new Error(\"Failed to get transaction result from metamask snap: empty response\");\n }\n\n if (resp.result === \"Pending\") {\n return {\n transaction_id: transactionId,\n status: TransactionStatus.Pending,\n result: null\n } as TransactionResult;\n }\n\n if (!resp?.result?.Finalized) {\n throw new Error(\"Transaction result was not pending nor finalized\");\n }\n\n const newStatus = convertToStatus(resp.result.Finalized);\n\n return {\n transaction_id: transactionId,\n status: newStatus,\n result: resp.result.Finalized.execution_result.finalize\n } as TransactionResult;\n }\n\n public async getPublicKey(_branch: string, index: number): Promise<string> {\n const resp: Maybe<any> = await this.metamaskRequest('getPublicKey', { index });\n\n if (!resp) {\n throw new Error(\"Failed to get public key from metamask snap: empty response\");\n }\n\n return resp.public_key;\n }\n\n public async getConfidentialVaultBalances(viewKeyId: number, vaultId: string, min: number | null = null, max: number | null = null): Promise<VaultBalances> {\n const res = await this.metamaskRequest('getConfidentialVaultBalances', {\n view_key_id: viewKeyId,\n vault_id: vaultId,\n minimum_expected_value: min,\n maximum_expected_value: max,\n }) as any;\n\n return {balances: res as unknown as Map<string, number | null>};\n }\n\n getTemplateDefinition(template_address: string): Promise<TemplateDefinition> {\n return this.metamaskRequest('getTemplateDefinition', { template_address })\n .then(resp => {\n if (!resp) {\n throw new Error(\"Template not found\");\n }\n\n return (resp as {definition: TemplateDefinition}).definition;\n });\n }\n\n\n private async metamaskRequest<T>(method: string, params: Object): Promise<T> {\n console.log(\"Metamask request:\", method, params);\n const resp = await this.metamask.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: this.snapId,\n request: {\n method,\n params\n }\n },\n });\n\n console.log(\"Metamask response:\", resp);\n\n if (!resp) {\n throw new Error(\"Metamask request failed: empty response\");\n }\n\n return resp as T;\n }\n}\n\nfunction convertToStatus(result: any): TransactionStatus {\n // Ref: https://github.com/tari-project/tari-dan/blob/bb0b31139b770aacd7bb49af865543aa4a9e2de4/dan_layer/wallet/sdk/src/apis/transaction.rs\n if (result.final_decision !== \"Commit\") {\n return TransactionStatus.Rejected;\n }\n\n // if (!result?.result?.Finalized) {\n // throw new Error(\"Transaction result was finalized but no result was returned\");\n // }\n //\n // if (result.finalize.AcceptFeeRejectRest) {\n // return TransactionStatus.OnlyFeeAccepted;\n // }\n\n return TransactionStatus.Accepted;\n}\n","import {TariPermissions} from \"./tari_permissions\";\nimport {transports} from \"@tari-project/wallet_jrpc_client\";\n\nclass SignaligServer {\n private _token?: string;\n private _server_url: string\n\n constructor(server_url: string | undefined) {\n console.log(server_url)\n if (server_url !== undefined) {\n this._server_url = server_url;\n } else {\n this._server_url = \"http://localhost:9100\";\n }\n }\n\n async initToken(permissions: TariPermissions) {\n this._token = await this.authLogin(permissions)\n }\n\n public get token() {\n return this._token;\n }\n\n private async jsonRpc(method: string, token?: string, params?: any) {\n console.log('jsonRpc', method, token, params);\n let id = 0;\n id += 1;\n let address = this._server_url;\n let headers: { [key: string]: string } = {'Content-Type': 'application/json'};\n if (token) {\n headers[\"Authorization\"] = `Bearer ${token}`;\n }\n let response = await fetch(address, {\n method: 'POST',\n body: JSON.stringify({\n method: method,\n jsonrpc: '2.0',\n id: id,\n params: params || {},\n }),\n headers: headers\n });\n let json = await response.json();\n if (json.error) {\n throw json.error;\n }\n return json.result;\n }\n\n private async authLogin(permissions: TariPermissions) {\n return await this.jsonRpc(\"auth.login\", undefined, permissions);\n }\n\n async storeIceCandidate(ice_candidate: RTCIceCandidate) {\n return await this.jsonRpc(\"add.offer_ice_candidate\", this._token, ice_candidate)\n }\n\n async storeOffer(offer: RTCSessionDescriptionInit) {\n return await this.jsonRpc(\"add.offer\", this._token, offer.sdp)\n }\n\n async getAnswer() {\n return await this.jsonRpc(\"get.answer\", this._token)\n }\n\n async getIceCandidates() {\n return await this.jsonRpc(\"get.answer_ice_candidates\", this._token)\n }\n}\n\nexport class TariConnection {\n private _peerConnection: RTCPeerConnection;\n private _dataChannel: RTCDataChannel;\n private _signalingServer: SignaligServer;\n private _callbacks: { [key: string]: any[] };\n private _offer?: RTCSessionDescriptionInit;\n private _walletToken: string | undefined;\n // This is public so that user can directly set the onopen callback that will be called once the data channel is open.\n public onopen: (() => void) | undefined;\n public onConnection: ((conn: TariConnection) => void) | undefined;\n\n constructor(signalig_server_url?: string, config?: RTCConfiguration) {\n this._peerConnection = new RTCPeerConnection(config || this.config());\n this._dataChannel = this._peerConnection.createDataChannel(\"tari-data\");\n this._signalingServer = new SignaligServer(signalig_server_url);\n this._callbacks = {};\n }\n\n public get token() {\n if (this._walletToken) {\n return this._walletToken;\n }\n return this._signalingServer.token;\n }\n\n async init(permissions: TariPermissions, onConnection: ((conn: TariConnection) => void) | undefined) {\n this.onConnection = onConnection;\n await this._signalingServer.initToken(permissions);\n // Setup our receiving end\n this._dataChannel.onmessage = (message) => {\n let response = JSON.parse(message.data)\n console.log('response', response)\n\n if (!this._callbacks[response.id]) {\n console.error(\"No callback found for id\", response.id);\n return;\n }\n // The response should contain id, to identify the Promise.resolve, that is waiting for this result\n let [resolve, reject] = this._callbacks[response.id];\n delete this._callbacks[response.id];\n if (response.payload?.error) {\n reject(new Error(response.payload.error));\n } else {\n resolve(response.payload);\n }\n };\n this._dataChannel.onopen = () => {\n // This should be removed before the release, but it's good for debugging.\n console.log(\"Data channel is open!\");\n\n this.sendMessage({id: 0, jsonrpc: \"2.0\", method: \"get.token\", params: {}}, this._signalingServer.token)\n .then((walletToken: unknown) => {\n if (typeof walletToken !== 'string') {\n throw Error('Received invalid JWT from wallet daemon');\n }\n\n console.log(\"Wallet JWT received: \", walletToken);\n this._walletToken = walletToken;\n\n if (this.onConnection) {\n this.onConnection(this);\n }\n });\n };\n this._peerConnection.onicecandidate = (event) => {\n console.log('event', event);\n if (event?.candidate) {\n console.log(\"ICE \", event.candidate)\n console.log(\"ICE \", typeof event.candidate)\n // Store the ice candidates, so the other end can add them\n this._signalingServer.storeIceCandidate(event.candidate).then((resp) => {\n // This should be removed before the release, but it's good for debugging.\n console.log(\"Candidate stored\", resp);\n })\n }\n };\n // Create offer\n this._offer = await this._peerConnection.createOffer();\n // Set the offer as our local sdp, at this point it will start getting the ice candidates\n this._peerConnection.setLocalDescription(this._offer);\n // Store the offer so the other end can set it as a remote sdp\n this._signalingServer.storeOffer(this._offer).then((resp) => {\n // This should be removed before the release, but it's good for debugging.\n console.log(\"Offer stored\", resp);\n });\n await this.signalingServerPolling();\n }\n\n private async setAnswer() {\n // This is called once the other end got the offer and ices and created and store an answer and its ice candidates\n // We get its answer sdp\n let sdp = await this._signalingServer.getAnswer();\n\n // And its ice candidates\n let iceCandidates = await this._signalingServer.getIceCandidates();\n\n // For us the answer is remote sdp\n let answer = new RTCSessionDescription({sdp, type: \"answer\"});\n this._peerConnection.setRemoteDescription(answer);\n\n // We add all the ice candidates to connect, the other end is doing the same with our ice candidates\n for (const iceCandidate of iceCandidates) {\n this._peerConnection.addIceCandidate(iceCandidate);\n }\n }\n\n private async signalingServerPolling() {\n // no need to keep retrying if we are already connected to the wallet\n if (this._peerConnection.connectionState === \"connected\") {\n return;\n }\n\n try {\n await this.setAnswer();\n } catch (error) {\n // we don't need to do anything on error, as the execution will be retried later\n console.error(error);\n }\n\n // try again later\n setTimeout(async () => {\n await this.signalingServerPolling()\n }, 2000);\n }\n\n public isConnected() {\n return this._dataChannel.readyState === \"open\"\n }\n\n // If the last parameter has timeout property e.g. {timeout:1000}, it set the timeout for this call.\n async sendMessage<T>(request: transports.RpcRequest, token: string | undefined, timeout_secs: number | null = null): Promise<T> {\n if (!this.isConnected) {\n throw new Error(\"WALLET_DAEMON_NOT_CONNECTED\");\n }\n\n // This should be removed before the release, but it's good for debugging.\n console.log(request, 'timeout', timeout_secs);\n return new Promise((resolve, reject) => {\n // We store the resolve callback for this request,\n // so once the data channel receives a response we know where to return the data\n this._callbacks[request.id] = [resolve, reject];\n if (timeout_secs) {\n // If the user set a timeout which set it here so the promise will be rejected if not fulfilled in time.\n setTimeout(() => {\n delete this._callbacks[request.id];\n reject(new Error(\"Timeout\"));\n }, timeout_secs * 1000)\n }\n // Make the actual call to the wallet daemon\n this._dataChannel.send(JSON.stringify({token, ...request}));\n });\n }\n\n // This is our default config, use can set their own stun/turn server in the constructor.\n private config() {\n return {iceServers: [{urls: \"stun:stun.l.google.com:19302\"}]};\n }\n}\n","export class Hash {\n private value: number[];\n constructor(value: number[]) {\n this.value = value;\n }\n toJSON() {\n return this.value;\n }\n}\n\nexport enum TAG {\n ComponentAddress = 128,\n Metadata = 129,\n NonFungibleAddress = 130,\n ResourceAddress = 131,\n VaultId = 132,\n TransactionReceipt = 134,\n FeeClaim = 135,\n}\n\nexport class Tagged {\n private value: any;\n private tag: number;\n constructor(tag: number, value: any) {\n this.tag = tag;\n this.value = value;\n }\n toJSON() {\n return { \"@@TAGGED@@\": [this.tag, this.value] }\n }\n}\n\n\nexport class ResourceAddress {\n private tagged: Tagged;\n constructor(hash: Hash) {\n this.tagged = new Tagged(TAG.ResourceAddress, hash);\n }\n toJSON() {\n return this.tagged.toJSON();\n }\n}\n\nexport class UnclaimedConfidentialOutputAddress {\n private hash: Hash;\n constructor(hash: Hash) {\n this.hash = hash;\n }\n toJSON() {\n return this.hash.toJSON();\n }\n}\n\nexport type u64 = number;\nexport type u32 = number;\nexport class U256 {\n private value: number[];\n constructor(value: number[]) {\n this.value = value;\n }\n toJSON() {\n return this.value;\n }\n}\n\nexport type NonFungibleIdType = u32 | u64 | string | U256;\n\nexport class NonFungibleId {\n private value: NonFungibleIdType;\n constructor(value: NonFungibleIdType) {\n this.value = value;\n }\n toJSON() {\n switch (typeof this.value) {\n case 'string':\n return { 'string': this.value };\n case 'number':\n return { 'Uint64': this.value };\n }\n return { 'U256': this.value };\n }\n}\n\nexport class NonFungibleAddressContents {\n private resource_address: ResourceAddress;\n private id: NonFungibleId;\n constructor(resource_address: ResourceAddress, id: NonFungibleId) {\n this.resource_address = resource_address;\n this.id = id;\n }\n toJSON() {\n return { \"resource_address\": this.resource_address, \"id\": this.id }\n }\n}\n\nexport class NonFungibleAddress {\n private tagged: Tagged;\n constructor(value: NonFungibleAddressContents) {\n this.tagged = new Tagged(TAG.NonFungibleAddress, value)\n }\n toJSON() {\n return this.tagged.toJSON();\n }\n}\n\nexport class NonFungibleIndexAddress {\n private resource_address: ResourceAddress;\n private index: number;\n constructor(resource_address: ResourceAddress, index: number) {\n this.resource_address = resource_address;\n this.index = index;\n }\n toJSON() {\n return { \"resource_address\": this.resource_address, \"index\": this.index }\n }\n}\n\nexport class ComponentAddress {\n private tagged: Tagged;\n constructor(hash: Hash) {\n this.tagged = new Tagged(TAG.ComponentAddress, hash);\n }\n toJSON() {\n return this.tagged.toJSON()\n }\n}\n\nexport class VaultId {\n private tagged: Tagged;\n constructor(hash: Hash) {\n this.tagged = new Tagged(TAG.VaultId, hash);\n }\n toJSON() {\n return this.tagged.toJSON()\n }\n}\n\nexport type SubstateAddressType = ResourceAddress | ComponentAddress | VaultId | UnclaimedConfidentialOutputAddress | NonFungibleAddress | NonFungibleIndexAddress;\n\n\nexport class SubstateAddress {\n private value: SubstateAddressType;\n constructor(value: SubstateAddressType) {\n this.value = value;\n }\n toJSON() {\n if (this.value instanceof ComponentAddress) {\n return { \"Component\": this.value }\n } else if (this.value instanceof ResourceAddress) {\n return { \"Resource\": this.value }\n } else if (this.value instanceof VaultId) {\n return { \"Vault\": this.value }\n } else if (this.value instanceof UnclaimedConfidentialOutputAddress) {\n return { \"UnclaimedConfidentialOutput\": this.value }\n } else if (this.value instanceof NonFungibleAddress) {\n return { \"NonFungible\": this.value }\n } else if (this.value instanceof NonFungibleIndexAddress) {\n return { \"NonFungibleIndex\": this.value }\n }\n throw \"Unknown type\"\n }\n}\n\nexport class TariPermissionAccountBalance {\n private value: SubstateAddress;\n constructor(value: SubstateAddress) {\n this.value = value;\n }\n toJSON() {\n console.log(\"stringify\", this.value)\n return { \"AccountBalance\": this.value }\n }\n}\n\nexport class TariPermissionAccountInfo {\n constructor() {}\n toJSON() {\n return \"AccountInfo\"\n }\n}\n\nexport class TariPermissionAccountList {\n private value?: ComponentAddress | null;\n constructor(value?: ComponentAddress) {\n if (value === undefined) {\n this.value = null;\n } else {\n this.value = value;\n }\n }\n toJSON() {\n console.log('JSON TariPermissionAccountList', this.value)\n if (this.value === undefined) {\n return { \"AccountList\": null }\n } else {\n return { \"AccountList\": this.value }\n }\n }\n}\n\nexport class TariPermissionKeyList {\n constructor() {}\n toJSON() {\n return \"KeyList\"\n }\n}\n\nexport class TariPermissionTransactionGet {\n constructor() {}\n toJSON() {\n return \"TransactionGet\"\n }\n}\nexport class TariPermissionTransactionSend {\n private value?: SubstateAddress;\n constructor(value?: SubstateAddress) {\n this.value = value;\n }\n toJSON() {\n console.log('JSON TariPermissionTransactionSend', this.value)\n if (this.value === undefined) {\n return { \"TransactionSend\": null }\n } else {\n return { \"TransactionSend\": this.value }\n }\n }\n}\n\nexport class TariPermissionGetNft {\n private value0?: SubstateAddress;\n private value1?: ResourceAddress;\n constructor(value0?: SubstateAddress, value1?: ResourceAddress) {\n this.value0 = value0;\n this.value1 = value1;\n }\n toJSON() {\n return { \"GetNft\": [this.value0, this.value1] }\n }\n}\n\nexport class TariPermissionNftGetOwnershipProof {\n private value?: ResourceAddress;\n constructor(value?: ResourceAddress) {\n this.value = value;\n }\n toJSON() {\n return { \"NftGetOwnershipProof\": this.value }\n }\n}\n\nexport class TariPermissionTransactionsGet {\n constructor() {}\n toJSON() {\n return \"TransactionGet\"\n }\n}\n\nexport class TariPermissionSubstatesRead {\n constructor() {}\n toJSON() {\n return \"SubstatesRead\"\n }\n}\n\nexport class TariPermissionTemplatesRead {\n constructor() {}\n toJSON() {\n return \"TemplatesRead\"\n }\n}\n\nexport type TariPermission = TariPermissionNftGetOwnershipProof | TariPermissionAccountBalance | TariPermissionAccountInfo | TariPermissionAccountList | TariPermissionKeyList | TariPermissionTransactionGet | TariPermissionTransactionSend | TariPermissionGetNft | TariPermissionTransactionsGet | TariPermissionSubstatesRead | TariPermissionTemplatesRead | string;\n\n// export enum TariPermission {\n// AccountBalance = \"AccountBalance\",\n// AccountInfo = \"AccountInfo\",\n// AccountList = \"AccountList\",\n// KeyList = \"KeyList\",\n// TransactionGet = \"TransactionGet\",\n// TransactionSend = \"TransactionSend\",\n// GetNft = \"GetNft\",\n// NftGetOwnershipProof = \"NftGetOwnershipProof\",\n// TransactionsGet = \"TransactionsGet\",\n// SubstatesRead = \"SubstatesRead\",\n// TemplatesRead = \"TemplatesRead\",\n// }\n\nexport class TariPermissions {\n private permissions: TariPermission[];\n\n constructor() {\n this.permissions = []\n }\n\n addPermission(permission: TariPermission): this {\n this.permissions.push(permission);\n return this;\n }\n\n addPermissions(other: TariPermissions): this {\n this.permissions.push(...other.permissions);\n return this;\n }\n\n toJSON() {\n return this.permissions;\n }\n}\n\n// TariPermissionType.prototype.toString = function () {\n// return \"wtf\"\n// }\n","import {transports} from \"@tari-project/wallet_jrpc_client\";\nimport {TariConnection} from \"./webrtc\";\n\nexport class WebRtcRpcTransport implements transports.RpcTransport {\n connection: TariConnection;\n\n constructor(connection: TariConnection) {\n this.connection = connection;\n }\n\n static new(connection: TariConnection) {\n return new WebRtcRpcTransport(connection);\n }\n\n token(): string | undefined {\n return this.connection.token;\n }\n\n isConnected(): boolean {\n return this.connection.isConnected();\n }\n\n sendRequest<T>(data: transports.RpcRequest, options: transports.RpcTransportOptions): Promise<T> {\n return this.connection.sendMessage<T>(data, options.token);\n }\n}\n\n","import {TariPermissions,} from \"./tari_permissions\";\nimport {TariConnection} from \"./webrtc\";\nimport {TariProvider} from '../index';\nimport {\n SubmitTransactionRequest,\n TransactionResult,\n TransactionStatus,\n SubmitTransactionResponse,\n VaultBalances, TemplateDefinition, Substate,\n ListSubstatesResponse,\n} from \"../types\";\nimport {Account} from \"../types\";\nimport {\n WalletDaemonClient,\n stringToSubstateId,\n substateIdToString,\n Instruction,\n TransactionSubmitRequest,\n SubstateType,\n SubstatesListRequest,\n KeyBranch,\n} from \"@tari-project/wallet_jrpc_client\";\nimport {WebRtcRpcTransport} from \"./webrtc_transport\";\n\nexport const WalletDaemonNotConnected = 'WALLET_DAEMON_NOT_CONNECTED';\nexport const Unsupported = 'UNSUPPORTED';\n\nexport type WalletDaemonParameters = {\n signalingServerUrl?: string,\n permissions: TariPermissions,\n optionalPermissions: TariPermissions,\n webRtcConfig?: RTCConfiguration,\n name?: string,\n onConnection?: () => void\n};\n\nexport class WalletDaemonTariProvider implements TariProvider {\n public providerName = \"WalletDaemon\";\n params: WalletDaemonParameters;\n client: WalletDaemonClient;\n\n private constructor(params: WalletDaemonParameters, connection: WalletDaemonClient) {\n this.params = params;\n this.client = connection;\n }\n\n static async build(params: WalletDaemonParameters): Promise<WalletDaemonTariProvider> {\n const allPermissions = new TariPermissions();\n allPermissions.addPermissions(params.permissions);\n allPermissions.addPermissions(params.optionalPermissions);\n console.log({allPermissions});\n let connection = new TariConnection(params.signalingServerUrl, params.webRtcConfig);\n const client = WalletDaemonClient.new(WebRtcRpcTransport.new(connection));\n await connection.init(allPermissions, (conn) => {\n params.onConnection?.();\n if (conn.token) {\n client.setToken(conn.token);\n }\n });\n return new WalletDaemonTariProvider(params, client);\n }\n\n public get token(): string | undefined {\n return (this.client.getTransport() as WebRtcRpcTransport).token();\n }\n\n public get tokenUrl(): string | undefined {\n if (!this.token) {\n return undefined;\n }\n\n const name = this.params.name && encodeURIComponent(this.params.name) || '';\n const token = this.token;\n const permissions = JSON.stringify(this.params.permissions);\n const optionalPermissions = JSON.stringify(this.params.optionalPermissions);\n\n return `tari://${name}/${token}/${permissions}/${optionalPermissions}`\n }\n\n public isConnected(): boolean {\n return (this.client.getTransport() as WebRtcRpcTransport).isConnected();\n }\n\n public async createFreeTestCoins(): Promise<Account> {\n const res = await this.client.createFreeTestCoins({\n account: {Name: \"template_web\"},\n amount: 1000000,\n max_fee: null,\n key_id: 0\n });\n return {\n account_id: res.account.key_index,\n address: (res.account.address as { Component: string }).Component,\n public_key: res.public_key,\n resources: []\n };\n }\n\n public async getAccount(): Promise<Account> {\n const {account, public_key} = await this.client.accountsGetDefault({}) as any;\n const {balances} = await this.client.accountsGetBalances({account: {ComponentAddress: account.address.Component }, refresh: false});\n\n return {\n account_id: account.key_index,\n address: account.address.Component,\n public_key,\n // TODO: should be vaults not resources\n resources: balances.map((b) => ({\n type: b.resource_type,\n resource_address: b.resource_address,\n balance: b.balance + b.confidential_balance,\n vault_id: ('Vault' in b.vault_address) ? b.vault_address.Vault : b.vault_address,\n token_symbol: b.token_symbol,\n }))\n };\n }\n\n public async getAccountBalances(componentAddress: string): Promise<unknown> {\n return await this.client.accountsGetBalances({account: {ComponentAddress: componentAddress}, refresh: true});\n }\n\n public async getSubstate(substate_id: string): Promise<Substate> {\n const substateId = stringToSubstateId(substate_id);\n const { value, record } = await this.client.substatesGet({ substate_id: substateId });\n return {\n value,\n address: {\n substate_id: substateIdToString(record.substate_id),\n version: record.version\n }\n };\n }\n\n public async submitTransaction(req: SubmitTransactionRequest): Promise<SubmitTransactionResponse> {\n const params = {\n transaction: null,\n signing_key_index: req.account_id,\n fee_instructions: req.fee_instructions as Instruction[],\n instructions: req.instructions as Instruction[],\n inputs: req.required_substates.map((s) => ({\n // TODO: Hmm The bindings want a SubstateId object, but the wallet only wants a string. Any is used to skip type checking here\n substate_id: s.substate_id as any,\n version: s.version\n })),\n input_refs: [],\n override_inputs: false,\n is_dry_run: req.is_dry_run,\n proof_ids: [],\n min_epoch: null,\n max_epoch: null,\n } as TransactionSubmitRequest;\n const res = await this.client.submitTransaction(params);\n\n return {transaction_id: res.transaction_id};\n }\n\n public async getTransactionResult(transactionId: string): Promise<TransactionResult> {\n const res = await this.client.getTransactionResult({transaction_id: transactionId});\n\n return {\n transaction_id: transactionId,\n status: convertStringToTransactionStatus(res.status),\n result: res.result,\n };\n }\n\n public async getPublicKey(branch: string, index: number): Promise<string> {\n const res = await this.client.createKey({branch: branch as KeyBranch, specific_index: index});\n return res.public_key;\n }\n\n public async getTemplateDefinition(template_address: string): Promise<TemplateDefinition> {\n let resp = await this.client.templatesGet({template_address});\n return resp.template_definition as TemplateDefinition;\n }\n\n public async getConfidentialVaultBalances(viewKeyId: number, vaultId: string, min: number | null = null, max: number | null = null): Promise<VaultBalances> {\n const res = await this.client.viewVaultBalance({\n view_key_id: viewKeyId,\n vault_id: vaultId,\n minimum_expected_value: min,\n maximum_expected_value: max,\n });\n return {balances: res.balances as unknown as Map<string, number | null>};\n }\n\n public async listSubstates(filter_by_template: string | null, filter_by_type: SubstateType | null, limit: number | null, offset: number | null): Promise<ListSubstatesResponse>\n {\n const resp = await this.client.substatesList({\n filter_by_template,\n filter_by_type,\n limit,\n offset\n } as SubstatesListRequest);\n\n const substates = resp.substates.map((s) => ({\n substate_id: substateIdToString(s.substate_id),\n module_name: s.module_name,\n version: s.version,\n template_address: s.template_address\n }));\n\n return {substates};\n }\n}\n\nfunction convertStringToTransactionStatus(status: string): TransactionStatus {\n switch (status) {\n case \"New\":\n return TransactionStatus.New;\n case \"DryRun\":\n return TransactionStatus.DryRun;\n case \"Pending\":\n return TransactionStatus.Pending;\n case \"Accepted\":\n return TransactionStatus.Accepted;\n case \"Rejected\":\n return TransactionStatus.Rejected;\n case \"InvalidTransaction\":\n return TransactionStatus.InvalidTransaction;\n case \"OnlyFeeAccepted\":\n return TransactionStatus.OnlyFeeAccepted;\n default:\n throw new Error(`Unknown status: ${status}`);\n }\n}","import {\n SubmitTransactionRequest,\n TransactionResult,\n SubmitTransactionResponse,\n Account,\n Substate,\n TemplateDefinition,\n VaultBalances,\n ListSubstatesResponse,\n} from \"../types\";\nimport {\n ProviderRequest,\n ProviderMethodNames,\n ProviderReturnType,\n ProviderResponse,\n TariUniverseProviderParameters,\n WindowSize,\n} from \"./types\";\nimport { TariProvider } from \"../index\";\nimport { AccountsGetBalancesResponse, SubstateType } from \"@tari-project/wallet_jrpc_client\";\n\nexport class TariUniverseProvider implements TariProvider {\n public providerName = \"TariUniverse\";\n private __id = 0;\n\n public constructor(public params: TariUniverseProviderParameters) {\n const filterResizeEvent = function (event: MessageEvent) {\n if (event.data && event.data.type === \"resize\") {\n const resizeEvent = new CustomEvent(\"resize\", {\n detail: { width: event.data.width, height: event.data.height },\n });\n window.dispatchEvent(resizeEvent);\n }\n };\n window.addEventListener(\"message\", (event) => filterResizeEvent(event), false);\n }\n\n private async sendRequest<MethodName extends ProviderMethodNames>(\n req: Omit<ProviderRequest<MethodName>, \"id\">,\n ): Promise<ProviderReturnType<MethodName>> {\n const id = ++this.__id;\n return new Promise<ProviderReturnType<MethodName>>(function (resolve, reject) {\n const event_ref = function (resp: MessageEvent<ProviderResponse<MethodName>>) {\n if (resp.data.resultError) {\n window.removeEventListener(\"message\", event_ref);\n reject(resp.data.resultError);\n }\n if (resp && resp.data && resp.data.id && resp.data.id == id && resp.data.type === \"provider-call\") {\n window.removeEventListener(\"message\", event_ref);\n resolve(resp.data.result);\n }\n };\n window.addEventListener(\"message\", event_ref, false);\n\n window.parent.postMessage({ ...req, id, type: \"provider-call\" }, \"*\");\n });\n }\n\n public isConnected(): boolean {\n return true;\n }\n\n public getPublicKey(): Promise<string> {\n return this.sendRequest<\"getPublicKey\">({ methodName: \"getPublicKey\", args: [] });\n }\n\n public async listSubstates(\n filter_by_template: string | null,\n filter_by_type: SubstateType | null,\n limit: number | null,\n offset: number | null,\n ): Promise<ListSubstatesResponse> {\n return this.sendRequest<\"listSubstates\">({\n methodName: \"listSubstates\",\n args: [filter_by_template, filter_by_type, limit, offset],\n });\n }\n\n public getConfidentialVaultBalances(\n viewKeyId: number,\n vaultId: string,\n min: number | null,\n max: number | null,\n ): Promise<VaultBalances> {\n return this.sendRequest({\n methodName: \"getConfidentialVaultBalances\",\n args: [viewKeyId, vaultId, min, max],\n });\n }\n\n public async createFreeTestCoins(): Promise<void> {\n return this.sendRequest({ methodName: \"createFreeTestCoins\", args: [] });\n }\n\n public requestParentSize(): Promise<WindowSize> {\n return this.sendRequest({ methodName: \"requestParentSize\", args: [] });\n }\n\n public async getAccount(): Promise<Account> {\n return this.sendRequest({ methodName: \"getAccount\", args: [] });\n }\n\n public async getAccountBalances(componentAddress: string): Promise<AccountsGetBalancesResponse> {\n return this.sendRequest({\n methodName: \"getAccountBalances\",\n args: [componentAddress],\n });\n }\n\n public async getSubstate(substate_id: string): Promise<Substate> {\n return this.sendRequest({\n methodName: \"getSubstate\",\n args: [substate_id],\n });\n }\n\n public async submitTransaction(req: SubmitTransactionRequest): Promise<SubmitTransactionResponse> {\n return this.sendRequest({\n methodName: \"submitTransaction\",\n args: [req],\n });\n }\n\n public async getTransactionResult(transactionId: string): Promise<TransactionResult> {\n return this.sendRequest({\n methodName: \"getTransactionResult\",\n args: [transactionId],\n });\n }\n\n public async getTemplateDefinition(template_address: string): Promise<TemplateDefinition> {\n return this.sendRequest({ methodName: \"getTemplateDefinition\", args: [template_address] });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,111 +0,0 @@
1
- export * from "./src/types/AccessRule";
2
- export * from "./src/types/Account";
3
- export * from "./src/types/Amount";
4
- export * from "./src/types/Arg";
5
- export * from "./src/types/ArgDef";
6
- export * from "./src/types/AuthHook";
7
- export * from "./src/types/Block";
8
- export * from "./src/types/BucketId";
9
- export * from "./src/types/Claims";
10
- export * from "./src/types/Command";
11
- export * from "./src/types/Committee";
12
- export * from "./src/types/CommitteeInfo";
13
- export * from "./src/types/CommitteeShardInfo";
14
- export * from "./src/types/ComponentAccessRules";
15
- export * from "./src/types/ComponentAddress";
16
- export * from "./src/types/ComponentBody";
17
- export * from "./src/types/ComponentHeader";
18
- export * from "./src/types/ComponentKey";
19
- export * from "./src/types/ConfidentialClaim";
20
- export * from "./src/types/ConfidentialOutput";
21
- export * from "./src/types/ConfidentialOutputStatement";
22
- export * from "./src/types/ConfidentialStatement";
23
- export * from "./src/types/ConfidentialTransferInputSelection";
24
- export * from "./src/types/ConfidentialWithdrawProof";
25
- export * from "./src/types/Decision";
26
- export * from "./src/types/ElgamalVerifiableBalance";
27
- export * from "./src/types/EntityId";
28
- export * from "./src/types/Epoch";
29
- export * from "./src/types/Event";
30
- export * from "./src/types/Evidence";
31
- export * from "./src/types/ExecuteResult";
32
- export * from "./src/types/ExecutedTransaction";
33
- export * from "./src/types/FeeBreakdown";
34
- export * from "./src/types/FeeClaim";
35
- export * from "./src/types/FeeClaimAddress";
36
- export * from "./src/types/FeeCostBreakdown";
37
- export * from "./src/types/FeeReceipt";
38
- export * from "./src/types/FeeSource";
39
- export * from "./src/types/FinalizeResult";
40
- export * from "./src/types/ForeignProposal";
41
- export * from "./src/types/ForeignProposalState";
42
- export * from "./src/types/FunctionDef";
43
- export * from "./src/types/IndexedValue";
44
- export * from "./src/types/IndexedWellKnownTypes";
45
- export * from "./src/types/Instruction";
46
- export * from "./src/types/InstructionResult";
47
- export * from "./src/types/JrpcPermission";
48
- export * from "./src/types/JrpcPermissions";
49
- export * from "./src/types/LeaderFee";
50
- export * from "./src/types/LockFlag";
51
- export * from "./src/types/LogEntry";
52
- export * from "./src/types/LogLevel";
53
- export * from "./src/types/Metadata";
54
- export * from "./src/types/NetworkCommitteeInfo";
55
- export * from "./src/types/NodeHeight";
56
- export * from "./src/types/NonFungible";
57
- export * from "./src/types/NonFungibleAddress";
58
- export * from "./src/types/NonFungibleAddressContents";
59
- export * from "./src/types/NonFungibleContainer";
60
- export * from "./src/types/NonFungibleId";
61
- export * from "./src/types/NonFungibleIndex";
62
- export * from "./src/types/NonFungibleIndexAddress";
63
- export * from "./src/types/NonFungibleToken";
64
- export * from "./src/types/Ordering";
65
- export * from "./src/types/OwnerRule";
66
- export * from "./src/types/PeerAddress";
67
- export * from "./src/types/ProofId";
68
- export * from "./src/types/QuorumCertificate";
69
- export * from "./src/types/QuorumDecision";
70
- export * from "./src/types/RejectReason";
71
- export * from "./src/types/RequireRule";
72
- export * from "./src/types/Resource";
73
- export * from "./src/types/ResourceAccessRules";
74
- export * from "./src/types/ResourceAddress";
75
- export * from "./src/types/ResourceContainer";
76
- export * from "./src/types/ResourceType";
77
- export * from "./src/types/RestrictedAccessRule";
78
- export * from "./src/types/RuleRequirement";
79
- export * from "./src/types/Shard";
80
- export * from "./src/types/ShardEvidence";
81
- export * from "./src/types/Substate";
82
- export * from "./src/types/SubstateAddress";
83
- export * from "./src/types/SubstateDestroyed";
84
- export * from "./src/types/SubstateDiff";
85
- export * from "./src/types/SubstateId";
86
- export * from "./src/types/SubstateLockFlag";
87
- export * from "./src/types/SubstateRecord";
88
- export * from "./src/types/SubstateRequirement";
89
- export * from "./src/types/SubstateType";
90
- export * from "./src/types/SubstateValue";
91
- export * from "./src/types/TemplateDef";
92
- export * from "./src/types/TemplateDefV1";
93
- export * from "./src/types/Transaction";
94
- export * from "./src/types/TransactionAtom";
95
- export * from "./src/types/TransactionPoolRecord";
96
- export * from "./src/types/TransactionPoolStage";
97
- export * from "./src/types/TransactionReceipt";
98
- export * from "./src/types/TransactionReceiptAddress";
99
- export * from "./src/types/TransactionResult";
100
- export * from "./src/types/TransactionSignature";
101
- export * from "./src/types/TransactionStatus";
102
- export * from "./src/types/Type";
103
- export * from "./src/types/UnclaimedConfidentialOutput";
104
- export * from "./src/types/UnsignedTransaction";
105
- export * from "./src/types/ValidatorSignature";
106
- export * from "./src/types/Vault";
107
- export * from "./src/types/VaultId";
108
- export * from "./src/types/VersionedSubstateId";
109
- export * from "./src/types/VersionedSubstateIdLockIntent";
110
- export * from "./src/types/ViewableBalanceProof";
111
- export * from "./src/helpers/helpers";
@@ -1,11 +0,0 @@
1
- import { JrpcPermission } from "../types/JrpcPermission";
2
- import { RejectReason } from "../types/RejectReason";
3
- import { SubstateDiff } from "../types/SubstateDiff";
4
- import { SubstateId } from "../types/SubstateId";
5
- import { TransactionResult } from "../types/TransactionResult";
6
- export declare function substateIdToString(substateId: SubstateId | null): string;
7
- export declare function stringToSubstateId(substateId: string): SubstateId;
8
- export declare function rejectReasonToString(reason: RejectReason | null): string;
9
- export declare function getSubstateDiffFromTransactionResult(result: TransactionResult): SubstateDiff | null;
10
- export declare function getRejectReasonFromTransactionResult(result: TransactionResult): RejectReason | null;
11
- export declare function jrpcPermissionToString(jrpcPermission: JrpcPermission): string;
@@ -1,4 +0,0 @@
1
- import type { RestrictedAccessRule } from "./RestrictedAccessRule";
2
- export type AccessRule = "AllowAll" | "DenyAll" | {
3
- Restricted: RestrictedAccessRule;
4
- };
@@ -1,7 +0,0 @@
1
- import type { SubstateId } from "./SubstateId";
2
- export interface Account {
3
- name: string | null;
4
- address: SubstateId;
5
- key_index: number;
6
- is_default: boolean;
7
- }
@@ -1 +0,0 @@
1
- export type Amount = number;
@@ -1,5 +0,0 @@
1
- export type Arg = {
2
- Workspace: Array<number>;
3
- } | {
4
- Literal: Array<number>;
5
- };
@@ -1,5 +0,0 @@
1
- import type { Type } from "./Type";
2
- export interface ArgDef {
3
- name: string;
4
- arg_type: Type;
5
- }
@@ -1,5 +0,0 @@
1
- import type { ComponentAddress } from "./ComponentAddress";
2
- export interface AuthHook {
3
- component_address: ComponentAddress;
4
- method: string;
5
- }
@@ -1,31 +0,0 @@
1
- import type { Command } from "./Command";
2
- import type { Epoch } from "./Epoch";
3
- import type { NodeHeight } from "./NodeHeight";
4
- import type { QuorumCertificate } from "./QuorumCertificate";
5
- import type { Shard } from "./Shard";
6
- export interface Block {
7
- id: string;
8
- network: string;
9
- parent: string;
10
- justify: QuorumCertificate;
11
- height: NodeHeight;
12
- epoch: Epoch;
13
- shard: Shard;
14
- proposed_by: string;
15
- total_leader_fee: number;
16
- merkle_root: string;
17
- commands: Array<Command>;
18
- is_dummy: boolean;
19
- is_processed: boolean;
20
- is_committed: boolean;
21
- foreign_indexes: Record<Shard, bigint>;
22
- stored_at: Array<number> | null;
23
- signature: {
24
- public_nonce: string;
25
- signature: string;
26
- } | null;
27
- block_time: number | null;
28
- timestamp: number;
29
- base_layer_block_height: number;
30
- base_layer_block_hash: string;
31
- }
@@ -1 +0,0 @@
1
- export type BucketId = number;
@@ -1,7 +0,0 @@
1
- import type { JrpcPermissions } from "./JrpcPermissions";
2
- export interface Claims {
3
- id: number;
4
- name: string;
5
- permissions: JrpcPermissions;
6
- exp: number;
7
- }
@@ -1,13 +0,0 @@
1
- import type { ForeignProposal } from "./ForeignProposal";
2
- import type { TransactionAtom } from "./TransactionAtom";
3
- export type Command = {
4
- Prepare: TransactionAtom;
5
- } | {
6
- LocalPrepared: TransactionAtom;
7
- } | {
8
- Accept: TransactionAtom;
9
- } | {
10
- ForeignProposal: ForeignProposal;
11
- } | {
12
- LocalOnly: TransactionAtom;
13
- } | "EndEpoch";
@@ -1,3 +0,0 @@
1
- export interface Committee<TAddr> {
2
- members: Array<[TAddr, string]>;
3
- }
@@ -1,5 +0,0 @@
1
- export interface CommitteeInfo {
2
- num_committees: number;
3
- num_members: number;
4
- shard: number;
5
- }
@@ -1,10 +0,0 @@
1
- import type { Committee } from "./Committee";
2
- import type { SubstateAddress } from "./SubstateAddress";
3
- export interface CommitteeShardInfo<TAddr> {
4
- shard: number;
5
- substate_address_range: {
6
- start: SubstateAddress;
7
- end: SubstateAddress;
8
- };
9
- validators: Committee<TAddr>;
10
- }
@@ -1,5 +0,0 @@
1
- import type { AccessRule } from "./AccessRule";
2
- export interface ComponentAccessRules {
3
- method_access: Record<string, AccessRule>;
4
- default: AccessRule;
5
- }
@@ -1,3 +0,0 @@
1
- export interface ComponentBody {
2
- state: any;
3
- }
@@ -1,13 +0,0 @@
1
- import type { ComponentAccessRules } from "./ComponentAccessRules";
2
- import type { ComponentBody } from "./ComponentBody";
3
- import type { EntityId } from "./EntityId";
4
- import type { OwnerRule } from "./OwnerRule";
5
- export interface ComponentHeader {
6
- template_address: Uint8Array;
7
- module_name: string;
8
- owner_key: string | null;
9
- owner_rule: OwnerRule;
10
- access_rules: ComponentAccessRules;
11
- entity_id: EntityId;
12
- body: ComponentBody;
13
- }
@@ -1 +0,0 @@
1
- export type ComponentKey = Array<number>;
@@ -1,8 +0,0 @@
1
- import type { ConfidentialWithdrawProof } from "./ConfidentialWithdrawProof";
2
- export interface ConfidentialClaim {
3
- public_key: string;
4
- output_address: string;
5
- range_proof: Array<number>;
6
- proof_of_knowledge: string;
7
- withdraw_proof: ConfidentialWithdrawProof | null;
8
- }
@@ -1,9 +0,0 @@
1
- import type { Amount } from "./Amount";
2
- import type { ConfidentialStatement } from "./ConfidentialStatement";
3
- export interface ConfidentialOutputStatement {
4
- output_statement: ConfidentialStatement | null;
5
- change_statement: ConfidentialStatement | null;
6
- range_proof: Array<number>;
7
- output_revealed_amount: Amount;
8
- change_revealed_amount: Amount;
9
- }
@@ -1,8 +0,0 @@
1
- import type { ViewableBalanceProof } from "./ViewableBalanceProof";
2
- export interface ConfidentialStatement {
3
- commitment: Array<number>;
4
- sender_public_nonce: Array<number>;
5
- encrypted_data: Array<number>;
6
- minimum_value_promise: number;
7
- viewable_balance_proof: ViewableBalanceProof | null;
8
- }
@@ -1 +0,0 @@
1
- export type ConfidentialTransferInputSelection = "ConfidentialOnly" | "RevealedOnly" | "PreferRevealed" | "PreferConfidential";
@@ -1 +0,0 @@
1
- export type Decision = "Commit" | "Abort";
@@ -1 +0,0 @@
1
- export type EntityId = Array<number>;
@@ -1,9 +0,0 @@
1
- import type { Metadata } from "./Metadata";
2
- import type { SubstateId } from "./SubstateId";
3
- export interface Event {
4
- substate_id: SubstateId | null;
5
- template_address: string;
6
- tx_hash: string;
7
- topic: string;
8
- payload: Metadata;
9
- }
@@ -1,5 +0,0 @@
1
- import type { ShardEvidence } from "./ShardEvidence";
2
- import type { SubstateAddress } from "./SubstateAddress";
3
- export interface Evidence {
4
- evidence: Record<SubstateAddress, ShardEvidence>;
5
- }
@@ -1,4 +0,0 @@
1
- import type { FinalizeResult } from "./FinalizeResult";
2
- export interface ExecuteResult {
3
- finalize: FinalizeResult;
4
- }
@@ -1,21 +0,0 @@
1
- import type { Decision } from "./Decision";
2
- import type { ExecuteResult } from "./ExecuteResult";
3
- import type { Transaction } from "./Transaction";
4
- import type { VersionedSubstateId } from "./VersionedSubstateId";
5
- import type { VersionedSubstateIdLockIntent } from "./VersionedSubstateIdLockIntent";
6
- export interface ExecutedTransaction {
7
- transaction: Transaction;
8
- result: ExecuteResult;
9
- resulting_outputs: Array<VersionedSubstateId>;
10
- resolved_inputs: Array<VersionedSubstateIdLockIntent>;
11
- execution_time: {
12
- secs: number;
13
- nanos: number;
14
- };
15
- final_decision: Decision | null;
16
- finalized_time: {
17
- secs: number;
18
- nanos: number;
19
- } | null;
20
- abort_details: string | null;
21
- }
@@ -1,5 +0,0 @@
1
- import type { FeeSource } from "./FeeSource";
2
- export interface FeeBreakdown {
3
- source: FeeSource;
4
- amount: number;
5
- }
@@ -1,6 +0,0 @@
1
- import type { Amount } from "./Amount";
2
- export interface FeeClaim {
3
- epoch: number;
4
- validator_public_key: string;
5
- amount: Amount;
6
- }
@@ -1 +0,0 @@
1
- export type FeeClaimAddress = string;
@@ -1,6 +0,0 @@
1
- import type { Amount } from "./Amount";
2
- import type { FeeBreakdown } from "./FeeBreakdown";
3
- export interface FeeCostBreakdown {
4
- total_fees_charged: Amount;
5
- breakdown: Array<FeeBreakdown>;
6
- }
@@ -1,7 +0,0 @@
1
- import type { Amount } from "./Amount";
2
- import type { FeeBreakdown } from "./FeeBreakdown";
3
- export interface FeeReceipt {
4
- total_fee_payment: Amount;
5
- total_fees_paid: Amount;
6
- cost_breakdown: Array<FeeBreakdown>;
7
- }
@@ -1 +0,0 @@
1
- export type FeeSource = "Initial" | "RuntimeCall" | "Storage" | "Events" | "Logs";
@@ -1,13 +0,0 @@
1
- import type { Event } from "./Event";
2
- import type { FeeReceipt } from "./FeeReceipt";
3
- import type { InstructionResult } from "./InstructionResult";
4
- import type { LogEntry } from "./LogEntry";
5
- import type { TransactionResult } from "./TransactionResult";
6
- export interface FinalizeResult {
7
- transaction_hash: Uint8Array;
8
- events: Array<Event>;
9
- logs: Array<LogEntry>;
10
- execution_results: Array<InstructionResult>;
11
- result: TransactionResult;
12
- fee_receipt: FeeReceipt;
13
- }
@@ -1,10 +0,0 @@
1
- import type { ForeignProposalState } from "./ForeignProposalState";
2
- import type { NodeHeight } from "./NodeHeight";
3
- export interface ForeignProposal {
4
- shard: number;
5
- block_id: string;
6
- state: ForeignProposalState;
7
- proposed_height: NodeHeight | null;
8
- transactions: Array<string>;
9
- base_layer_block_height: number;
10
- }
@@ -1 +0,0 @@
1
- export type ForeignProposalState = "New" | "Proposed" | "Deleted";