@layerzerolabs/lz-v2-stellar-sdk 0.2.39 → 0.2.41

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 (54) hide show
  1. package/.turbo/turbo-test.log +381 -366
  2. package/dist/generated/bml.d.ts +4 -4
  3. package/dist/generated/bml.js +6 -6
  4. package/dist/generated/counter.d.ts +158 -12
  5. package/dist/generated/counter.js +32 -12
  6. package/dist/generated/dvn.d.ts +4 -6
  7. package/dist/generated/dvn.js +8 -8
  8. package/dist/generated/dvn_fee_lib.d.ts +8 -10
  9. package/dist/generated/dvn_fee_lib.js +8 -8
  10. package/dist/generated/endpoint.d.ts +9 -9
  11. package/dist/generated/endpoint.js +9 -9
  12. package/dist/generated/executor.d.ts +9 -11
  13. package/dist/generated/executor.js +11 -11
  14. package/dist/generated/executor_fee_lib.d.ts +9 -11
  15. package/dist/generated/executor_fee_lib.js +11 -11
  16. package/dist/generated/executor_helper.d.ts +4 -4
  17. package/dist/generated/executor_helper.js +6 -6
  18. package/dist/generated/layerzero_view.d.ts +9 -11
  19. package/dist/generated/layerzero_view.js +11 -11
  20. package/dist/generated/oft.d.ts +194 -27
  21. package/dist/generated/oft.js +44 -22
  22. package/dist/generated/price_feed.d.ts +8 -10
  23. package/dist/generated/price_feed.js +8 -8
  24. package/dist/generated/sac_manager.d.ts +8 -8
  25. package/dist/generated/sac_manager.js +6 -6
  26. package/dist/generated/sml.d.ts +9 -9
  27. package/dist/generated/sml.js +9 -9
  28. package/dist/generated/treasury.d.ts +9 -9
  29. package/dist/generated/treasury.js +9 -9
  30. package/dist/generated/uln302.d.ts +9 -9
  31. package/dist/generated/uln302.js +9 -9
  32. package/dist/generated/upgrader.d.ts +25 -16
  33. package/dist/generated/upgrader.js +5 -5
  34. package/package.json +5 -5
  35. package/src/generated/bml.ts +6 -6
  36. package/src/generated/counter.ts +156 -19
  37. package/src/generated/dvn.ts +8 -10
  38. package/src/generated/dvn_fee_lib.ts +12 -14
  39. package/src/generated/endpoint.ts +13 -13
  40. package/src/generated/executor.ts +15 -17
  41. package/src/generated/executor_fee_lib.ts +15 -17
  42. package/src/generated/executor_helper.ts +6 -6
  43. package/src/generated/layerzero_view.ts +15 -17
  44. package/src/generated/oft.ts +194 -40
  45. package/src/generated/price_feed.ts +12 -14
  46. package/src/generated/sac_manager.ts +10 -10
  47. package/src/generated/sml.ts +13 -13
  48. package/src/generated/treasury.ts +13 -13
  49. package/src/generated/uln302.ts +13 -13
  50. package/src/generated/upgrader.ts +24 -17
  51. package/test/counter-sml.test.ts +20 -0
  52. package/test/counter-uln.test.ts +20 -0
  53. package/test/oft-sml.test.ts +22 -0
  54. package/test/upgrader.test.ts +1 -0
@@ -29,15 +29,15 @@ export * as rpc from '@stellar/stellar-sdk/rpc'
29
29
 
30
30
  /**
31
31
  * Embedded WASM bytecode (base64-encoded)
32
- * Size: 6502 bytes (6.35 KB)
32
+ * Size: 7575 bytes (7.40 KB)
33
33
  */
