@temple-digital-group/temple-canton-js 2.0.2 → 2.0.3-beta.1

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 (38) hide show
  1. package/README.md +457 -457
  2. package/index.js +15 -15
  3. package/package.json +50 -49
  4. package/src/api/config.d.ts +20 -20
  5. package/src/api/index.ts +322 -322
  6. package/src/api/tokenStore.ts +30 -30
  7. package/src/api/types.ts +196 -196
  8. package/src/auth0/index.d.ts +1 -1
  9. package/src/auth0/index.js +50 -50
  10. package/src/canton/deposits.ts +563 -563
  11. package/src/canton/helpers.ts +266 -266
  12. package/src/canton/index.d.ts +41 -41
  13. package/src/canton/index.js +3301 -3472
  14. package/src/canton/instrumentCatalog.d.ts +7 -7
  15. package/src/canton/instrumentCatalog.js +283 -283
  16. package/src/canton/request_schemas/cancel_orders_amulet.json +77 -77
  17. package/src/canton/request_schemas/cancel_orders_utility.json +68 -68
  18. package/src/canton/request_schemas/create_order_proposal_amulet.json +94 -94
  19. package/src/canton/request_schemas/create_order_proposal_utility.json +121 -121
  20. package/src/canton/request_schemas/create_utility_credential.json +31 -31
  21. package/src/canton/request_schemas/execute_transfer_factory.json +43 -43
  22. package/src/canton/request_schemas/get_allocation_factory.json +21 -21
  23. package/src/canton/request_schemas/get_amulet_holdings.json +21 -21
  24. package/src/canton/request_schemas/get_instrument_configurations.json +21 -21
  25. package/src/canton/request_schemas/get_locked_amulet_holdings.json +21 -21
  26. package/src/canton/request_schemas/get_order_proposals.json +21 -21
  27. package/src/canton/request_schemas/get_orders.json +21 -21
  28. package/src/canton/request_schemas/get_sender_credentials.json +22 -22
  29. package/src/canton/request_schemas/get_transfer_factory.json +28 -28
  30. package/src/canton/request_schemas/get_utility_holdings.json +21 -21
  31. package/src/canton/request_schemas/unlock_amulet.json +38 -38
  32. package/src/canton/walletAdapter.d.ts +7 -7
  33. package/src/canton/walletAdapter.js +112 -112
  34. package/src/canton/withdrawals.ts +511 -511
  35. package/src/config/index.d.ts +63 -63
  36. package/src/config/index.js +188 -188
  37. package/src/websocket/index.ts +341 -341
  38. package/src/websocket/ws.d.ts +24 -24