34
- export const WASM_BASE64 = "AGFzbQEAAAABKghgAX4BfmACfn4BfmAAAX5gA35+fgF+YAJ/fgBgA35+fgBgAABgAX8BfgIxCAFiAV8AAAFiAWoAAQF2AV8AAgFkAV8AAwFhATAAAAFiATgAAAF2AWcAAQF4ATUAAAMKCQEEBQMGBgcFBgUDAQARBiEEfwFBgIDAAAt/AEGAgMAAC38AQYqAwAALfwBBkIDAAAsHSQYGbWVtb3J5AgAHdXBncmFkZQAIE3VwZ3JhZGVfYW5kX21pZ3JhdGUACwFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMK8AQJXAEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAiABEImAgIAAIAIoAgBBAUYNACAAIAIpAwhCAhCAgICAABCKgICAACACQRBqJICAgIAAQgIPCwALQgEBfkIBIQICQCABQv8Bg0LIAFINACABEIWAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMAC5ACAwF/AX4BfyOAgICAAEEQayIDJICAgIAAAkACQCAAQYCAwIAArUIghkIEhEKEgICAoAEQgYCAgAAQgoCAgAAQg4CAgAAiBEICUQ0AIARC/wGDQs0AUQ0BEIyAgIAAAAsQjYCAgAAACyAEEISAgIAAGiADIAE3AwBCAiEEQQEhBQJAA0AgBUUNASAFQX9qIQUgASEEDAALCyADIAQ3AwggAEKO1Knzza3rASADQQhqEI6AgIAAEI+AgIAAIAMgAjcDAEICIQFBASEFAkADQCAFRQ0BIAVBf2ohBSACIQEMAAsLIAMgATcDCCAAQo7UufPN9coBIANBCGoQjoCAgAAQj4CAgAAgA0EQaiSAgICAAAtiAQF/I4CAgIAAQRBrIgMkgICAgAACQCAAQv8Bg0LNAFINACADIAEQiYCAgAAgAygCAEEBRg0AIAJC/wGDQsgAUg0AIAAgAykDCCACEIqAgIAAIANBEGokgICAgABCAg8LAAsJABCQgICAAAALEQBCg4CAgOCFARCHgICAABoLFwAgAK1CIIZCBIRChICAgBAQhoCAgAALIQACQCAAIAEgAhCDgICAAEL/AYNCAlENABCMgICAAAALCwMAAAsLEwEAQYCAwAALCmF1dGhvcml6ZXIAjyoOY29udHJhY3RzcGVjdjAAAAAAAAABEVVwZ3JhZGVzIGEgdGFyZ2V0IGNvbnRyYWN0IHdpdGhvdXQgY3VzdG9tIG1pZ3JhdGlvbiBkYXRhLgoKVGhpcyBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIgdGhhdCBjYWxscyBgdXBncmFkZV9hbmRfbWlncmF0ZWAgd2l0aCBlbXB0eSBtaWdyYXRpb24gZGF0YS4KCiMgQXJndW1lbnRzCiogYGNvbnRyYWN0X2FkZHJlc3NgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IHRvIHVwZ3JhZGUKKiBgd2FzbV9oYXNoYCAtIFRoZSBoYXNoIG9mIHRoZSBuZXcgV0FTTSBieXRlY29kZQAAAAAAAAd1cGdyYWRlAAAAAAIAAAAAAAAAEGNvbnRyYWN0X2FkZHJlc3MAAAATAAAAAAAAAAl3YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAAAAAAAAAACdFVwZ3JhZGVzIGEgdGFyZ2V0IGNvbnRyYWN0IGFuZCBydW5zIGl0cyBtaWdyYXRpb24gaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24uCgpUaGUgY2FsbGVyIG11c3QgYmUgYXV0aG9yaXplZCBhcyB0aGUgYXV0aG9yaXplciBvZiB0aGUgdGFyZ2V0IGNvbnRyYWN0LgpUaGlzIGlzIGVuZm9yY2VkIGJ5IHRoZSB0YXJnZXQgY29udHJhY3QncyBgI1tvbmx5X2F1dGhdYCBjaGVjay4KCiMgQXJndW1lbnRzCiogYGNvbnRyYWN0X2FkZHJlc3NgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IHRvIHVwZ3JhZGUKKiBgd2FzbV9oYXNoYCAtIFRoZSBoYXNoIG9mIHRoZSBuZXcgV0FTTSBieXRlY29kZQoqIGBtaWdyYXRpb25fZGF0YWAgLSBYRFItZW5jb2RlZCBieXRlcyB0byBwYXNzIHRvIHRoZSBtaWdyYXRlIGZ1bmN0aW9uLgpVc2UgYHZhbHVlLnRvX3hkcigmZW52KWAgdG8gZW5jb2RlIHRoZSB0YXJnZXQgY29udHJhY3QncyBNaWdyYXRpb25EYXRhIHR5cGUuCgojIEV4YW1wbGUKYGBgaWdub3JlCmxldCBtaWdyYXRpb25fZGF0YSA9IG15X2RhdGEudG9feGRyKCZlbnYpOwp1cGdyYWRlci51cGdyYWRlX2FuZF9taWdyYXRlKCZjb250cmFjdF9hZGRyLCAmd2FzbV9oYXNoLCAmbWlncmF0aW9uX2RhdGEpOwpgYGAAAAATdXBncmFkZV9hbmRfbWlncmF0ZQAAAAADAAAAAAAAABBjb250cmFjdF9hZGRyZXNzAAAAEwAAAAAAAAAJd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAADm1pZ3JhdGlvbl9kYXRhAAAAAAAOAAAAAAAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABwAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAcAAAAAAAAACkludmFsaWRUdGwAAAAABAgAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECQAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAoAAAAAAAAAC093bmVyTm90U2V0AAAABAsAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAEDAAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAACAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAQAAAAYTXVsdGlTaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aVNpZ0Vycm9yAAAAAAAACQAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABCUAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQmAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJwAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQoAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKQAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQqAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKwAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCwAAAAEAAAAFEF1dGhFcnJvcjogMTA3MC0xMDc5AAAAAAAAAAlBdXRoRXJyb3IAAAAAAAABAAAAAAAAABJBdXRob3JpemVyTm90Rm91bmQAAAAABC4AAAAEAAAAFFJiYWNFcnJvcjogMTA4MC0xMDg5AAAAAAAAAAlSYmFjRXJyb3IAAAAAAAAHAAAAAAAAABFBZG1pblJvbGVOb3RGb3VuZAAAAAAABDgAAAAAAAAAEEluZGV4T3V0T2ZCb3VuZHMAAAQ5AAAAAAAAABBNYXhSb2xlc0V4Y2VlZGVkAAAEOgAAAAAAAAALUm9sZUlzRW1wdHkAAAAEOwAAAAAAAAAMUm9sZU5vdEZvdW5kAAAEPAAAAAAAAAALUm9sZU5vdEhlbGQAAAAEPQAAAAAAAAAMVW5hdXRob3JpemVkAAAEPgAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aVNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAA8RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBjYW5jZWxsZWQuAAAAAAAAABpPd25lcnNoaXBUcmFuc2ZlckNhbmNlbGxlZAAAAAAAAQAAABxvd25lcnNoaXBfdHJhbnNmZXJfY2FuY2VsbGVkAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAAXY2FuY2VsbGVkX3BlbmRpbmdfb3duZXIAAAAAEwAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAAFAAAAJUV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvbGUgaXMgZ3JhbnRlZC4AAAAAAAAAAAAAC1JvbGVHcmFudGVkAAAAAAEAAAAMcm9sZV9ncmFudGVkAAAAAwAAAAAAAAAEcm9sZQAAABEAAAABAAAAAAAAAAdhY2NvdW50AAAAABMAAAABAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAAgAAAAUAAAAlRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm9sZSBpcyByZXZva2VkLgAAAAAAAAAAAAALUm9sZVJldm9rZWQAAAAAAQAAAAxyb2xlX3Jldm9rZWQAAAADAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAAAAAAB2FjY291bnQAAAAAEwAAAAEAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAACAAAABQAAACtFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGFkbWluIGlzIGNoYW5nZWQuAAAAAAAAAAAQUm9sZUFkbWluQ2hhbmdlZAAAAAEAAAAScm9sZV9hZG1pbl9jaGFuZ2VkAAAAAAADAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAAAAAAE3ByZXZpb3VzX2FkbWluX3JvbGUAAAAD6AAAABEAAAAAAAAAAAAAAA5uZXdfYWRtaW5fcm9sZQAAAAAD6AAAABEAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAtSYmFjU3RvcmFnZQAAAAAFAAAAAAAAAAAAAAANRXhpc3RpbmdSb2xlcwAAAAAAAAEAAAAAAAAAElJvbGVJbmRleFRvQWNjb3VudAAAAAAAAgAAABEAAAAEAAAAAQAAAAAAAAASUm9sZUFjY291bnRUb0luZGV4AAAAAAACAAAAEQAAABMAAAABAAAAAAAAABFSb2xlQWNjb3VudHNDb3VudAAAAAAAAAEAAAARAAAAAQAAAAAAAAAJUm9sZUFkbWluAAAAAAAAAQAAABEAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAEAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMS4xIzk0YzJhM2IzYTVkZWQ2YjljZjljZWYwYzIwN2JmODgwNGYzZWIyOTQAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
34
+ export const WASM_BASE64 = "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YCBmb3IgUkJBQy1iYXNlZCB0YXJnZXRzAAAAAAd1cGdyYWRlAAAAAAMAAAAAAAAAEGNvbnRyYWN0X2FkZHJlc3MAAAATAAAAAAAAAAl3YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAAAAAAIb3BlcmF0b3IAAAPoAAAAEwAAAAAAAAAAAAAD8FVwZ3JhZGVzIGEgdGFyZ2V0IGNvbnRyYWN0IGFuZCBydW5zIGl0cyBtaWdyYXRpb24gaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24uCgpDaG9vc2VzIEF1dGgtYmFzZWQgb3IgUkJBQy1iYXNlZCBmbG93IGZyb20gYG9wZXJhdG9yYDoKLSAqKmBTb21lKG9wZXJhdG9yKWAqKjogUkJBQyBmbG93LiBgb3BlcmF0b3JgIG11c3Qgc2lnbiB0aGUgdHJhbnNhY3Rpb24gYW5kIG11c3QgaGF2ZQpgVVBHUkFERVJfUk9MRWAgb24gdGhlIHRhcmdldC4gVGhlIHRhcmdldCBtdXN0IGltcGxlbWVudCBbYFVwZ3JhZGVhYmxlUmJhY2BdKHV0aWxzOjp1cGdyYWRlYWJsZTo6VXBncmFkZWFibGVSYmFjKS4KLSAqKmBOb25lYCoqOiBBdXRoIGZsb3cuIFRoZSB0YXJnZXTigJlzIGF1dGhvcml6ZXIgbXVzdCBzaWduIHRoZSB0cmFuc2FjdGlvbi4gVGhlIHRhcmdldAptdXN0IGltcGxlbWVudCBbYFVwZ3JhZGVhYmxlYF0odXRpbHM6OnVwZ3JhZGVhYmxlOjpVcGdyYWRlYWJsZSkuCgojIEFyZ3VtZW50cwoqIGBjb250cmFjdF9hZGRyZXNzYCAtIEFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IHRvIHVwZ3JhZGUuCiogYHdhc21faGFzaGAgLSBIYXNoIG9mIHRoZSBuZXcgV0FTTSBieXRlY29kZS4KKiBgbWlncmF0aW9uX2RhdGFgIC0gWERSLWVuY29kZWQgbWlncmF0aW9uIHBheWxvYWQuIFVzZSBgdmFsdWUudG9feGRyKCZlbnYpYCBmb3IgdGhlCnRhcmdldCBjb250cmFjdOKAmXMgYE1pZ3JhdGlvbkRhdGFgIHR5cGU7IHVzZSBgKCkudG9feGRyKCZlbnYpYCBmb3Igbm8gY3VzdG9tIGRhdGEuCiogYG9wZXJhdG9yYCAtIGBOb25lYCBmb3IgQXV0aC1iYXNlZCB0YXJnZXQ7IGBTb21lKG9wZXJhdG9yKWAgZm9yIFJCQUMtYmFzZWQgdGFyZ2V0LgoKIyBFeGFtcGxlCmBgYGlnbm9yZQpsZXQgbWlncmF0aW9uX2RhdGEgPSBteV9kYXRhLnRvX3hkcigmZW52KTsKdXBncmFkZXIudXBncmFkZV9hbmRfbWlncmF0ZSgmY29udHJhY3RfYWRkciwgJndhc21faGFzaCwgJm1pZ3JhdGlvbl9kYXRhLCAmTm9uZSk7CmBgYAAAABN1cGdyYWRlX2FuZF9taWdyYXRlAAAAAAQAAAAAAAAAEGNvbnRyYWN0X2FkZHJlc3MAAAATAAAAAAAAAAl3YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAACG9wZXJhdG9yAAAD6AAAABMAAAAAAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAHAAAAAAAAABFJbnZhbGlkQXV0aG9yaXplcgAAAAAABAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBwAAAAAAAAAKSW52YWxpZFR0bAAAAAAECAAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQJAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECgAAAAAAAAALT3duZXJOb3RTZXQAAAAECwAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQMAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAIAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELAAAAAQAAAAUQXV0aEVycm9yOiAxMDcwLTEwNzkAAAAAAAAACUF1dGhFcnJvcgAAAAAAAAEAAAAAAAAAEkF1dGhvcml6ZXJOb3RGb3VuZAAAAAAELgAAAAQAAAAUUmJhY0Vycm9yOiAxMDgwLTEwODkAAAAAAAAACVJiYWNFcnJvcgAAAAAAAAcAAAAAAAAAEUFkbWluUm9sZU5vdEZvdW5kAAAAAAAEOAAAAAAAAAAQSW5kZXhPdXRPZkJvdW5kcwAABDkAAAAAAAAAEE1heFJvbGVzRXhjZWVkZWQAAAQ6AAAAAAAAAAtSb2xlSXNFbXB0eQAAAAQ7AAAAAAAAAAxSb2xlTm90Rm91bmQAAAQ8AAAAAAAAAAtSb2xlTm90SGVsZAAAAAQ9AAAAAAAAAAxVbmF1dGhvcml6ZWQAAAQ+AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAUAAAAlRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm9sZSBpcyBncmFudGVkLgAAAAAAAAAAAAALUm9sZUdyYW50ZWQAAAAAAQAAAAxyb2xlX2dyYW50ZWQAAAADAAAAAAAAAARyb2xlAAAAEQAAAAEAAAAAAAAAB2FjY291bnQAAAAAEwAAAAEAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAACAAAABQAAACVFdmVudCBlbWl0dGVkIHdoZW4gYSByb2xlIGlzIHJldm9rZWQuAAAAAAAAAAAAAAtSb2xlUmV2b2tlZAAAAAABAAAADHJvbGVfcmV2b2tlZAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAAHYWNjb3VudAAAAAATAAAAAQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAIAAAAFAAAAK0V2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvbGUgYWRtaW4gaXMgY2hhbmdlZC4AAAAAAAAAABBSb2xlQWRtaW5DaGFuZ2VkAAAAAQAAABJyb2xlX2FkbWluX2NoYW5nZWQAAAAAAAMAAAAAAAAABHJvbGUAAAARAAAAAQAAAAAAAAATcHJldmlvdXNfYWRtaW5fcm9sZQAAAAPoAAAAEQAAAAAAAAAAAAAADm5ld19hZG1pbl9yb2xlAAAAAAPoAAAAEQAAAAAAAAACAAAAAgAAAAAAAAAAAAAAC1JiYWNTdG9yYWdlAAAAAAUAAAAAAAAAAAAAAA1FeGlzdGluZ1JvbGVzAAAAAAAAAQAAAAAAAAASUm9sZUluZGV4VG9BY2NvdW50AAAAAAACAAAAEQAAAAQAAAABAAAAAAAAABJSb2xlQWNjb3VudFRvSW5kZXgAAAAAAAIAAAARAAAAEwAAAAEAAAAAAAAAEVJvbGVBY2NvdW50c0NvdW50AAAAAAAAAQAAABEAAAABAAAAAAAAAAlSb2xlQWRtaW4AAAAAAAABAAAAEQAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAQAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABkAAAAAAG8OY29udHJhY3RtZXRhdjAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4xLjEjOTRjMmEzYjNhNWRlZDZiOWNmOWNlZjBjMjA3YmY4ODA0ZjNlYjI5NAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMS4wI2EwNDhhNTdhNzU3NjI0NThiNDg3MDUyZTAwMjFlYTcwNGE5MjZiZWUA";
35
35
 