@@ -1,283 +1,283 @@
1
- // Instrument kinds
2
- export const InstrumentKindUtility = "utility";
3
- export const InstrumentKindAmulet = "amulet";
4
- export const RegistrarInternalScheme = "RegistrarInternalScheme";
5
-
6
- // Hardcoded instrument definitions (like Go's supportedInstrumentCatalog)
7
- // operator/provider define which party's AllocationFactory and InstrumentConfiguration to use
8
- // Holdings must have matching operator/provider to be compatible
9
- export const instrumentCatalog = {
10
- Amulet: {
11
- id: "Amulet",
12
- aliases: ["CC"],
13
- kind: InstrumentKindAmulet,
14
- scheme: null,
15
- registrar: null,
16
- operator: null,
17
- provider: null,
18
- disclosureURL: null,
19
- requireCredentials: false,
20
- },
21
- USDCx: {
22
- id: "USDCx",
23
- scheme: RegistrarInternalScheme,
24
- kind: InstrumentKindUtility,
25
- disclosureURL: "https://docs.digitalasset.com/utilities/mainnet/overview/registry-user-guide/token-standard.html#operator-backend-token-standard-endpoints",
26
- requireCredentials: false,
27
- // TestNet contracts - from https://docs.digitalasset.com/usdc/xreserve/appendix-testnet-technical-setup.html
28
- testnet: {
29
- synchronizerId: "global-domain::1220f22a8b8f2d813c25b9a684dc4dd52b532a0174d8e73a13cdf2baabfff7518337",
30
- registrar: "decentralized-usdc-interchain-rep::122049e2af8a725bd19759320fc83c638e7718973eac189d8f201309c512d1ffec61",
31
- operator: "DigitalAsset-UtilityOperator::12202679f2bbe57d8cba9ef3cee847ac8239df0877105ab1f01a77d47477fdce1204",
32
- provider: "Bridge-Operator::12209d011ce250de439fefc35d16d1ab9d56fb99ccb24c18d798efb22352d533bcdb",
33
- registryAPI:
34
- "https://api.utilities.digitalasset-staging.com/api/token-standard/v0/registrars/decentralized-usdc-interchain-rep::122049e2af8a725bd19759320fc83c638e7718973eac189d8f201309c512d1ffec61/registry",
35
- instrumentConfiguration: {
36
- contractId: "00042d3cc4195cd3e03407be8654e36cf1881aeaa771cc8e631f793999fd2df0fdca1112200ae23ea2ffdcf4841e345dde1cbc84cec7576989eeadb2c77e77e63501e6f581",
37
- templateId: "b4ae77b8c0c7faa8bc8bb048f035dfe3d85d3e36d4bafaa4cf59631ec635ddb2:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
38
- eventBlob:
39
- "CgMyLjEStAkKRQAELTzEGVzT4DQHvoZU42zxiBrqp3HMjmMfeTmZ/S3w/coREiAK4j6i/9z0hB40Xd4cvITOx1dpie6tssd+d+Y1Aeb1gRITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAYjRhZTc3YjhjMGM3ZmFhOGJjOGJiMDQ4ZjAzNWRmZTNkODVkM2UzNmQ0YmFmYWE0Y2Y1OTYzMWVjNjM1ZGRiMhIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiLsBGrpBApmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0ClkKVzpVQnJpZGdlLU9wZXJhdG9yOjoxMjIwOWQwMTFjZTI1MGRlNDM5ZmVmYzM1ZDE2ZDFhYjlkNTZmYjk5Y2NiMjRjMThkNzk4ZWZiMjIzNTJkNTMzYmNkYgprCmk6Z2RlY2VudHJhbGl6ZWQtdXNkYy1pbnRlcmNoYWluLXJlcDo6MTIyMDQ5ZTJhZjhhNzI1YmQxOTc1OTMyMGZjODNjNjM4ZTc3MTg5NzNlYWMxODlkOGYyMDEzMDljNTEyZDFmZmVjNjEKmwEKmAFqlQEKawppOmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA0OWUyYWY4YTcyNWJkMTk3NTkzMjBmYzgzYzYzOGU3NzE4OTczZWFjMTg5ZDhmMjAxMzA5YzUxMmQxZmZlYzYxCgkKB0IFVVNEQ3gKGwoZQhdSZWdpc3RyYXJJbnRlcm5hbFNjaGVtZQoECgJaAAqMAQqJAVqGAQqDAWqAAQpZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMDlkMDExY2UyNTBkZTQzOWZlZmMzNWQxNmQxYWI5ZDU2ZmI5OWNjYjI0YzE4ZDc5OGVmYjIyMzUyZDUzM2JjZGIKIwohWh8KHWobCg4KDEIKSXNJc3N1ZXJPZgoJCgdCBVVTREN4CgQKAloAKlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA0OWUyYWY4YTcyNWJkMTk3NTkzMjBmYzgzYzYzOGU3NzE4OTczZWFjMTg5ZDhmMjAxMzA5YzUxMmQxZmZlYzYxMmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNDmUW0iuSUEGAEIqCiYKJAgBEiB22c8ZP/kGXXsITRrlviqwHjLXxwQvBCjqh0oYm2E5gRAe",
40
- },
41
- allocationFactory: {
42
- contractId: "00bede5fa4fd3d4f7ac250facd513ded42859076c2890a62b6ad148634c2fee59cca1112200101f0642c657e51f7f4a41e50502167fbbb4ea7b1d5552b9e6e1ab81b457d86",
43
- templateId: "8c335bb7d522489d71faf3eef046ad1a56f091b55b4f2d3086c7266afca1d647:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
44
- eventBlob:
45
- "CgMyLjES/wYKRQC+3l+k/T1PesJQ+s1RPe1ChZB2wokKYratFIY0wv7lnMoREiABAfBkLGV+Uff0pB5QUCFn+7tOp7HVVSuebhq4G0V9hhIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDhjMzM1YmI3ZDUyMjQ4OWQ3MWZhZjNlZWYwNDZhZDFhNTZmMDkxYjU1YjRmMmQzMDg2YzcyNjZhZmNhMWQ2NDcSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkiswJqsAIKWQpXOlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiCmsKaTpnZGVjZW50cmFsaXplZC11c2RjLWludGVyY2hhaW4tcmVwOjoxMjIwNDllMmFmOGE3MjViZDE5NzU5MzIwZmM4M2M2MzhlNzcxODk3M2VhYzE4OWQ4ZjIwMTMwOWM1MTJkMWZmZWM2MQpmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0KlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA0OWUyYWY4YTcyNWJkMTk3NTkzMjBmYzgzYzYzOGU3NzE4OTczZWFjMTg5ZDhmMjAxMzA5YzUxMmQxZmZlYzYxMmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNDmUW0iuSUEGAEIqCiYKJAgBEiCzbjLLZHXmAykV4okcMgzmrn1NLufmehZRjSn4JCCisBAe",
46
- },
47
- appRewardConfiguration: {
48
- contractId: "001a44911feb95bb29e7909419d29de2dfdb56b517a514089839c933e241c61b83ca111220a7779f5db25358272e05d13bba65c1a34cd7cc9740900ed9c8263e139ee6273d",
49
- templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
50
- eventBlob:
51
- "CgMyLjES+wYKRQAaRJEf65W7KeeQlBnSneLf21a1F6UUCJg5yTPiQcYbg8oREiCnd59dslNYJy4F0Tu6ZcGjTNfMl0CQDtnIJj4TnuYnPRITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24ingNqmwMKZgpkOmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNApZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMDlkMDExY2UyNTBkZTQzOWZlZmMzNWQxNmQxYWI5ZDU2ZmI5OWNjYjI0YzE4ZDc5OGVmYjIyMzUyZDUzM2JjZGIK1QEK0gFqzwEKTQpLOklEU086OjEyMjBmMjJhOGI4ZjJkODEzYzI1YjlhNjg0ZGM0ZGQ1MmI1MzJhMDE3NGQ4ZTczYTEzY2RmMmJhYWJmZmY3NTE4MzM3Cn4KfGp6CmYKZDpiRGlnaXRhbEFzc2V0LVV0aWxpdHlPcGVyYXRvcjo6MTIyMDI2NzlmMmJiZTU3ZDhjYmE5ZWYzY2VlODQ3YWM4MjM5ZGYwODc3MTA1YWIxZjAxYTc3ZDQ3NDc3ZmRjZTEyMDQKEAoOMgwwLjIwMDAwMDAwMDAqYkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0MlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiOZd2MhhIQQYAQioKJgokCAESIK5RtXRcXPi5fDeDJOgQyc3oD9b8hKHJP88dT+saFI+EEB4=",
52
- },
53
- featuredAppRight: {
54
- contractId: "0038c29eaaa23a2f01b6cd583579008cbf596316191f7ceb4d1815a433649f15fcca1112208e4a3e81efa5c5b4797c6c126fd2178b7af408b903e7ae06acda2a4d66f15f9a",
55
- },
56
- },
57
- // MainNet contracts - from https://docs.digitalasset.com/usdc/xreserve/mainnet-technical-setup.html
58
- mainnet: {
59
- synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
60
- registrar: "decentralized-usdc-interchain-rep::12208115f1e168dd7e792320be9c4ca720c751a02a3053c7606e1c1cd3dad9bf60ef",
61
- operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
62
- provider: "Bridge-Operator::1220c8448890a70e65f6906bd48d797ee6551f094e9e6a53e329fd5b2b549334f13f",
63
- registryAPI:
64
- "https://api.utilities.digitalasset.com/api/token-standard/v0/registrars/decentralized-usdc-interchain-rep::12208115f1e168dd7e792320be9c4ca720c751a02a3053c7606e1c1cd3dad9bf60ef/registry",
65
- instrumentConfiguration: {
66
- contractId: "002a23aed42edb51940f74f6fc5f7b8267c9192ab8e72296673420ffc4c4f22debca1112201d94617a63f11a4ce245498930752e56313d200b6a0976ee621f6add2788ba1b",
67
- templateId: "b4ae77b8c0c7faa8bc8bb048f035dfe3d85d3e36d4bafaa4cf59631ec635ddb2:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
68
- eventBlob:
69
- "CgMyLjESwAkKRQAqI67ULttRlA909vxfe4JnyRkquOcilmc0IP/ExPIt68oREiAdlGF6Y/EaTOJFSYkwdS5WMT0gC2oJdu5iH2rdJ4i6GxITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAYjRhZTc3YjhjMGM3ZmFhOGJjOGJiMDQ4ZjAzNWRmZTNkODVkM2UzNmQ0YmFmYWE0Y2Y1OTYzMWVjNjM1ZGRiMhIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiLyBGrvBApsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlClkKVzpVQnJpZGdlLU9wZXJhdG9yOjoxMjIwYzg0NDg4OTBhNzBlNjVmNjkwNmJkNDhkNzk3ZWU2NTUxZjA5NGU5ZTZhNTNlMzI5ZmQ1YjJiNTQ5MzM0ZjEzZgprCmk6Z2RlY2VudHJhbGl6ZWQtdXNkYy1pbnRlcmNoYWluLXJlcDo6MTIyMDgxMTVmMWUxNjhkZDdlNzkyMzIwYmU5YzRjYTcyMGM3NTFhMDJhMzA1M2M3NjA2ZTFjMWNkM2RhZDliZjYwZWYKmwEKmAFqlQEKawppOmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA4MTE1ZjFlMTY4ZGQ3ZTc5MjMyMGJlOWM0Y2E3MjBjNzUxYTAyYTMwNTNjNzYwNmUxYzFjZDNkYWQ5YmY2MGVmCgkKB0IFVVNEQ3gKGwoZQhdSZWdpc3RyYXJJbnRlcm5hbFNjaGVtZQoECgJaAAqMAQqJAVqGAQqDAWqAAQpZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMGM4NDQ4ODkwYTcwZTY1ZjY5MDZiZDQ4ZDc5N2VlNjU1MWYwOTRlOWU2YTUzZTMyOWZkNWIyYjU0OTMzNGYxM2YKIwohWh8KHWobCg4KDEIKSXNJc3N1ZXJPZgoJCgdCBVVTREN4CgQKAloAKlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA4MTE1ZjFlMTY4ZGQ3ZTc5MjMyMGJlOWM0Y2E3MjBjNzUxYTAyYTMwNTNjNzYwNmUxYzFjZDNkYWQ5YmY2MGVmMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTlPYpygnEEGAEIqCiYKJAgBEiDG2u5/5aFqKxIBQ1NhOOUuMloJWjlgtAJ9hY+R5wQVHRAe",
70
- },
71
- allocationFactory: {
72
- contractId: "006289e882123613ea96d71fad9cc38a529e613a8d4b550ef6a0422383e1925934ca11122003bc3af7d468f09465fa72db6182b63e349804e430a81eeeffa9076f5099f796",
73
- templateId: "8c335bb7d522489d71faf3eef046ad1a56f091b55b4f2d3086c7266afca1d647:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
74
- eventBlob:
75
- "CgMyLjESiwcKRQBiieiCEjYT6pbXH62cw4pSnmE6jUtVDvagQiOD4ZJZNMoREiADvDr31GjwlGX6ctthgrY+NJgE5DCoHu7/qQdvUJn3lhIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDhjMzM1YmI3ZDUyMjQ4OWQ3MWZhZjNlZWYwNDZhZDFhNTZmMDkxYjU1YjRmMmQzMDg2YzcyNjZhZmNhMWQ2NDcSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkiuQJqtgIKWQpXOlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmCmsKaTpnZGVjZW50cmFsaXplZC11c2RjLWludGVyY2hhaW4tcmVwOjoxMjIwODExNWYxZTE2OGRkN2U3OTIzMjBiZTljNGNhNzIwYzc1MWEwMmEzMDUzYzc2MDZlMWMxY2QzZGFkOWJmNjBlZgpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlKlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA4MTE1ZjFlMTY4ZGQ3ZTc5MjMyMGJlOWM0Y2E3MjBjNzUxYTAyYTMwNTNjNzYwNmUxYzFjZDNkYWQ5YmY2MGVmMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTlPYpygnEEGAEIqCiYKJAgBEiC7t2lHB3NuKxVhVA0EL5T+JGl5YJ6hVSv8wD+vxG3/+BAe",
76
- },
77
- appRewardConfiguration: {
78
- contractId: "00ad54961b99aa48d545fe0d74a6b56737e8cb0d7935e831ee1afce0619a4a82bfca1112202c765d54dfcc7a1db8d0bbb5f06951ceb4562a1acaaf74de13c6d05ebe4a64c4",
79
- templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
80
- eventBlob:
81
- "CgMyLjESkAcKRQCtVJYbmapI1UX+DXSmtWc36MsNeTXoMe4a/OBhmkqCv8oREiAsdl1U38x6HbjQu7XwaVHOtFYqGsqvdN4TxtBevkpkxBITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24irQNqqgMKbApqOmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZQpZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMGM4NDQ4ODkwYTcwZTY1ZjY5MDZiZDQ4ZDc5N2VlNjU1MWYwOTRlOWU2YTUzZTMyOWZkNWIyYjU0OTMzNGYxM2YK3gEK2wFq2AEKTQpLOklEU086OjEyMjBiMTQzMWVmMjE3MzQyZGI0NGQ1MTZiYjliZWZkZTgwMmJlN2Q4ODk5NjM3ZDI5MDg5NWZhNTg4ODBmMTlhY2NjCoYBCoMBaoABCmwKajpoYXV0aDBfMDA3YzY2NDM1MzhmMmVhZGQzZTU3M2RkMDViOTo6MTIyMDViY2MxMDZlZmEwZWFhN2YxOGRjNDkxZTVjNmY1ZmI5YjBjYzY4ZGMxMTBhZTY2ZjRlZDY0Njc0NzVkN2M3OGUKEAoOMgwwLjAwMDAwMDAwMDAqaGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlMlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmOcSAY/8mQgYAQioKJgokCAESIK+PKFSW8cBTvl2P8GALcq6BORe5200JDD0n1z+pnQylEB4=",
82
- },
83
- featuredAppRight: {
84
- contractId: "0012ec4c4b1fde3234437ea4e87f6e09f672ae5a9dd2ab2b93f19a65da1aafd8dbca111220efbebbc1ca3c63a0babbac1d566668d26117418670021cf2b9be29d24db0245e",
85
- },
86
- },
87
- },
88
- // CBTC (Canton Bitcoin) - External token from DA
89
- // Source: https://docs.dev.sync.global/app_dev/token_standard/index.html#api-references
90
- CBTC: {
91
- id: "CBTC",
92
- scheme: RegistrarInternalScheme,
93
- kind: InstrumentKindUtility,
94
- disclosureURL: "https://docs.dev.sync.global/app_dev/token_standard/index.html#api-references",
95
- requireCredentials: false,
96
- // TestNet contracts
97
- testnet: {
98
- synchronizerId: "global-domain::1220f22a8b8f2d813c25b9a684dc4dd52b532a0174d8e73a13cdf2baabfff7518337",
99
- registrar: "cbtc-network::12201b1741b63e2494e4214cf0bedc3d5a224da53b3bf4d76dba468f8e97eb15508f",
100
- operator: "DigitalAsset-UtilityOperator::12202679f2bbe57d8cba9ef3cee847ac8239df0877105ab1f01a77d47477fdce1204",
101
- provider: "cbtc-network::12201b1741b63e2494e4214cf0bedc3d5a224da53b3bf4d76dba468f8e97eb15508f",
102
- registryAPI: "https://api.utilities.digitalasset-staging.com/api/token-standard/v0/registrars/cbtc-network::12201b1741b63e2494e4214cf0bedc3d5a224da53b3bf4d76dba468f8e97eb15508f/registry",
103
- instrumentConfiguration: {
104
- contractId: "00dcac0a5a71d77dbfa978ea73f9c5b72daf9d26ba0e9b1d8584190358c94581f8ca111220c183c4851805be4cb8d5c5a2f37c6394aaf95400982453d0584c1fdf6c4950ce",
105
- templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
106
- eventBlob:
107
- "CgMyLjESlwgKRQDcrApacdd9v6l46nP5xbctr50mug6bHYWEGQNYyUWB+MoREiDBg8SFGAW+TLjVxaLzfGOUqvlUAJgkU9BYTB/fbElQzhITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiK7BGq4BApmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0ClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwMWIxNzQxYjYzZTI0OTRlNDIxNGNmMGJlZGMzZDVhMjI0ZGE1M2IzYmY0ZDc2ZGJhNDY4ZjhlOTdlYjE1NTA4ZgpWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYKhAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKigEKhwFahAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKBAoCWgAKBAoCWgAqUmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYyYkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0OeYEhmj6QQYAQioKJgokCAESIIFZLFl5oc2bXlpAQxjdZkgA1P4j2ga+zJIx0DdseGTYEB4=",
108
- },
109
- allocationFactory: {
110
- contractId: "00c956e318c52f8aa0b6acebd0bf62cb699df4627b5565fb332c79202479a36bafca111220cc0e27fb3e6fcdfa2cad3b1dd4843348ce60d04f6daacccecab981523620b7da",
111
- templateId: "170929b11d5f0ed1385f890f42887c31ff7e289c0f4bc482aff193a7173d576c:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
112
- eventBlob:
113
- "CgMyLjES+wUKRQDJVuMYxS+KoLas69C/YstpnfRie1Vl+zMseSAkeaNrr8oREiDMDif7Pm/N+iytOx3UhDNIzmDQT22qzM7KuYFSNiC32hIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDE3MDkyOWIxMWQ1ZjBlZDEzODVmODkwZjQyODg3YzMxZmY3ZTI4OWMwZjRiYzQ4MmFmZjE5M2E3MTczZDU3NmMSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkimwJqmAIKVgpUOlJjYnRjLW5ldHdvcms6OjEyMjAxYjE3NDFiNjNlMjQ5NGU0MjE0Y2YwYmVkYzNkNWEyMjRkYTUzYjNiZjRkNzZkYmE0NjhmOGU5N2ViMTU1MDhmClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwMWIxNzQxYjYzZTI0OTRlNDIxNGNmMGJlZGMzZDVhMjI0ZGE1M2IzYmY0ZDc2ZGJhNDY4ZjhlOTdlYjE1NTA4ZgpmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0KlJjYnRjLW5ldHdvcms6OjEyMjAxYjE3NDFiNjNlMjQ5NGU0MjE0Y2YwYmVkYzNkNWEyMjRkYTUzYjNiZjRkNzZkYmE0NjhmOGU5N2ViMTU1MDhmMmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNDnmBIZo+kEGAEIqCiYKJAgBEiA28r69uEQ4mN310dzSIOTHLYgxmVinL9FuA/XwQLfheRAe",
114
- },
115
- // AppRewardConfig
116
- appRewardConfiguration: {
117
- contractId: "0054a69e77fdea17d1c56cf3a64991c37dea34b6568c82db2190446221f6584cb5ca1112201ea595d9349c8644d09b751a4e968d784a51868bdde54a224be94736d09c6e67",
118
- templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
119
- eventBlob:
120
- "CgMyLjES9QYKRQBUpp53/eoX0cVs86ZJkcN96jS2VoyC2yGQRGIh9lhMtcoREiAepZXZNJyGRNCbdRpOlo14SlGGi93lSiJL6Uc20JxuZxITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24imwNqmAMKZgpkOmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNApWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYK1QEK0gFqzwEKTQpLOklEU086OjEyMjBmMjJhOGI4ZjJkODEzYzI1YjlhNjg0ZGM0ZGQ1MmI1MzJhMDE3NGQ4ZTczYTEzY2RmMmJhYWJmZmY3NTE4MzM3Cn4KfGp6CmYKZDpiRGlnaXRhbEFzc2V0LVV0aWxpdHlPcGVyYXRvcjo6MTIyMDI2NzlmMmJiZTU3ZDhjYmE5ZWYzY2VlODQ3YWM4MjM5ZGYwODc3MTA1YWIxZjAxYTc3ZDQ3NDc3ZmRjZTEyMDQKEAoOMgwwLjIwMDAwMDAwMDAqYkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0MlJjYnRjLW5ldHdvcms6OjEyMjAxYjE3NDFiNjNlMjQ5NGU0MjE0Y2YwYmVkYzNkNWEyMjRkYTUzYjNiZjRkNzZkYmE0NjhmOGU5N2ViMTU1MDhmOU/l4lj6QQYAQioKJgokCAESIPkBCO0qM3jdW2/BdhZa/gKRPonfxLecpHdyC2yeXu3aEB4=",
121
- },
122
- },
123
- // MainNet contracts
124
- mainnet: {
125
- synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
126
- registrar: "cbtc-network::12205af3b949a04776fc48cdcc05a060f6bda2e470632935f375d1049a8546a3b262",
127
- operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
128
- provider: "cbtc-network::12205af3b949a04776fc48cdcc05a060f6bda2e470632935f375d1049a8546a3b262",
129
- registryAPI: "https://api.utilities.digitalasset.com/api/token-standard/v0/registrars/cbtc-network::12205af3b949a04776fc48cdcc05a060f6bda2e470632935f375d1049a8546a3b262/registry",
130
- instrumentConfiguration: {
131
- contractId: "00198ff840c58a05f69bf3fa78aacee87dfb1864b586ca0b3ef427a6504bd43dadca1212201be3e457a7ba6bf092979128bcbe46368fdd401a4fd433dafb1b09134a1e690b",
132
- templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
133
- eventBlob:
134
- "CgMyLjESmQwKRQAZj/hAxYoF9pvz+niqzuh9+xhktYbKCz70J6ZQS9Q9rcoSEiAb4+RXp7pr8JKXkSi8vkY2j91AGk/UM9r7GwkTSh5pCxITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiK3CGq0CApsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwNWFmM2I5NDlhMDQ3NzZmYzQ4Y2RjYzA1YTA2MGY2YmRhMmU0NzA2MzI5MzVmMzc1ZDEwNDlhODU0NmEzYjI2MgpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIKhAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKigEKhwFahAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKBAoCWgAKBAoCWgAK8wMK8ANS7QMK6gNa5wMKcGpuCloKWDpWY2J0Yy1iZW5lZmljaWFyeTo6MTIyMDQwOWE5ZmNjNWZmNjQyMmUyOWFiOTc4YzIyYzAwNGRkZTMzMjAyNTQ2YjRiY2JkZTI0YjI1Yjg1MzUzMzY2YzIKEAoOMgwwLjI1MDAwMDAwMDAKgwFqgAEKbApqOmhGaW5vYUNvbnNlbnN1c1NlcnZpY2VzLXZhbGlkYXRvci0xOjoxMjIwYjgxODJmYTQyZDBjZjY1N2JkYTdmMTI0MzY2YTJjNjAzZDVkZjRhYWZkNzg5YTg4NTQ5ZGM5YTBlMzE5MTI1OQoQCg4yDDAuMjUwMDAwMDAwMApzanEKXQpbOlluZXRoZXJtaW5kLWFuZ2tvci0xOjoxMjIwMWQ5NGVjNGJhOTczYWI1YzUxZTNiNzY5YTZhY2E1NGYwNjFhZmM5NjM2MTlhNGQ2MTA5MDQ0ZWFjY2FmYzdiYQoQCg4yDDAuMjUwMDAwMDAwMAp4anYKYgpgOl5kc3J2LW1haW5uZXRWYWxpZGF0b3ItMDE6OjEyMjBlMmY0YWJlMWM1Y2E3ZTA3NDY0MDM3ZmU3ZmVmYzgzOWI3YjhmZWEyNDk4NWQwZDJhMjc5MGZhNzJlM2MxM2FjChAKDjIMMC4yNTAwMDAwMDAwKlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTmc9gXeakgGAEIqCiYKJAgBEiCzFew8Ty5ImPz2JpD6RroXNwD6O5b5IWJ3xeHBQsW4MRAe",
135
- },
136
- allocationFactory: {
137
- contractId: "00a30be758ed7b5045f82ab37e4037890eb18044e61125854e7391d2de17e602edca1112203c96d5fb70e1cd5856846681484293c5358bc74b0e10d7a8a7a5fa89ce445905",
138
- templateId: "82798df018301852704f210b97adaabf76d3ecd37d889e1bf96b5f31a20eea34:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
139
- eventBlob:
140
- "CgMyLjEShwYKRQCjC+dY7XtQRfgqs35AN4kOsYBE5hElhU5zkdLeF+YC7coREiA8ltX7cOHNWFaEZoFIQpPFNYvHSw4Q16inpfqJzkRZBRIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDgyNzk4ZGYwMTgzMDE4NTI3MDRmMjEwYjk3YWRhYWJmNzZkM2VjZDM3ZDg4OWUxYmY5NmI1ZjMxYTIwZWVhMzQSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkioQJqngIKVgpUOlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwNWFmM2I5NDlhMDQ3NzZmYzQ4Y2RjYzA1YTA2MGY2YmRhMmU0NzA2MzI5MzVmMzc1ZDEwNDlhODU0NmEzYjI2MgpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlKlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTmmjd2WhT4GAEIqCiYKJAgBEiAmE4gDprYSR3Yqd6tcoPepCoYnxYXkw1UyuRBEypw6YBAe",
141
- },
142
- // AppRewardConfig
143
- appRewardConfiguration: {
144
- contractId: "005cb47f39ba47615e4aa5dd02b17763cc0eda03087ae6c9ee8e38e82c13462aaeca1112202d25374d3cf2c0a36a8d0710836d4e01a1c5b73473f45b6a81002c5daa8ca0cb",
145
- templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
146
- eventBlob:
147
- "CgMyLjESigcKRQBctH85ukdhXkql3QKxd2PMDtoDCHrmye6OOOgsE0YqrsoREiAtJTdNPPLAo2qNBxCDbU4BocW3NHP0W2qBACxdqoygyxITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24iqgNqpwMKbApqOmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZQpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIK3gEK2wFq2AEKTQpLOklEU086OjEyMjBiMTQzMWVmMjE3MzQyZGI0NGQ1MTZiYjliZWZkZTgwMmJlN2Q4ODk5NjM3ZDI5MDg5NWZhNTg4ODBmMTlhY2NjCoYBCoMBaoABCmwKajpoYXV0aDBfMDA3YzY3ZGM3YzRhZmJmNWJjMzdmOTgwNWUzMTo6MTIyMDViY2MxMDZlZmEwZWFhN2YxOGRjNDkxZTVjNmY1ZmI5YjBjYzY4ZGMxMTBhZTY2ZjRlZDY0Njc0NzVkN2M3OGUKEAoOMgwwLjIwMDAwMDAwMDAqaGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlMlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyOSqKuWddQgYAQioKJgokCAESIP6u2ZhXB5fXuwvdDvhv+mn6JPF20D2scQdCh/yRSuNsEB4=",
148
- },
149
- },
150
- },
151
-
152
- // USDA -- DA-issued stablecoin (utility token, same shape as USDCx)
153
- USDA: {
154
- id: "3574b536-cad1-4074-9b64-859398713ba0",
155
- scheme: RegistrarInternalScheme,
156
- kind: InstrumentKindUtility,
157
- disclosureURL: null,
158
- requireCredentials: false,
159
- testnet: {
160
- synchronizerId: "",
161
- registrar: "",
162
- operator: "",
163
- provider: "",
164
- registryAPI: "",
165
- instrumentConfiguration: {
166
- contractId: "",
167
- templateId: "",
168
- eventBlob: "",
169
- },
170
- allocationFactory: {
171
- contractId: "",
172
- templateId: "",
173
- eventBlob: "",
174
- },
175
- appRewardConfiguration: {
176
- contractId: "",
177
- templateId: "",
178
- eventBlob: "",
179
- },
180
- },
181
- mainnet: {
182
- synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
183
- registrar: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
184
- operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
185
- provider: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
186
- registryAPI: "https://api.utilities.digitalasset.com/api/token-standard/v0/registrars/party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e/registry",
187
- instrumentConfiguration: {
188
- contractId: "007c6c88f88a02bbe6888b3792991b0e11e081b309ab4cc11f2200831a777a9e9eca121220039f9aa8b4a6a4c1db572b9b525058fad421f9824b6a245650f428b70f644c12",
189
- templateId: "a236e8e22a3b5f199e37d5554e82bafd2df688f901de02b00be3964bdfa8c1ab:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
190
- eventBlob:
191
- "CgMyLjESygkKRQB8bIj4igK75oiLN5KZGw4R4IGzCatMwR8iAIMad3qensoSEiADn5qotKakwdtXK5tSUFj61CH5gktqJFZQ9Ci3D2RMEhITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAYTIzNmU4ZTIyYTNiNWYxOTllMzdkNTU1NGU4MmJhZmQyZGY2ODhmOTAxZGUwMmIwMGJlMzk2NGJkZmE4YzFhYhIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiLKBWrHBQpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlCnQKcjpwcGFydHktMjhkYzQ1MTYtYjVjYS00NGZmLTg2YzctMjEwN2U5MGE2ODA3OjoxMjIwYjgzMDFlMThhYThhNDAxZDZlMzRlNmMyMGY4YjAyNDMxODNjNTE0MzczYmNhOGYxYjZiOTI3MDI0NjM0MWE5ZQp0CnI6cHBhcnR5LTI4ZGM0NTE2LWI1Y2EtNDRmZi04NmM3LTIxMDdlOTBhNjgwNzo6MTIyMGI4MzAxZTE4YWE4YTQwMWQ2ZTM0ZTZjMjBmOGIwMjQzMTgzYzUxNDM3M2JjYThmMWI2YjkyNzAyNDYzNDFhOWUKwwEKwAFqvQEKdApyOnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllCigKJkIkMzU3NGI1MzYtY2FkMS00MDc0LTliNjQtODU5Mzk4NzEzYmEwChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKmAEKlQFakgEKjwFqjAEKdApyOnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllCggKBkIEVVNEQQoKCghCBlRpY2tlcgoECgJaAAoECgJaACpwcGFydHktMjhkYzQ1MTYtYjVjYS00NGZmLTg2YzctMjEwN2U5MGE2ODA3OjoxMjIwYjgzMDFlMThhYThhNDAxZDZlMzRlNmMyMGY4YjAyNDMxODNjNTE0MzczYmNhOGYxYjZiOTI3MDI0NjM0MWE5ZTJoYXV0aDBfMDA3YzY2NDM1MzhmMmVhZGQzZTU3M2RkMDViOTo6MTIyMDViY2MxMDZlZmEwZWFhN2YxOGRjNDkxZTVjNmY1ZmI5YjBjYzY4ZGMxMTBhZTY2ZjRlZDY0Njc0NzVkN2M3OGU5KWaA+FNRBgBCKgomCiQIARIgHk6elwUzf1qka7iWAwMmMiO8d9G8nkxo2vn4fpR6rgkQHg==",
192
- },
193
- allocationFactory: {
194
- contractId: "00f1bdedbfa7fc8b136fa57164cc3d73ec6ae5a9e8c903ba6462629f74f61000ebca1112204927a06b04a9013d29df443e585fe1444393bdd3af841eb379b4c106f80ef7d8",
195
- templateId: "82798df018301852704f210b97adaabf76d3ecd37d889e1bf96b5f31a20eea34:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
196
- eventBlob:
197
- "CgMyLjES4QYKRQDxve2/p/yLE2+lcWTMPXPsauWp6MkDumRiYp909hAA68oREiBJJ6BrBKkBPSnfRD5YX+FEQ5O906+EHrN5tMEG+A732BIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDgyNzk4ZGYwMTgzMDE4NTI3MDRmMjEwYjk3YWRhYWJmNzZkM2VjZDM3ZDg4OWUxYmY5NmI1ZjMxYTIwZWVhMzQSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3Rvcnki3QJq2gIKdApyOnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllCnQKcjpwcGFydHktMjhkYzQ1MTYtYjVjYS00NGZmLTg2YzctMjEwN2U5MGE2ODA3OjoxMjIwYjgzMDFlMThhYThhNDAxZDZlMzRlNmMyMGY4YjAyNDMxODNjNTE0MzczYmNhOGYxYjZiOTI3MDI0NjM0MWE5ZQpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlKnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTk20/j3nj4GAEIqCiYKJAgBEiBwfsleVvZIGKs93dGaxalgMoApEPy2uONQ6trRzxPTzhAe",
198
- },
199
- appRewardConfiguration: {
200
- contractId: "",
201
- templateId: "",
202
- eventBlob: "",
203
- },
204
- },
205
- },
206
-
207
- // SBC (Stablecoin) -- used for balance reporting, but not a tradable instrument itself
208
- SBC: {
209
- id: "f29bdd7a-1469-498a-ba2a-796bf5387b31",
210
- scheme: RegistrarInternalScheme,
211
- kind: InstrumentKindUtility,
212
- disclosureURL: null,
213
- requireCredentials: false,
214
- mainnet: {
215
- synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
216
- registrar: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
217
- operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
218
- provider: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
219
- },
220
- },
221
- };
222
-
223
- // Reverse lookup: maps on-chain instrument IDs to catalog keys
224
- // (for instruments where the on-chain ID differs from the catalog key, e.g. UUID -> "SBC")
225
- export const instrumentIdToSymbol = Object.fromEntries(
226
- Object.entries(instrumentCatalog)
227
- .filter(([key, entry]) => entry.id && entry.id !== key)
228
- .map(([key, entry]) => [entry.id, key]),
229
- );
230
-
231
- // Supported trading pairs (like Go's supportedTradingPairs)
232
- export const supportedTradingPairs = [
233
- { baseAsset: "Amulet", quoteAsset: "USDCx" },
234
- { baseAsset: "CBTC", quoteAsset: "USDCx" },
235
- { baseAsset: "Amulet", quoteAsset: "USDA" },
236
- { baseAsset: "CBTC", quoteAsset: "USDA" },
237
- { baseAsset: "USDCx", quoteAsset: "USDA" },
238
- ];
239
-
240
- // The supported symbols (pairs) - derived from supportedTradingPairs for backward compatibility
241
- export const supportedSymbols = supportedTradingPairs.reduce((acc, pair) => {
242
- acc[`${pair.baseAsset}/${pair.quoteAsset}`] = { base: pair.baseAsset, quote: pair.quoteAsset };
243
- return acc;
244
- }, {});
245
-
246
- // Add CC as an alias for Amulet so users can pass "CC/USDCx" or "CC/USDA"
247
- supportedSymbols["CC/USDCx"] = supportedSymbols["Amulet/USDCx"];
248
- supportedSymbols["CC/USDA"] = supportedSymbols["Amulet/USDA"];
249
-
250
- // Build a case-insensitive alias → canonical-symbol map from the catalog's `aliases` arrays.
251
- // e.g. instrumentCatalog.Amulet.aliases = ["CC"] → { cc: "Amulet" }
252
- const aliasToSymbol = Object.entries(instrumentCatalog).reduce((acc, [symbol, entry]) => {
253
- for (const alias of entry.aliases || []) {
254
- acc[alias.toLowerCase()] = symbol;
255
- }
256
- return acc;
257
- }, {});
258
-
259
- /**
260
- * Normalize asset aliases to their canonical catalog symbol.
261
- * Aliases come from `instrumentCatalog[<symbol>].aliases`, matched case-insensitively.
262
- * Works on single symbols (`"cc"` → `"Amulet"`) and pair strings (`"CC/USDCx"` → `"Amulet/USDCx"`).
263
- */
264
- export function normalizeAssetId(symbol) {
265
- if (!symbol || typeof symbol !== "string") return symbol;
266
- const trimmed = symbol.trim();
267
- const normalizeOne = (s) => aliasToSymbol[s.toLowerCase()] || s;
268
- if (trimmed.includes("/")) {
269
- return trimmed.split("/").map(normalizeOne).join("/");
270
- }
271
- return normalizeOne(trimmed);
272
- }
273
-
274
- /**
275
- * Catalog symbol → on-chain instrument id.
276
- * Use whenever building an `instrumentId.id` field for a ledger choice argument or
277
- * a Registry API request body — those need the value that lives in Holding contracts,
278
- * which for USDA/SBC is a UUID rather than the display symbol.
279
- */
280
- export function resolveOnChainInstrumentId(symbol) {
281
- return instrumentCatalog[symbol]?.id || symbol;
282
- }
283
-
1
+ // Instrument kinds
2
+ export const InstrumentKindUtility = "utility";
3
+ export const InstrumentKindAmulet = "amulet";
4
+ export const RegistrarInternalScheme = "RegistrarInternalScheme";
5
+
6
+ // Hardcoded instrument definitions (like Go's supportedInstrumentCatalog)
7
+ // operator/provider define which party's AllocationFactory and InstrumentConfiguration to use
8
+ // Holdings must have matching operator/provider to be compatible
9
+ export const instrumentCatalog = {
10
+ Amulet: {
11
+ id: "Amulet",
12
+ aliases: ["CC"],
13
+ kind: InstrumentKindAmulet,
14
+ scheme: null,
15
+ registrar: null,
16
+ operator: null,
17
+ provider: null,
18
+ disclosureURL: null,
19
+ requireCredentials: false,
20
+ },
21
+ USDCx: {
22
+ id: "USDCx",
23
+ scheme: RegistrarInternalScheme,
24
+ kind: InstrumentKindUtility,
25
+ disclosureURL: "https://docs.digitalasset.com/utilities/mainnet/overview/registry-user-guide/token-standard.html#operator-backend-token-standard-endpoints",
26
+ requireCredentials: false,
27
+ // TestNet contracts - from https://docs.digitalasset.com/usdc/xreserve/appendix-testnet-technical-setup.html
28
+ testnet: {
29
+ synchronizerId: "global-domain::1220f22a8b8f2d813c25b9a684dc4dd52b532a0174d8e73a13cdf2baabfff7518337",
30
+ registrar: "decentralized-usdc-interchain-rep::122049e2af8a725bd19759320fc83c638e7718973eac189d8f201309c512d1ffec61",
31
+ operator: "DigitalAsset-UtilityOperator::12202679f2bbe57d8cba9ef3cee847ac8239df0877105ab1f01a77d47477fdce1204",
32
+ provider: "Bridge-Operator::12209d011ce250de439fefc35d16d1ab9d56fb99ccb24c18d798efb22352d533bcdb",
33
+ registryAPI:
34
+ "https://api.utilities.digitalasset-staging.com/api/token-standard/v0/registrars/decentralized-usdc-interchain-rep::122049e2af8a725bd19759320fc83c638e7718973eac189d8f201309c512d1ffec61/registry",
35
+ instrumentConfiguration: {
36
+ contractId: "00042d3cc4195cd3e03407be8654e36cf1881aeaa771cc8e631f793999fd2df0fdca1112200ae23ea2ffdcf4841e345dde1cbc84cec7576989eeadb2c77e77e63501e6f581",
37
+ templateId: "b4ae77b8c0c7faa8bc8bb048f035dfe3d85d3e36d4bafaa4cf59631ec635ddb2:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
38
+ eventBlob:
39
+ "CgMyLjEStAkKRQAELTzEGVzT4DQHvoZU42zxiBrqp3HMjmMfeTmZ/S3w/coREiAK4j6i/9z0hB40Xd4cvITOx1dpie6tssd+d+Y1Aeb1gRITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAYjRhZTc3YjhjMGM3ZmFhOGJjOGJiMDQ4ZjAzNWRmZTNkODVkM2UzNmQ0YmFmYWE0Y2Y1OTYzMWVjNjM1ZGRiMhIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiLsBGrpBApmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0ClkKVzpVQnJpZGdlLU9wZXJhdG9yOjoxMjIwOWQwMTFjZTI1MGRlNDM5ZmVmYzM1ZDE2ZDFhYjlkNTZmYjk5Y2NiMjRjMThkNzk4ZWZiMjIzNTJkNTMzYmNkYgprCmk6Z2RlY2VudHJhbGl6ZWQtdXNkYy1pbnRlcmNoYWluLXJlcDo6MTIyMDQ5ZTJhZjhhNzI1YmQxOTc1OTMyMGZjODNjNjM4ZTc3MTg5NzNlYWMxODlkOGYyMDEzMDljNTEyZDFmZmVjNjEKmwEKmAFqlQEKawppOmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA0OWUyYWY4YTcyNWJkMTk3NTkzMjBmYzgzYzYzOGU3NzE4OTczZWFjMTg5ZDhmMjAxMzA5YzUxMmQxZmZlYzYxCgkKB0IFVVNEQ3gKGwoZQhdSZWdpc3RyYXJJbnRlcm5hbFNjaGVtZQoECgJaAAqMAQqJAVqGAQqDAWqAAQpZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMDlkMDExY2UyNTBkZTQzOWZlZmMzNWQxNmQxYWI5ZDU2ZmI5OWNjYjI0YzE4ZDc5OGVmYjIyMzUyZDUzM2JjZGIKIwohWh8KHWobCg4KDEIKSXNJc3N1ZXJPZgoJCgdCBVVTREN4CgQKAloAKlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA0OWUyYWY4YTcyNWJkMTk3NTkzMjBmYzgzYzYzOGU3NzE4OTczZWFjMTg5ZDhmMjAxMzA5YzUxMmQxZmZlYzYxMmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNDmUW0iuSUEGAEIqCiYKJAgBEiB22c8ZP/kGXXsITRrlviqwHjLXxwQvBCjqh0oYm2E5gRAe",
40
+ },
41
+ allocationFactory: {
42
+ contractId: "00bede5fa4fd3d4f7ac250facd513ded42859076c2890a62b6ad148634c2fee59cca1112200101f0642c657e51f7f4a41e50502167fbbb4ea7b1d5552b9e6e1ab81b457d86",
43
+ templateId: "8c335bb7d522489d71faf3eef046ad1a56f091b55b4f2d3086c7266afca1d647:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
44
+ eventBlob:
45
+ "CgMyLjES/wYKRQC+3l+k/T1PesJQ+s1RPe1ChZB2wokKYratFIY0wv7lnMoREiABAfBkLGV+Uff0pB5QUCFn+7tOp7HVVSuebhq4G0V9hhIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDhjMzM1YmI3ZDUyMjQ4OWQ3MWZhZjNlZWYwNDZhZDFhNTZmMDkxYjU1YjRmMmQzMDg2YzcyNjZhZmNhMWQ2NDcSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkiswJqsAIKWQpXOlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiCmsKaTpnZGVjZW50cmFsaXplZC11c2RjLWludGVyY2hhaW4tcmVwOjoxMjIwNDllMmFmOGE3MjViZDE5NzU5MzIwZmM4M2M2MzhlNzcxODk3M2VhYzE4OWQ4ZjIwMTMwOWM1MTJkMWZmZWM2MQpmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0KlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA0OWUyYWY4YTcyNWJkMTk3NTkzMjBmYzgzYzYzOGU3NzE4OTczZWFjMTg5ZDhmMjAxMzA5YzUxMmQxZmZlYzYxMmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNDmUW0iuSUEGAEIqCiYKJAgBEiCzbjLLZHXmAykV4okcMgzmrn1NLufmehZRjSn4JCCisBAe",
46
+ },
47
+ appRewardConfiguration: {
48
+ contractId: "001a44911feb95bb29e7909419d29de2dfdb56b517a514089839c933e241c61b83ca111220a7779f5db25358272e05d13bba65c1a34cd7cc9740900ed9c8263e139ee6273d",
49
+ templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
50
+ eventBlob:
51
+ "CgMyLjES+wYKRQAaRJEf65W7KeeQlBnSneLf21a1F6UUCJg5yTPiQcYbg8oREiCnd59dslNYJy4F0Tu6ZcGjTNfMl0CQDtnIJj4TnuYnPRITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24ingNqmwMKZgpkOmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNApZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMDlkMDExY2UyNTBkZTQzOWZlZmMzNWQxNmQxYWI5ZDU2ZmI5OWNjYjI0YzE4ZDc5OGVmYjIyMzUyZDUzM2JjZGIK1QEK0gFqzwEKTQpLOklEU086OjEyMjBmMjJhOGI4ZjJkODEzYzI1YjlhNjg0ZGM0ZGQ1MmI1MzJhMDE3NGQ4ZTczYTEzY2RmMmJhYWJmZmY3NTE4MzM3Cn4KfGp6CmYKZDpiRGlnaXRhbEFzc2V0LVV0aWxpdHlPcGVyYXRvcjo6MTIyMDI2NzlmMmJiZTU3ZDhjYmE5ZWYzY2VlODQ3YWM4MjM5ZGYwODc3MTA1YWIxZjAxYTc3ZDQ3NDc3ZmRjZTEyMDQKEAoOMgwwLjIwMDAwMDAwMDAqYkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0MlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjA5ZDAxMWNlMjUwZGU0MzlmZWZjMzVkMTZkMWFiOWQ1NmZiOTljY2IyNGMxOGQ3OThlZmIyMjM1MmQ1MzNiY2RiOZd2MhhIQQYAQioKJgokCAESIK5RtXRcXPi5fDeDJOgQyc3oD9b8hKHJP88dT+saFI+EEB4=",
52
+ },
53
+ featuredAppRight: {
54
+ contractId: "0038c29eaaa23a2f01b6cd583579008cbf596316191f7ceb4d1815a433649f15fcca1112208e4a3e81efa5c5b4797c6c126fd2178b7af408b903e7ae06acda2a4d66f15f9a",
55
+ },
56
+ },
57
+ // MainNet contracts - from https://docs.digitalasset.com/usdc/xreserve/mainnet-technical-setup.html
58
+ mainnet: {
59
+ synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
60
+ registrar: "decentralized-usdc-interchain-rep::12208115f1e168dd7e792320be9c4ca720c751a02a3053c7606e1c1cd3dad9bf60ef",
61
+ operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
62
+ provider: "Bridge-Operator::1220c8448890a70e65f6906bd48d797ee6551f094e9e6a53e329fd5b2b549334f13f",
63
+ registryAPI:
64
+ "https://api.utilities.digitalasset.com/api/token-standard/v0/registrars/decentralized-usdc-interchain-rep::12208115f1e168dd7e792320be9c4ca720c751a02a3053c7606e1c1cd3dad9bf60ef/registry",
65
+ instrumentConfiguration: {
66
+ contractId: "002a23aed42edb51940f74f6fc5f7b8267c9192ab8e72296673420ffc4c4f22debca1112201d94617a63f11a4ce245498930752e56313d200b6a0976ee621f6add2788ba1b",
67
+ templateId: "b4ae77b8c0c7faa8bc8bb048f035dfe3d85d3e36d4bafaa4cf59631ec635ddb2:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
68
+ eventBlob:
69
+ "CgMyLjESwAkKRQAqI67ULttRlA909vxfe4JnyRkquOcilmc0IP/ExPIt68oREiAdlGF6Y/EaTOJFSYkwdS5WMT0gC2oJdu5iH2rdJ4i6GxITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAYjRhZTc3YjhjMGM3ZmFhOGJjOGJiMDQ4ZjAzNWRmZTNkODVkM2UzNmQ0YmFmYWE0Y2Y1OTYzMWVjNjM1ZGRiMhIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiLyBGrvBApsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlClkKVzpVQnJpZGdlLU9wZXJhdG9yOjoxMjIwYzg0NDg4OTBhNzBlNjVmNjkwNmJkNDhkNzk3ZWU2NTUxZjA5NGU5ZTZhNTNlMzI5ZmQ1YjJiNTQ5MzM0ZjEzZgprCmk6Z2RlY2VudHJhbGl6ZWQtdXNkYy1pbnRlcmNoYWluLXJlcDo6MTIyMDgxMTVmMWUxNjhkZDdlNzkyMzIwYmU5YzRjYTcyMGM3NTFhMDJhMzA1M2M3NjA2ZTFjMWNkM2RhZDliZjYwZWYKmwEKmAFqlQEKawppOmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA4MTE1ZjFlMTY4ZGQ3ZTc5MjMyMGJlOWM0Y2E3MjBjNzUxYTAyYTMwNTNjNzYwNmUxYzFjZDNkYWQ5YmY2MGVmCgkKB0IFVVNEQ3gKGwoZQhdSZWdpc3RyYXJJbnRlcm5hbFNjaGVtZQoECgJaAAqMAQqJAVqGAQqDAWqAAQpZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMGM4NDQ4ODkwYTcwZTY1ZjY5MDZiZDQ4ZDc5N2VlNjU1MWYwOTRlOWU2YTUzZTMyOWZkNWIyYjU0OTMzNGYxM2YKIwohWh8KHWobCg4KDEIKSXNJc3N1ZXJPZgoJCgdCBVVTREN4CgQKAloAKlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA4MTE1ZjFlMTY4ZGQ3ZTc5MjMyMGJlOWM0Y2E3MjBjNzUxYTAyYTMwNTNjNzYwNmUxYzFjZDNkYWQ5YmY2MGVmMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTlPYpygnEEGAEIqCiYKJAgBEiDG2u5/5aFqKxIBQ1NhOOUuMloJWjlgtAJ9hY+R5wQVHRAe",
70
+ },
71
+ allocationFactory: {
72
+ contractId: "006289e882123613ea96d71fad9cc38a529e613a8d4b550ef6a0422383e1925934ca11122003bc3af7d468f09465fa72db6182b63e349804e430a81eeeffa9076f5099f796",
73
+ templateId: "8c335bb7d522489d71faf3eef046ad1a56f091b55b4f2d3086c7266afca1d647:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
74
+ eventBlob:
75
+ "CgMyLjESiwcKRQBiieiCEjYT6pbXH62cw4pSnmE6jUtVDvagQiOD4ZJZNMoREiADvDr31GjwlGX6ctthgrY+NJgE5DCoHu7/qQdvUJn3lhIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDhjMzM1YmI3ZDUyMjQ4OWQ3MWZhZjNlZWYwNDZhZDFhNTZmMDkxYjU1YjRmMmQzMDg2YzcyNjZhZmNhMWQ2NDcSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkiuQJqtgIKWQpXOlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmCmsKaTpnZGVjZW50cmFsaXplZC11c2RjLWludGVyY2hhaW4tcmVwOjoxMjIwODExNWYxZTE2OGRkN2U3OTIzMjBiZTljNGNhNzIwYzc1MWEwMmEzMDUzYzc2MDZlMWMxY2QzZGFkOWJmNjBlZgpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlKlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmKmdkZWNlbnRyYWxpemVkLXVzZGMtaW50ZXJjaGFpbi1yZXA6OjEyMjA4MTE1ZjFlMTY4ZGQ3ZTc5MjMyMGJlOWM0Y2E3MjBjNzUxYTAyYTMwNTNjNzYwNmUxYzFjZDNkYWQ5YmY2MGVmMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTlPYpygnEEGAEIqCiYKJAgBEiC7t2lHB3NuKxVhVA0EL5T+JGl5YJ6hVSv8wD+vxG3/+BAe",
76
+ },
77
+ appRewardConfiguration: {
78
+ contractId: "00ad54961b99aa48d545fe0d74a6b56737e8cb0d7935e831ee1afce0619a4a82bfca1112202c765d54dfcc7a1db8d0bbb5f06951ceb4562a1acaaf74de13c6d05ebe4a64c4",
79
+ templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
80
+ eventBlob:
81
+ "CgMyLjESkAcKRQCtVJYbmapI1UX+DXSmtWc36MsNeTXoMe4a/OBhmkqCv8oREiAsdl1U38x6HbjQu7XwaVHOtFYqGsqvdN4TxtBevkpkxBITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24irQNqqgMKbApqOmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZQpZClc6VUJyaWRnZS1PcGVyYXRvcjo6MTIyMGM4NDQ4ODkwYTcwZTY1ZjY5MDZiZDQ4ZDc5N2VlNjU1MWYwOTRlOWU2YTUzZTMyOWZkNWIyYjU0OTMzNGYxM2YK3gEK2wFq2AEKTQpLOklEU086OjEyMjBiMTQzMWVmMjE3MzQyZGI0NGQ1MTZiYjliZWZkZTgwMmJlN2Q4ODk5NjM3ZDI5MDg5NWZhNTg4ODBmMTlhY2NjCoYBCoMBaoABCmwKajpoYXV0aDBfMDA3YzY2NDM1MzhmMmVhZGQzZTU3M2RkMDViOTo6MTIyMDViY2MxMDZlZmEwZWFhN2YxOGRjNDkxZTVjNmY1ZmI5YjBjYzY4ZGMxMTBhZTY2ZjRlZDY0Njc0NzVkN2M3OGUKEAoOMgwwLjAwMDAwMDAwMDAqaGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlMlVCcmlkZ2UtT3BlcmF0b3I6OjEyMjBjODQ0ODg5MGE3MGU2NWY2OTA2YmQ0OGQ3OTdlZTY1NTFmMDk0ZTllNmE1M2UzMjlmZDViMmI1NDkzMzRmMTNmOcSAY/8mQgYAQioKJgokCAESIK+PKFSW8cBTvl2P8GALcq6BORe5200JDD0n1z+pnQylEB4=",
82
+ },
83
+ featuredAppRight: {
84
+ contractId: "0012ec4c4b1fde3234437ea4e87f6e09f672ae5a9dd2ab2b93f19a65da1aafd8dbca111220efbebbc1ca3c63a0babbac1d566668d26117418670021cf2b9be29d24db0245e",
85
+ },
86
+ },
87
+ },
88
+ // CBTC (Canton Bitcoin) - External token from DA
89
+ // Source: https://docs.dev.sync.global/app_dev/token_standard/index.html#api-references
90
+ CBTC: {
91
+ id: "CBTC",
92
+ scheme: RegistrarInternalScheme,
93
+ kind: InstrumentKindUtility,
94
+ disclosureURL: "https://docs.dev.sync.global/app_dev/token_standard/index.html#api-references",
95
+ requireCredentials: false,
96
+ // TestNet contracts
97
+ testnet: {
98
+ synchronizerId: "global-domain::1220f22a8b8f2d813c25b9a684dc4dd52b532a0174d8e73a13cdf2baabfff7518337",
99
+ registrar: "cbtc-network::12201b1741b63e2494e4214cf0bedc3d5a224da53b3bf4d76dba468f8e97eb15508f",
100
+ operator: "DigitalAsset-UtilityOperator::12202679f2bbe57d8cba9ef3cee847ac8239df0877105ab1f01a77d47477fdce1204",
101
+ provider: "cbtc-network::12201b1741b63e2494e4214cf0bedc3d5a224da53b3bf4d76dba468f8e97eb15508f",
102
+ registryAPI: "https://api.utilities.digitalasset-staging.com/api/token-standard/v0/registrars/cbtc-network::12201b1741b63e2494e4214cf0bedc3d5a224da53b3bf4d76dba468f8e97eb15508f/registry",
103
+ instrumentConfiguration: {
104
+ contractId: "00dcac0a5a71d77dbfa978ea73f9c5b72daf9d26ba0e9b1d8584190358c94581f8ca111220c183c4851805be4cb8d5c5a2f37c6394aaf95400982453d0584c1fdf6c4950ce",
105
+ templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
106
+ eventBlob:
107
+ "CgMyLjESlwgKRQDcrApacdd9v6l46nP5xbctr50mug6bHYWEGQNYyUWB+MoREiDBg8SFGAW+TLjVxaLzfGOUqvlUAJgkU9BYTB/fbElQzhITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiK7BGq4BApmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0ClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwMWIxNzQxYjYzZTI0OTRlNDIxNGNmMGJlZGMzZDVhMjI0ZGE1M2IzYmY0ZDc2ZGJhNDY4ZjhlOTdlYjE1NTA4ZgpWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYKhAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKigEKhwFahAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKBAoCWgAKBAoCWgAqUmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYyYkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0OeYEhmj6QQYAQioKJgokCAESIIFZLFl5oc2bXlpAQxjdZkgA1P4j2ga+zJIx0DdseGTYEB4=",
108
+ },
109
+ allocationFactory: {
110
+ contractId: "00c956e318c52f8aa0b6acebd0bf62cb699df4627b5565fb332c79202479a36bafca111220cc0e27fb3e6fcdfa2cad3b1dd4843348ce60d04f6daacccecab981523620b7da",
111
+ templateId: "170929b11d5f0ed1385f890f42887c31ff7e289c0f4bc482aff193a7173d576c:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
112
+ eventBlob:
113
+ "CgMyLjES+wUKRQDJVuMYxS+KoLas69C/YstpnfRie1Vl+zMseSAkeaNrr8oREiDMDif7Pm/N+iytOx3UhDNIzmDQT22qzM7KuYFSNiC32hIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDE3MDkyOWIxMWQ1ZjBlZDEzODVmODkwZjQyODg3YzMxZmY3ZTI4OWMwZjRiYzQ4MmFmZjE5M2E3MTczZDU3NmMSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkimwJqmAIKVgpUOlJjYnRjLW5ldHdvcms6OjEyMjAxYjE3NDFiNjNlMjQ5NGU0MjE0Y2YwYmVkYzNkNWEyMjRkYTUzYjNiZjRkNzZkYmE0NjhmOGU5N2ViMTU1MDhmClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwMWIxNzQxYjYzZTI0OTRlNDIxNGNmMGJlZGMzZDVhMjI0ZGE1M2IzYmY0ZDc2ZGJhNDY4ZjhlOTdlYjE1NTA4ZgpmCmQ6YkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0KlJjYnRjLW5ldHdvcms6OjEyMjAxYjE3NDFiNjNlMjQ5NGU0MjE0Y2YwYmVkYzNkNWEyMjRkYTUzYjNiZjRkNzZkYmE0NjhmOGU5N2ViMTU1MDhmMmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNDnmBIZo+kEGAEIqCiYKJAgBEiA28r69uEQ4mN310dzSIOTHLYgxmVinL9FuA/XwQLfheRAe",
114
+ },
115
+ // AppRewardConfig
116
+ appRewardConfiguration: {
117
+ contractId: "0054a69e77fdea17d1c56cf3a64991c37dea34b6568c82db2190446221f6584cb5ca1112201ea595d9349c8644d09b751a4e968d784a51868bdde54a224be94736d09c6e67",
118
+ templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
119
+ eventBlob:
120
+ "CgMyLjES9QYKRQBUpp53/eoX0cVs86ZJkcN96jS2VoyC2yGQRGIh9lhMtcoREiAepZXZNJyGRNCbdRpOlo14SlGGi93lSiJL6Uc20JxuZxITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24imwNqmAMKZgpkOmJEaWdpdGFsQXNzZXQtVXRpbGl0eU9wZXJhdG9yOjoxMjIwMjY3OWYyYmJlNTdkOGNiYTllZjNjZWU4NDdhYzgyMzlkZjA4NzcxMDVhYjFmMDFhNzdkNDc0NzdmZGNlMTIwNApWClQ6UmNidGMtbmV0d29yazo6MTIyMDFiMTc0MWI2M2UyNDk0ZTQyMTRjZjBiZWRjM2Q1YTIyNGRhNTNiM2JmNGQ3NmRiYTQ2OGY4ZTk3ZWIxNTUwOGYK1QEK0gFqzwEKTQpLOklEU086OjEyMjBmMjJhOGI4ZjJkODEzYzI1YjlhNjg0ZGM0ZGQ1MmI1MzJhMDE3NGQ4ZTczYTEzY2RmMmJhYWJmZmY3NTE4MzM3Cn4KfGp6CmYKZDpiRGlnaXRhbEFzc2V0LVV0aWxpdHlPcGVyYXRvcjo6MTIyMDI2NzlmMmJiZTU3ZDhjYmE5ZWYzY2VlODQ3YWM4MjM5ZGYwODc3MTA1YWIxZjAxYTc3ZDQ3NDc3ZmRjZTEyMDQKEAoOMgwwLjIwMDAwMDAwMDAqYkRpZ2l0YWxBc3NldC1VdGlsaXR5T3BlcmF0b3I6OjEyMjAyNjc5ZjJiYmU1N2Q4Y2JhOWVmM2NlZTg0N2FjODIzOWRmMDg3NzEwNWFiMWYwMWE3N2Q0NzQ3N2ZkY2UxMjA0MlJjYnRjLW5ldHdvcms6OjEyMjAxYjE3NDFiNjNlMjQ5NGU0MjE0Y2YwYmVkYzNkNWEyMjRkYTUzYjNiZjRkNzZkYmE0NjhmOGU5N2ViMTU1MDhmOU/l4lj6QQYAQioKJgokCAESIPkBCO0qM3jdW2/BdhZa/gKRPonfxLecpHdyC2yeXu3aEB4=",
121
+ },
122
+ },
123
+ // MainNet contracts
124
+ mainnet: {
125
+ synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
126
+ registrar: "cbtc-network::12205af3b949a04776fc48cdcc05a060f6bda2e470632935f375d1049a8546a3b262",
127
+ operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
128
+ provider: "cbtc-network::12205af3b949a04776fc48cdcc05a060f6bda2e470632935f375d1049a8546a3b262",
129
+ registryAPI: "https://api.utilities.digitalasset.com/api/token-standard/v0/registrars/cbtc-network::12205af3b949a04776fc48cdcc05a060f6bda2e470632935f375d1049a8546a3b262/registry",
130
+ instrumentConfiguration: {
131
+ contractId: "00198ff840c58a05f69bf3fa78aacee87dfb1864b586ca0b3ef427a6504bd43dadca1212201be3e457a7ba6bf092979128bcbe46368fdd401a4fd433dafb1b09134a1e690b",
132
+ templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
133
+ eventBlob:
134
+ "CgMyLjESmQwKRQAZj/hAxYoF9pvz+niqzuh9+xhktYbKCz70J6ZQS9Q9rcoSEiAb4+RXp7pr8JKXkSi8vkY2j91AGk/UM9r7GwkTSh5pCxITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiK3CGq0CApsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwNWFmM2I5NDlhMDQ3NzZmYzQ4Y2RjYzA1YTA2MGY2YmRhMmU0NzA2MzI5MzVmMzc1ZDEwNDlhODU0NmEzYjI2MgpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIKhAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKigEKhwFahAEKgQFqfwpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIKCAoGQgRDQlRDChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKBAoCWgAKBAoCWgAK8wMK8ANS7QMK6gNa5wMKcGpuCloKWDpWY2J0Yy1iZW5lZmljaWFyeTo6MTIyMDQwOWE5ZmNjNWZmNjQyMmUyOWFiOTc4YzIyYzAwNGRkZTMzMjAyNTQ2YjRiY2JkZTI0YjI1Yjg1MzUzMzY2YzIKEAoOMgwwLjI1MDAwMDAwMDAKgwFqgAEKbApqOmhGaW5vYUNvbnNlbnN1c1NlcnZpY2VzLXZhbGlkYXRvci0xOjoxMjIwYjgxODJmYTQyZDBjZjY1N2JkYTdmMTI0MzY2YTJjNjAzZDVkZjRhYWZkNzg5YTg4NTQ5ZGM5YTBlMzE5MTI1OQoQCg4yDDAuMjUwMDAwMDAwMApzanEKXQpbOlluZXRoZXJtaW5kLWFuZ2tvci0xOjoxMjIwMWQ5NGVjNGJhOTczYWI1YzUxZTNiNzY5YTZhY2E1NGYwNjFhZmM5NjM2MTlhNGQ2MTA5MDQ0ZWFjY2FmYzdiYQoQCg4yDDAuMjUwMDAwMDAwMAp4anYKYgpgOl5kc3J2LW1haW5uZXRWYWxpZGF0b3ItMDE6OjEyMjBlMmY0YWJlMWM1Y2E3ZTA3NDY0MDM3ZmU3ZmVmYzgzOWI3YjhmZWEyNDk4NWQwZDJhMjc5MGZhNzJlM2MxM2FjChAKDjIMMC4yNTAwMDAwMDAwKlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTmc9gXeakgGAEIqCiYKJAgBEiCzFew8Ty5ImPz2JpD6RroXNwD6O5b5IWJ3xeHBQsW4MRAe",
135
+ },
136
+ allocationFactory: {
137
+ contractId: "00a30be758ed7b5045f82ab37e4037890eb18044e61125854e7391d2de17e602edca1112203c96d5fb70e1cd5856846681484293c5358bc74b0e10d7a8a7a5fa89ce445905",
138
+ templateId: "82798df018301852704f210b97adaabf76d3ecd37d889e1bf96b5f31a20eea34:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
139
+ eventBlob:
140
+ "CgMyLjEShwYKRQCjC+dY7XtQRfgqs35AN4kOsYBE5hElhU5zkdLeF+YC7coREiA8ltX7cOHNWFaEZoFIQpPFNYvHSw4Q16inpfqJzkRZBRIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDgyNzk4ZGYwMTgzMDE4NTI3MDRmMjEwYjk3YWRhYWJmNzZkM2VjZDM3ZDg4OWUxYmY5NmI1ZjMxYTIwZWVhMzQSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3RvcnkioQJqngIKVgpUOlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyClYKVDpSY2J0Yy1uZXR3b3JrOjoxMjIwNWFmM2I5NDlhMDQ3NzZmYzQ4Y2RjYzA1YTA2MGY2YmRhMmU0NzA2MzI5MzVmMzc1ZDEwNDlhODU0NmEzYjI2MgpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlKlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTmmjd2WhT4GAEIqCiYKJAgBEiAmE4gDprYSR3Yqd6tcoPepCoYnxYXkw1UyuRBEypw6YBAe",
141
+ },
142
+ // AppRewardConfig
143
+ appRewardConfiguration: {
144
+ contractId: "005cb47f39ba47615e4aa5dd02b17763cc0eda03087ae6c9ee8e38e82c13462aaeca1112202d25374d3cf2c0a36a8d0710836d4e01a1c5b73473f45b6a81002c5daa8ca0cb",
145
+ templateId: "ed73d5b9ab717333f3dbd122de7be3156f8bf2614a67360c3dd61fc0135133fa:Utility.Registry.V0.Configuration.AppReward:AppRewardConfiguration",
146
+ eventBlob:
147
+ "CgMyLjESigcKRQBctH85ukdhXkql3QKxd2PMDtoDCHrmye6OOOgsE0YqrsoREiAtJTdNPPLAo2qNBxCDbU4BocW3NHP0W2qBACxdqoygyxITdXRpbGl0eS1yZWdpc3RyeS12MBqLAQpAZWQ3M2Q1YjlhYjcxNzMzM2YzZGJkMTIyZGU3YmUzMTU2ZjhiZjI2MTRhNjczNjBjM2RkNjFmYzAxMzUxMzNmYRIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEglBcHBSZXdhcmQaFkFwcFJld2FyZENvbmZpZ3VyYXRpb24iqgNqpwMKbApqOmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZQpWClQ6UmNidGMtbmV0d29yazo6MTIyMDVhZjNiOTQ5YTA0Nzc2ZmM0OGNkY2MwNWEwNjBmNmJkYTJlNDcwNjMyOTM1ZjM3NWQxMDQ5YTg1NDZhM2IyNjIK3gEK2wFq2AEKTQpLOklEU086OjEyMjBiMTQzMWVmMjE3MzQyZGI0NGQ1MTZiYjliZWZkZTgwMmJlN2Q4ODk5NjM3ZDI5MDg5NWZhNTg4ODBmMTlhY2NjCoYBCoMBaoABCmwKajpoYXV0aDBfMDA3YzY3ZGM3YzRhZmJmNWJjMzdmOTgwNWUzMTo6MTIyMDViY2MxMDZlZmEwZWFhN2YxOGRjNDkxZTVjNmY1ZmI5YjBjYzY4ZGMxMTBhZTY2ZjRlZDY0Njc0NzVkN2M3OGUKEAoOMgwwLjIwMDAwMDAwMDAqaGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlMlJjYnRjLW5ldHdvcms6OjEyMjA1YWYzYjk0OWEwNDc3NmZjNDhjZGNjMDVhMDYwZjZiZGEyZTQ3MDYzMjkzNWYzNzVkMTA0OWE4NTQ2YTNiMjYyOSqKuWddQgYAQioKJgokCAESIP6u2ZhXB5fXuwvdDvhv+mn6JPF20D2scQdCh/yRSuNsEB4=",
148
+ },
149
+ },
150
+ },
151
+
152
+ // USDA -- DA-issued stablecoin (utility token, same shape as USDCx)
153
+ USDA: {
154
+ id: "3574b536-cad1-4074-9b64-859398713ba0",
155
+ scheme: RegistrarInternalScheme,
156
+ kind: InstrumentKindUtility,
157
+ disclosureURL: null,
158
+ requireCredentials: false,
159
+ testnet: {
160
+ synchronizerId: "",
161
+ registrar: "",
162
+ operator: "",
163
+ provider: "",
164
+ registryAPI: "",
165
+ instrumentConfiguration: {
166
+ contractId: "",
167
+ templateId: "",
168
+ eventBlob: "",
169
+ },
170
+ allocationFactory: {
171
+ contractId: "",
172
+ templateId: "",
173
+ eventBlob: "",
174
+ },
175
+ appRewardConfiguration: {
176
+ contractId: "",
177
+ templateId: "",
178
+ eventBlob: "",
179
+ },
180
+ },
181
+ mainnet: {
182
+ synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
183
+ registrar: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
184
+ operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
185
+ provider: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
186
+ registryAPI: "https://api.utilities.digitalasset.com/api/token-standard/v0/registrars/party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e/registry",
187
+ instrumentConfiguration: {
188
+ contractId: "007c6c88f88a02bbe6888b3792991b0e11e081b309ab4cc11f2200831a777a9e9eca121220039f9aa8b4a6a4c1db572b9b525058fad421f9824b6a245650f428b70f644c12",
189
+ templateId: "a236e8e22a3b5f199e37d5554e82bafd2df688f901de02b00be3964bdfa8c1ab:Utility.Registry.V0.Configuration.Instrument:InstrumentConfiguration",
190
+ eventBlob:
191
+ "CgMyLjESygkKRQB8bIj4igK75oiLN5KZGw4R4IGzCatMwR8iAIMad3qensoSEiADn5qotKakwdtXK5tSUFj61CH5gktqJFZQ9Ci3D2RMEhITdXRpbGl0eS1yZWdpc3RyeS12MBqNAQpAYTIzNmU4ZTIyYTNiNWYxOTllMzdkNTU1NGU4MmJhZmQyZGY2ODhmOTAxZGUwMmIwMGJlMzk2NGJkZmE4YzFhYhIHVXRpbGl0eRIIUmVnaXN0cnkSAlYwEg1Db25maWd1cmF0aW9uEgpJbnN0cnVtZW50GhdJbnN0cnVtZW50Q29uZmlndXJhdGlvbiLKBWrHBQpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlCnQKcjpwcGFydHktMjhkYzQ1MTYtYjVjYS00NGZmLTg2YzctMjEwN2U5MGE2ODA3OjoxMjIwYjgzMDFlMThhYThhNDAxZDZlMzRlNmMyMGY4YjAyNDMxODNjNTE0MzczYmNhOGYxYjZiOTI3MDI0NjM0MWE5ZQp0CnI6cHBhcnR5LTI4ZGM0NTE2LWI1Y2EtNDRmZi04NmM3LTIxMDdlOTBhNjgwNzo6MTIyMGI4MzAxZTE4YWE4YTQwMWQ2ZTM0ZTZjMjBmOGIwMjQzMTgzYzUxNDM3M2JjYThmMWI2YjkyNzAyNDYzNDFhOWUKwwEKwAFqvQEKdApyOnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllCigKJkIkMzU3NGI1MzYtY2FkMS00MDc0LTliNjQtODU5Mzk4NzEzYmEwChsKGUIXUmVnaXN0cmFySW50ZXJuYWxTY2hlbWUKmAEKlQFakgEKjwFqjAEKdApyOnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllCggKBkIEVVNEQQoKCghCBlRpY2tlcgoECgJaAAoECgJaACpwcGFydHktMjhkYzQ1MTYtYjVjYS00NGZmLTg2YzctMjEwN2U5MGE2ODA3OjoxMjIwYjgzMDFlMThhYThhNDAxZDZlMzRlNmMyMGY4YjAyNDMxODNjNTE0MzczYmNhOGYxYjZiOTI3MDI0NjM0MWE5ZTJoYXV0aDBfMDA3YzY2NDM1MzhmMmVhZGQzZTU3M2RkMDViOTo6MTIyMDViY2MxMDZlZmEwZWFhN2YxOGRjNDkxZTVjNmY1ZmI5YjBjYzY4ZGMxMTBhZTY2ZjRlZDY0Njc0NzVkN2M3OGU5KWaA+FNRBgBCKgomCiQIARIgHk6elwUzf1qka7iWAwMmMiO8d9G8nkxo2vn4fpR6rgkQHg==",
192
+ },
193
+ allocationFactory: {
194
+ contractId: "00f1bdedbfa7fc8b136fa57164cc3d73ec6ae5a9e8c903ba6462629f74f61000ebca1112204927a06b04a9013d29df443e585fe1444393bdd3af841eb379b4c106f80ef7d8",
195
+ templateId: "82798df018301852704f210b97adaabf76d3ecd37d889e1bf96b5f31a20eea34:Utility.Registry.App.V0.Service.AllocationFactory:AllocationFactory",
196
+ eventBlob:
197
+ "CgMyLjES4QYKRQDxve2/p/yLE2+lcWTMPXPsauWp6MkDumRiYp909hAA68oREiBJJ6BrBKkBPSnfRD5YX+FEQ5O906+EHrN5tMEG+A732BIXdXRpbGl0eS1yZWdpc3RyeS1hcHAtdjAajQEKQDgyNzk4ZGYwMTgzMDE4NTI3MDRmMjEwYjk3YWRhYWJmNzZkM2VjZDM3ZDg4OWUxYmY5NmI1ZjMxYTIwZWVhMzQSB1V0aWxpdHkSCFJlZ2lzdHJ5EgNBcHASAlYwEgdTZXJ2aWNlEhFBbGxvY2F0aW9uRmFjdG9yeRoRQWxsb2NhdGlvbkZhY3Rvcnki3QJq2gIKdApyOnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllCnQKcjpwcGFydHktMjhkYzQ1MTYtYjVjYS00NGZmLTg2YzctMjEwN2U5MGE2ODA3OjoxMjIwYjgzMDFlMThhYThhNDAxZDZlMzRlNmMyMGY4YjAyNDMxODNjNTE0MzczYmNhOGYxYjZiOTI3MDI0NjM0MWE5ZQpsCmo6aGF1dGgwXzAwN2M2NjQzNTM4ZjJlYWRkM2U1NzNkZDA1Yjk6OjEyMjA1YmNjMTA2ZWZhMGVhYTdmMThkYzQ5MWU1YzZmNWZiOWIwY2M2OGRjMTEwYWU2NmY0ZWQ2NDY3NDc1ZDdjNzhlKnBwYXJ0eS0yOGRjNDUxNi1iNWNhLTQ0ZmYtODZjNy0yMTA3ZTkwYTY4MDc6OjEyMjBiODMwMWUxOGFhOGE0MDFkNmUzNGU2YzIwZjhiMDI0MzE4M2M1MTQzNzNiY2E4ZjFiNmI5MjcwMjQ2MzQxYTllMmhhdXRoMF8wMDdjNjY0MzUzOGYyZWFkZDNlNTczZGQwNWI5OjoxMjIwNWJjYzEwNmVmYTBlYWE3ZjE4ZGM0OTFlNWM2ZjVmYjliMGNjNjhkYzExMGFlNjZmNGVkNjQ2NzQ3NWQ3Yzc4ZTk20/j3nj4GAEIqCiYKJAgBEiBwfsleVvZIGKs93dGaxalgMoApEPy2uONQ6trRzxPTzhAe",
198
+ },
199
+ appRewardConfiguration: {
200
+ contractId: "",
201
+ templateId: "",
202
+ eventBlob: "",
203
+ },
204
+ },
205
+ },
206
+
207
+ // SBC (Stablecoin) -- used for balance reporting, but not a tradable instrument itself
208
+ SBC: {
209
+ id: "f29bdd7a-1469-498a-ba2a-796bf5387b31",
210
+ scheme: RegistrarInternalScheme,
211
+ kind: InstrumentKindUtility,
212
+ disclosureURL: null,
213
+ requireCredentials: false,
214
+ mainnet: {
215
+ synchronizerId: "global-domain::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc",
216
+ registrar: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
217
+ operator: "auth0_007c6643538f2eadd3e573dd05b9::12205bcc106efa0eaa7f18dc491e5c6f5fb9b0cc68dc110ae66f4ed6467475d7c78e",
218
+ provider: "party-28dc4516-b5ca-44ff-86c7-2107e90a6807::1220b8301e18aa8a401d6e34e6c20f8b0243183c514373bca8f1b6b9270246341a9e",
219
+ },
220
+ },
221
+ };
222
+
223
+ // Reverse lookup: maps on-chain instrument IDs to catalog keys
224
+ // (for instruments where the on-chain ID differs from the catalog key, e.g. UUID -> "SBC")
225
+ export const instrumentIdToSymbol = Object.fromEntries(
226
+ Object.entries(instrumentCatalog)
227
+ .filter(([key, entry]) => entry.id && entry.id !== key)
228
+ .map(([key, entry]) => [entry.id, key]),
229
+ );
230
+
231
+ // Supported trading pairs (like Go's supportedTradingPairs)
232
+ export const supportedTradingPairs = [
233
+ { baseAsset: "Amulet", quoteAsset: "USDCx" },
234
+ { baseAsset: "CBTC", quoteAsset: "USDCx" },
235
+ { baseAsset: "Amulet", quoteAsset: "USDA" },
236
+ { baseAsset: "CBTC", quoteAsset: "USDA" },
237
+ { baseAsset: "USDCx", quoteAsset: "USDA" },
238
+ ];
239
+
240
+ // The supported symbols (pairs) - derived from supportedTradingPairs for backward compatibility
241
+ export const supportedSymbols = supportedTradingPairs.reduce((acc, pair) => {
242
+ acc[`${pair.baseAsset}/${pair.quoteAsset}`] = { base: pair.baseAsset, quote: pair.quoteAsset };
243
+ return acc;
244
+ }, {});
245
+
246
+ // Add CC as an alias for Amulet so users can pass "CC/USDCx" or "CC/USDA"
247
+ supportedSymbols["CC/USDCx"] = supportedSymbols["Amulet/USDCx"];
248
+ supportedSymbols["CC/USDA"] = supportedSymbols["Amulet/USDA"];
249
+
250
+ // Build a case-insensitive alias → canonical-symbol map from the catalog's `aliases` arrays.
251
+ // e.g. instrumentCatalog.Amulet.aliases = ["CC"] → { cc: "Amulet" }
252
+ const aliasToSymbol = Object.entries(instrumentCatalog).reduce((acc, [symbol, entry]) => {
253
+ for (const alias of entry.aliases || []) {
254
+ acc[alias.toLowerCase()] = symbol;
255
+ }
256
+ return acc;
257
+ }, {});
258
+
259
+ /**
260
+ * Normalize asset aliases to their canonical catalog symbol.
261
+ * Aliases come from `instrumentCatalog[<symbol>].aliases`, matched case-insensitively.
262
+ * Works on single symbols (`"cc"` → `"Amulet"`) and pair strings (`"CC/USDCx"` → `"Amulet/USDCx"`).
263
+ */
264
+ export function normalizeAssetId(symbol) {
265
+ if (!symbol || typeof symbol !== "string") return symbol;
266
+ const trimmed = symbol.trim();
267
+ const normalizeOne = (s) => aliasToSymbol[s.toLowerCase()] || s;
268
+ if (trimmed.includes("/")) {
269
+ return trimmed.split("/").map(normalizeOne).join("/");
270
+ }
271
+ return normalizeOne(trimmed);
272
+ }
273
+
274
+ /**
275
+ * Catalog symbol → on-chain instrument id.
276
+ * Use whenever building an `instrumentId.id` field for a ledger choice argument or
277
+ * a Registry API request body — those need the value that lives in Holding contracts,
278
+ * which for USDA/SBC is a UUID rather than the display symbol.
279
+ */
280
+ export function resolveOnChainInstrumentId(symbol) {
281
+ return instrumentCatalog[symbol]?.id || symbol;
282
+ }
283
+