36
36
  /**
37
37
  * Pre-computed WASM hash (SHA-256)
38
38
  * Use this when the WASM is already uploaded on-chain
39
39
  */
40
- export const WASM_HASH = "d97a7d611b07c5c0767dd1d785faea2ba1f3b20086ff6f7ea21afa837d48345b";
40
+ export const WASM_HASH = "7796fed7be887c8f281a3c6e043203c0597969b65d23d5c1f9d767b62dfba062";
41
41
 
42
42
  /**
43
43
  * Get the WASM bytecode as a Buffer
@@ -175,34 +175,41 @@ export interface Client {
175
175
  * Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
176
176
  * Upgrades a target contract without custom migration data.
177
177
  *
178
- * This is a convenience wrapper that calls `upgrade_and_migrate` with empty migration data.
178
+ * Convenience wrapper around [`upgrade_and_migrate`](Self::upgrade_and_migrate) that
179
+ * passes empty migration data (XDR encoding of `()`). Use only when the target’s
180
+ * `MigrationData` is `()` or it supports empty migration.
179
181
  *
180
182
  * # Arguments
181
- * * `contract_address` - The address of the contract to upgrade
182
- * * `wasm_hash` - The hash of the new WASM bytecode
183
+ * * `contract_address` - Address of the contract to upgrade.
184
+ * * `wasm_hash` - Hash of the new WASM bytecode.
185
+ * * `operator` - `None` for Auth-based targets; `Some(addr)` for RBAC-based targets
183
186
  */
184
- upgrade: ({contract_address, wasm_hash}: {contract_address: string, wasm_hash: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>
187
+ upgrade: ({contract_address, wasm_hash, operator}: {contract_address: string, wasm_hash: Buffer, operator: Option<string>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>
185
188
 
186
189
  /**
187
190
  * Construct and simulate a upgrade_and_migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
188
191
  * Upgrades a target contract and runs its migration in a single transaction.
189
192
  *
190
- * The caller must be authorized as the authorizer of the target contract.
191
- * This is enforced by the target contract's `#[only_auth]` check.
193
+ * Chooses Auth-based or RBAC-based flow from `operator`:
194
+ * - **`Some(operator)`**: RBAC flow. `operator` must sign the transaction and must have
195
+ * `UPGRADER_ROLE` on the target. The target must implement [`UpgradeableRbac`](utils::upgradeable::UpgradeableRbac).
196
+ * - **`None`**: Auth flow. The target’s authorizer must sign the transaction. The target
197
+ * must implement [`Upgradeable`](utils::upgradeable::Upgradeable).
192
198
  *
193
199
  * # Arguments
194
- * * `contract_address` - The address of the contract to upgrade
195
- * * `wasm_hash` - The hash of the new WASM bytecode
196
- * * `migration_data` - XDR-encoded bytes to pass to the migrate function.
197
- * Use `value.to_xdr(&env)` to encode the target contract's MigrationData type.
200
+ * * `contract_address` - Address of the contract to upgrade.
201
+ * * `wasm_hash` - Hash of the new WASM bytecode.
202
+ * * `migration_data` - XDR-encoded migration payload. Use `value.to_xdr(&env)` for the
203
+ * target contract’s `MigrationData` type; use `().to_xdr(&env)` for no custom data.
204
+ * * `operator` - `None` for Auth-based target; `Some(operator)` for RBAC-based target.
198
205
  *
199
206
  * # Example
200
207
  * ```ignore
201
208
  * let migration_data = my_data.to_xdr(&env);
202
- * upgrader.upgrade_and_migrate(&contract_addr, &wasm_hash, &migration_data);
209
+ * upgrader.upgrade_and_migrate(&contract_addr, &wasm_hash, &migration_data, &None);
203
210
  * ```
204
211
  */
205
- upgrade_and_migrate: ({contract_address, wasm_hash, migration_data}: {contract_address: string, wasm_hash: Buffer, migration_data: Buffer}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>
212
+ upgrade_and_migrate: ({contract_address, wasm_hash, migration_data, operator}: {contract_address: string, wasm_hash: Buffer, migration_data: Buffer, operator: Option<string>}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>
206
213
 
207
214
  }
208
215
  export class Client extends ContractClient {
@@ -222,8 +229,8 @@ export class Client extends ContractClient {
222
229
  }
223
230
  constructor(public readonly options: ContractClientOptions) {
224
231
  super(
225
- new ContractSpec([ "AAAAAAAAARFVcGdyYWRlcyBhIHRhcmdldCBjb250cmFjdCB3aXRob3V0IGN1c3RvbSBtaWdyYXRpb24gZGF0YS4KClRoaXMgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyIHRoYXQgY2FsbHMgYHVwZ3JhZGVfYW5kX21pZ3JhdGVgIHdpdGggZW1wdHkgbWlncmF0aW9uIGRhdGEuCgojIEFyZ3VtZW50cwoqIGBjb250cmFjdF9hZGRyZXNzYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byB1cGdyYWRlCiogYHdhc21faGFzaGAgLSBUaGUgaGFzaCBvZiB0aGUgbmV3IFdBU00gYnl0ZWNvZGUAAAAAAAAHdXBncmFkZQAAAAACAAAAAAAAABBjb250cmFjdF9hZGRyZXNzAAAAEwAAAAAAAAAJd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAA",
226
- "AAAAAAAAAnRVcGdyYWRlcyBhIHRhcmdldCBjb250cmFjdCBhbmQgcnVucyBpdHMgbWlncmF0aW9uIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLgoKVGhlIGNhbGxlciBtdXN0IGJlIGF1dGhvcml6ZWQgYXMgdGhlIGF1dGhvcml6ZXIgb2YgdGhlIHRhcmdldCBjb250cmFjdC4KVGhpcyBpcyBlbmZvcmNlZCBieSB0aGUgdGFyZ2V0IGNvbnRyYWN0J3MgYCNbb25seV9hdXRoXWAgY2hlY2suCgojIEFyZ3VtZW50cwoqIGBjb250cmFjdF9hZGRyZXNzYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byB1cGdyYWRlCiogYHdhc21faGFzaGAgLSBUaGUgaGFzaCBvZiB0aGUgbmV3IFdBU00gYnl0ZWNvZGUKKiBgbWlncmF0aW9uX2RhdGFgIC0gWERSLWVuY29kZWQgYnl0ZXMgdG8gcGFzcyB0byB0aGUgbWlncmF0ZSBmdW5jdGlvbi4KVXNlIGB2YWx1ZS50b194ZHIoJmVudilgIHRvIGVuY29kZSB0aGUgdGFyZ2V0IGNvbnRyYWN0J3MgTWlncmF0aW9uRGF0YSB0eXBlLgoKIyBFeGFtcGxlCmBgYGlnbm9yZQpsZXQgbWlncmF0aW9uX2RhdGEgPSBteV9kYXRhLnRvX3hkcigmZW52KTsKdXBncmFkZXIudXBncmFkZV9hbmRfbWlncmF0ZSgmY29udHJhY3RfYWRkciwgJndhc21faGFzaCwgJm1pZ3JhdGlvbl9kYXRhKTsKYGBgAAAAE3VwZ3JhZGVfYW5kX21pZ3JhdGUAAAAAAwAAAAAAAAAQY29udHJhY3RfYWRkcmVzcwAAABMAAAAAAAAACXdhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAA=",
232
+ new ContractSpec([ "AAAAAAAAAd9VcGdyYWRlcyBhIHRhcmdldCBjb250cmFjdCB3aXRob3V0IGN1c3RvbSBtaWdyYXRpb24gZGF0YS4KCkNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIFtgdXBncmFkZV9hbmRfbWlncmF0ZWBdKFNlbGY6OnVwZ3JhZGVfYW5kX21pZ3JhdGUpIHRoYXQKcGFzc2VzIGVtcHR5IG1pZ3JhdGlvbiBkYXRhIChYRFIgZW5jb2Rpbmcgb2YgYCgpYCkuIFVzZSBvbmx5IHdoZW4gdGhlIHRhcmdldOKAmXMKYE1pZ3JhdGlvbkRhdGFgIGlzIGAoKWAgb3IgaXQgc3VwcG9ydHMgZW1wdHkgbWlncmF0aW9uLgoKIyBBcmd1bWVudHMKKiBgY29udHJhY3RfYWRkcmVzc2AgLSBBZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byB1cGdyYWRlLgoqIGB3YXNtX2hhc2hgIC0gSGFzaCBvZiB0aGUgbmV3IFdBU00gYnl0ZWNvZGUuCiogYG9wZXJhdG9yYCAtIGBOb25lYCBmb3IgQXV0aC1iYXNlZCB0YXJnZXRzOyBgU29tZShhZGRyKWAgZm9yIFJCQUMtYmFzZWQgdGFyZ2V0cwAAAAAHdXBncmFkZQAAAAADAAAAAAAAABBjb250cmFjdF9hZGRyZXNzAAAAEwAAAAAAAAAJd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAACG9wZXJhdG9yAAAD6AAAABMAAAAA",
233
+ "AAAAAAAAA/BVcGdyYWRlcyBhIHRhcmdldCBjb250cmFjdCBhbmQgcnVucyBpdHMgbWlncmF0aW9uIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLgoKQ2hvb3NlcyBBdXRoLWJhc2VkIG9yIFJCQUMtYmFzZWQgZmxvdyBmcm9tIGBvcGVyYXRvcmA6Ci0gKipgU29tZShvcGVyYXRvcilgKio6IFJCQUMgZmxvdy4gYG9wZXJhdG9yYCBtdXN0IHNpZ24gdGhlIHRyYW5zYWN0aW9uIGFuZCBtdXN0IGhhdmUKYFVQR1JBREVSX1JPTEVgIG9uIHRoZSB0YXJnZXQuIFRoZSB0YXJnZXQgbXVzdCBpbXBsZW1lbnQgW2BVcGdyYWRlYWJsZVJiYWNgXSh1dGlsczo6dXBncmFkZWFibGU6OlVwZ3JhZGVhYmxlUmJhYykuCi0gKipgTm9uZWAqKjogQXV0aCBmbG93LiBUaGUgdGFyZ2V04oCZcyBhdXRob3JpemVyIG11c3Qgc2lnbiB0aGUgdHJhbnNhY3Rpb24uIFRoZSB0YXJnZXQKbXVzdCBpbXBsZW1lbnQgW2BVcGdyYWRlYWJsZWBdKHV0aWxzOjp1cGdyYWRlYWJsZTo6VXBncmFkZWFibGUpLgoKIyBBcmd1bWVudHMKKiBgY29udHJhY3RfYWRkcmVzc2AgLSBBZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byB1cGdyYWRlLgoqIGB3YXNtX2hhc2hgIC0gSGFzaCBvZiB0aGUgbmV3IFdBU00gYnl0ZWNvZGUuCiogYG1pZ3JhdGlvbl9kYXRhYCAtIFhEUi1lbmNvZGVkIG1pZ3JhdGlvbiBwYXlsb2FkLiBVc2UgYHZhbHVlLnRvX3hkcigmZW52KWAgZm9yIHRoZQp0YXJnZXQgY29udHJhY3TigJlzIGBNaWdyYXRpb25EYXRhYCB0eXBlOyB1c2UgYCgpLnRvX3hkcigmZW52KWAgZm9yIG5vIGN1c3RvbSBkYXRhLgoqIGBvcGVyYXRvcmAgLSBgTm9uZWAgZm9yIEF1dGgtYmFzZWQgdGFyZ2V0OyBgU29tZShvcGVyYXRvcilgIGZvciBSQkFDLWJhc2VkIHRhcmdldC4KCiMgRXhhbXBsZQpgYGBpZ25vcmUKbGV0IG1pZ3JhdGlvbl9kYXRhID0gbXlfZGF0YS50b194ZHIoJmVudik7CnVwZ3JhZGVyLnVwZ3JhZGVfYW5kX21pZ3JhdGUoJmNvbnRyYWN0X2FkZHIsICZ3YXNtX2hhc2gsICZtaWdyYXRpb25fZGF0YSwgJk5vbmUpOwpgYGAAAAATdXBncmFkZV9hbmRfbWlncmF0ZQAAAAAEAAAAAAAAABBjb250cmFjdF9hZGRyZXNzAAAAEwAAAAAAAAAJd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAADm1pZ3JhdGlvbl9kYXRhAAAAAAAOAAAAAAAAAAhvcGVyYXRvcgAAA+gAAAATAAAAAA==",
227
234
  "AAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPp",
228
235
  "AAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/I=",
229
236
  "AAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4=",
@@ -188,12 +188,31 @@ describe('Counter Cross-Chain Testing (SML)', async () => {
188
188
  console.log('✅ Counter B receive library set to SML for EID_A');
189
189
  });
190
190
 
191
+ it('Grant OAPP_ADMIN_ROLE to DEFAULT_DEPLOYER (required for set_peer)', async () => {
192
+ const assembledTxA = await counterClientA.grant_role({
193
+ account: DEFAULT_DEPLOYER.publicKey(),
194
+ role: 'OAPP_ADMIN_ROLE',
195
+ caller: DEFAULT_DEPLOYER.publicKey(),
196
+ });
197
+ await assembledTxA.signAndSend();
198
+
199
+ const assembledTxB = await counterClientB.grant_role({
200
+ account: DEFAULT_DEPLOYER.publicKey(),
201
+ role: 'OAPP_ADMIN_ROLE',
202
+ caller: DEFAULT_DEPLOYER.publicKey(),
203
+ });
204
+ await assembledTxB.signAndSend();
205
+
206
+ console.log('✅ OAPP_ADMIN_ROLE granted to DEFAULT_DEPLOYER on both Counters');
207
+ });
208
+
191
209
  it('Set Counter A Peer to Counter B', async () => {
192
210
  const peerBBytes = StrKey.decodeContract(counterBAddress);
193
211
 
194
212
  const assembledTx = await counterClientA.set_peer({
195
213
  eid: EID_B,
196
214
  peer: Buffer.from(peerBBytes),
215
+ operator: DEFAULT_DEPLOYER.publicKey(),
197
216
  });
198
217
  await assembledTx.signAndSend();
199
218
 
@@ -210,6 +229,7 @@ describe('Counter Cross-Chain Testing (SML)', async () => {
210
229
  const assembledTx = await counterClientB.set_peer({
211
230
  eid: EID_A,
212
231
  peer: Buffer.from(peerABytes),
232
+ operator: DEFAULT_DEPLOYER.publicKey(),
213
233
  });
214
234
  await assembledTx.signAndSend();
215
235
 
@@ -121,12 +121,31 @@ describe('Counter Cross-Chain Testing (ULN302)', async () => {
121
121
  console.log('✅ Counter B deployed on Chain B:', counterBAddress);
122
122
  });
123
123
 
124
+ it('Grant OAPP_ADMIN_ROLE to DEFAULT_DEPLOYER (required for set_peer)', async () => {
125
+ const assembledTxA = await counterClientA.grant_role({
126
+ account: DEFAULT_DEPLOYER.publicKey(),
127
+ role: 'OAPP_ADMIN_ROLE',
128
+ caller: DEFAULT_DEPLOYER.publicKey(),
129
+ });
130
+ await assembledTxA.signAndSend();
131
+
132
+ const assembledTxB = await counterClientB.grant_role({
133
+ account: DEFAULT_DEPLOYER.publicKey(),
134
+ role: 'OAPP_ADMIN_ROLE',
135
+ caller: DEFAULT_DEPLOYER.publicKey(),
136
+ });
137
+ await assembledTxB.signAndSend();
138
+
139
+ console.log('✅ OAPP_ADMIN_ROLE granted to DEFAULT_DEPLOYER on both Counters');
140
+ });
141
+
124
142
  it('Set Counter A Peer to Counter B', async () => {
125
143
  const peerBBytes = StrKey.decodeContract(counterBAddress);
126
144
 
127
145
  const assembledTx = await counterClientA.set_peer({
128
146
  eid: EID_B,
129
147
  peer: Buffer.from(peerBBytes),
148
+ operator: DEFAULT_DEPLOYER.publicKey(),
130
149
  });
131
150
  await assembledTx.signAndSend();
132
151
 
@@ -143,6 +162,7 @@ describe('Counter Cross-Chain Testing (ULN302)', async () => {
143
162
  const assembledTx = await counterClientB.set_peer({
144
163
  eid: EID_A,
145
164
  peer: Buffer.from(peerABytes),
165
+ operator: DEFAULT_DEPLOYER.publicKey(),
146
166
  });
147
167
  await assembledTx.signAndSend();
148
168
 
@@ -346,12 +346,33 @@ describe('OFT Cross-Chain E2E Testing with SAC (SML)', async () => {
346
346
  console.log('✅ Mint/Burn OFT (Chain B) receive library set to SML for EID_A');
347
347
  });
348
348
 
349
+ it('Grant OAPP_ADMIN_ROLE to DEFAULT_DEPLOYER (required for set_peer)', async () => {
350
+ // OFT's `set_peer` is protected by `#[only_role(operator, OAPP_ADMIN_ROLE)]`
351
+ // so we must grant that role to the operator before wiring peers.
352
+ const assembledTxA = await lockUnlockOftClient.grant_role({
353
+ account: DEFAULT_DEPLOYER.publicKey(),
354
+ role: 'OAPP_ADMIN_ROLE',
355
+ caller: DEFAULT_DEPLOYER.publicKey(),
356
+ });
357
+ await assembledTxA.signAndSend();
358
+
359
+ const assembledTxB = await mintBurnOftClient.grant_role({
360
+ account: DEFAULT_DEPLOYER.publicKey(),
361
+ role: 'OAPP_ADMIN_ROLE',
362
+ caller: DEFAULT_DEPLOYER.publicKey(),
363
+ });
364
+ await assembledTxB.signAndSend();
365
+
366
+ console.log('✅ OAPP_ADMIN_ROLE granted to DEFAULT_DEPLOYER on both OFTs');
367
+ });
368
+
349
369
  it('Set Lock/Unlock OFT (Chain A) Peer to Mint/Burn OFT (Chain B)', async () => {
350
370
  const mintBurnPeerBytes = StrKey.decodeContract(mintBurnOftAddress);
351
371
 
352
372
  const assembledTx = await lockUnlockOftClient.set_peer({
353
373
  eid: EID_B,
354
374
  peer: Buffer.from(mintBurnPeerBytes),
375
+ operator: DEFAULT_DEPLOYER.publicKey(),
355
376
  });
356
377
  await assembledTx.signAndSend();
357
378
 
@@ -368,6 +389,7 @@ describe('OFT Cross-Chain E2E Testing with SAC (SML)', async () => {
368
389
  const assembledTx = await mintBurnOftClient.set_peer({
369
390
  eid: EID_A,
370
391
  peer: Buffer.from(lockUnlockPeerBytes),
392
+ operator: DEFAULT_DEPLOYER.publicKey(),
371
393
  });
372
394
  await assembledTx.signAndSend();
373
395
 
@@ -120,6 +120,7 @@ describe('Upgrader Contract Testing', async () => {
120
120
  contract_address: testContractAddress,
121
121
  wasm_hash: Buffer.from(newWasmHash, 'hex'),
122
122
  migration_data: xdr.ScVal.scvVoid().toXDR(),
123
+ operator: undefined,
123
124
  });
124
125
 
125
126
  await signDvnAuthEntries(