@aeternity/aepp-sdk 10.0.0-beta.1 → 10.0.0

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 (113) hide show
  1. package/CHANGELOG.md +1603 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +1 -1
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/account/base.js +3 -1
  9. package/es/account/base.js.map +1 -1
  10. package/es/account/multiple.js +4 -2
  11. package/es/account/multiple.js.map +1 -1
  12. package/es/ae/aens.js +52 -38
  13. package/es/ae/aens.js.map +1 -1
  14. package/es/ae/contract.js +9 -5
  15. package/es/ae/contract.js.map +1 -1
  16. package/es/ae/index.js +4 -3
  17. package/es/ae/index.js.map +1 -1
  18. package/es/ae/oracle.js +4 -4
  19. package/es/ae/oracle.js.map +1 -1
  20. package/es/ae/universal.js.map +1 -1
  21. package/es/chain/index.js +8 -4
  22. package/es/chain/index.js.map +1 -1
  23. package/es/chain/node.js +15 -20
  24. package/es/chain/node.js.map +1 -1
  25. package/es/channel/handlers.js.map +1 -1
  26. package/es/channel/index.js +35 -14
  27. package/es/channel/index.js.map +1 -1
  28. package/es/contract/aci/index.js +12 -7
  29. package/es/contract/aci/index.js.map +1 -1
  30. package/es/contract/compiler.js +3 -1
  31. package/es/contract/compiler.js.map +1 -1
  32. package/es/contract/ga/helpers.js +6 -6
  33. package/es/contract/ga/helpers.js.map +1 -1
  34. package/es/contract/ga/index.js +6 -2
  35. package/es/contract/ga/index.js.map +1 -1
  36. package/es/contract/index.js +6 -2
  37. package/es/contract/index.js.map +1 -1
  38. package/es/index.js +1 -0
  39. package/es/index.js.map +1 -1
  40. package/es/node-pool/index.js +4 -2
  41. package/es/node-pool/index.js.map +1 -1
  42. package/es/node.js +9 -4
  43. package/es/node.js.map +1 -1
  44. package/es/tx/builder/helpers.js +20 -33
  45. package/es/tx/builder/helpers.js.map +1 -1
  46. package/es/tx/builder/index.js +13 -6
  47. package/es/tx/builder/index.js.map +1 -1
  48. package/es/tx/builder/schema.js +5 -4
  49. package/es/tx/builder/schema.js.map +1 -1
  50. package/es/tx/index.js +101 -12
  51. package/es/tx/index.js.map +1 -1
  52. package/es/tx/tx-object.js +9 -3
  53. package/es/tx/tx-object.js.map +1 -1
  54. package/es/tx/tx.js.map +1 -1
  55. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
  56. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  57. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +15 -6
  58. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  59. package/es/utils/aepp-wallet-communication/connection/index.js +2 -1
  60. package/es/utils/aepp-wallet-communication/connection/index.js.map +1 -1
  61. package/es/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
  62. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  63. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  64. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +13 -5
  65. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  66. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
  67. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  68. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +57 -40
  69. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  70. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  71. package/es/utils/crypto.js +1 -40
  72. package/es/utils/crypto.js.map +1 -1
  73. package/es/utils/keystore.js.map +1 -1
  74. package/es/utils/swagger.js +3 -1
  75. package/es/utils/swagger.js.map +1 -1
  76. package/package.json +11 -13
  77. package/src/account/base.js +3 -1
  78. package/src/account/multiple.js +4 -2
  79. package/src/ae/aens.js +41 -42
  80. package/src/ae/contract.js +9 -5
  81. package/src/ae/index.js +4 -3
  82. package/src/ae/oracle.js +9 -5
  83. package/src/ae/universal.js +3 -1
  84. package/src/chain/index.js +8 -4
  85. package/src/chain/node.js +17 -14
  86. package/src/channel/handlers.js +10 -3
  87. package/src/channel/index.js +40 -15
  88. package/src/contract/aci/index.js +15 -8
  89. package/src/contract/compiler.js +6 -2
  90. package/src/contract/ga/helpers.js +5 -3
  91. package/src/contract/ga/index.js +6 -2
  92. package/src/contract/index.js +6 -2
  93. package/src/index.js +2 -0
  94. package/src/node-pool/index.js +4 -2
  95. package/src/node.js +7 -4
  96. package/src/tx/builder/helpers.js +20 -33
  97. package/src/tx/builder/index.js +49 -13
  98. package/src/tx/builder/schema.js +37 -14
  99. package/src/tx/index.js +101 -12
  100. package/src/tx/tx-object.js +25 -6
  101. package/src/tx/tx.js +94 -28
  102. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
  103. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +25 -7
  104. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  105. package/src/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
  106. package/src/utils/aepp-wallet-communication/helpers.js +4 -2
  107. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +32 -9
  108. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
  109. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +53 -22
  110. package/src/utils/aepp-wallet-communication/wallet-detector.js +4 -1
  111. package/src/utils/crypto.js +1 -52
  112. package/src/utils/keystore.js +10 -2
  113. package/src/utils/swagger.js +1 -1
package/dist/aepp-sdk.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@stamp/it"),require("@stamp/required"),require("bignumber.js"),require("bs58check"),require("ed2curve"),require("tweetnacl"),require("aes-js"),require("sha.js"),require("blakejs"),require("rlp"),require("swagger-client"),require("cross-fetch"),require("@aeternity/json-bigint"),require("uuid"),require("@aeternity/aepp-calldata"),require("websocket"),require("events"),require("libsodium-wrappers-sumo"),require("tweetnacl-auth"),require("bip32-path"),require("@aeternity/bip39")):"function"==typeof define&&define.amd?define([,,,,,,,,,,,,,,,,,,,,],t):"object"==typeof exports?exports.Ae=t(require("@stamp/it"),require("@stamp/required"),require("bignumber.js"),require("bs58check"),require("ed2curve"),require("tweetnacl"),require("aes-js"),require("sha.js"),require("blakejs"),require("rlp"),require("swagger-client"),require("cross-fetch"),require("@aeternity/json-bigint"),require("uuid"),require("@aeternity/aepp-calldata"),require("websocket"),require("events"),require("libsodium-wrappers-sumo"),require("tweetnacl-auth"),require("bip32-path"),require("@aeternity/bip39")):e.Ae=t(e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0])}(global,(function(e,t,n,r,a,o,s,i,c,l,d,u,h,p,f,m,g,y,w,b,v){return(()=>{var x={3007:e=>{e.exports=function(){return!0}},4115:(e,t,n)=>{var r=n(6224)((function(e){return function(){return e}}));e.exports=r},3195:(e,t,n)=>{var r=n(7455),a=n(9002)((function(e,t){return r(e.length,(function(){return e.apply(t,arguments)}))}));e.exports=a},7794:(e,t,n)=>{var r=n(7455),a=n(6224),o=n(1894),s=n(1186),i=n(793),c=a((function(e){var t=i(s,0,o((function(e){return e[0].length}),e));return r(t,(function(){for(var t=0;t<e.length;){if(e[t][0].apply(this,arguments))return e[t][1].apply(this,arguments);t+=1}}))}));e.exports=c},2220:(e,t,n)=>{var r=n(7455),a=n(6224),o=n(9002),s=n(2738),i=o((function(e,t){return 1===e?a(t):r(e,s(e,[],t))}));e.exports=i},2892:(e,t,n)=>{var r=n(9002)((function(e,t){return null==t||t!=t?e:t}));e.exports=r},1481:(e,t,n)=>{var r=n(9002),a=n(4023),o=r((function(e,t){return a(e,t,[],[])}));e.exports=o},1383:(e,t,n)=>{var r=n(9002),a=n(4793),o=n(4877),s=n(8291),i=n(9488),c=n(123),l=n(368),d=r(a(["filter"],c,(function(e,t){return s(t)?i((function(n,r){return e(t[r])&&(n[r]=t[r]),n}),{},l(t)):o(e,t)})));e.exports=d},7414:(e,t,n)=>{var r=n(6224)(n(5161)(!0));e.exports=r},9134:(e,t,n)=>{var r=n(6224),a=n(2220),o=r((function(e){return a(e.length,(function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)}))}));e.exports=o},5713:(e,t,n)=>{var r=n(1361),a=n(9002)(r);e.exports=a},7455:e=>{e.exports=function(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,n){return t.apply(this,arguments)};case 3:return function(e,n,r){return t.apply(this,arguments)};case 4:return function(e,n,r,a){return t.apply(this,arguments)};case 5:return function(e,n,r,a,o){return t.apply(this,arguments)};case 6:return function(e,n,r,a,o,s){return t.apply(this,arguments)};case 7:return function(e,n,r,a,o,s,i){return t.apply(this,arguments)};case 8:return function(e,n,r,a,o,s,i,c){return t.apply(this,arguments)};case 9:return function(e,n,r,a,o,s,i,c,l){return t.apply(this,arguments)};case 10:return function(e,n,r,a,o,s,i,c,l,d){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}},4118:e=>{e.exports=function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}},8770:e=>{e.exports=function(e){return function(){return!e.apply(this,arguments)}}},6224:(e,t,n)=>{var r=n(6464);e.exports=function(e){return function t(n){return 0===arguments.length||r(n)?t:e.apply(this,arguments)}}},9002:(e,t,n)=>{var r=n(6224),a=n(6464);e.exports=function(e){return function t(n,o){switch(arguments.length){case 0:return t;case 1:return a(n)?t:r((function(t){return e(n,t)}));default:return a(n)&&a(o)?t:a(n)?r((function(t){return e(t,o)})):a(o)?r((function(t){return e(n,t)})):e(n,o)}}}},6370:(e,t,n)=>{var r=n(6224),a=n(9002),o=n(6464);e.exports=function(e){return function t(n,s,i){switch(arguments.length){case 0:return t;case 1:return o(n)?t:a((function(t,r){return e(n,t,r)}));case 2:return o(n)&&o(s)?t:o(n)?a((function(t,n){return e(t,s,n)})):o(s)?a((function(t,r){return e(n,t,r)})):r((function(t){return e(n,s,t)}));default:return o(n)&&o(s)&&o(i)?t:o(n)&&o(s)?a((function(t,n){return e(t,n,i)})):o(n)&&o(i)?a((function(t,n){return e(t,s,n)})):o(s)&&o(i)?a((function(t,r){return e(n,t,r)})):o(n)?r((function(t){return e(t,s,i)})):o(s)?r((function(t){return e(n,t,i)})):o(i)?r((function(t){return e(n,s,t)})):e(n,s,i)}}}},2738:(e,t,n)=>{var r=n(7455),a=n(6464);e.exports=function e(t,n,o){return function(){for(var s=[],i=0,c=t,l=0;l<n.length||i<arguments.length;){var d;l<n.length&&(!a(n[l])||i>=arguments.length)?d=n[l]:(d=arguments[i],i+=1),s[l]=d,a(d)||(c-=1),l+=1}return c<=0?o.apply(this,s):r(c,e(t,s,o))}}},4793:(e,t,n)=>{var r=n(219),a=n(9082);e.exports=function(e,t,n){return function(){if(0===arguments.length)return n();var o=Array.prototype.slice.call(arguments,0),s=o.pop();if(!r(s)){for(var i=0;i<e.length;){if("function"==typeof s[e[i]])return s[e[i]].apply(s,o);i+=1}if(a(s)){var c=t.apply(null,o);return c(s)}}return n.apply(this,arguments)}}},4023:(e,t,n)=>{var r=n(4118),a=n(2976),o=n(4931),s=n(7684),i=n(1361),c=n(368),l=n(6433);function d(e,t,n,o){var s=r(e),i=r(t);function c(e,t){return u(e,t,n.slice(),o.slice())}return!a((function(e,t){return!a(c,t,e)}),i,s)}function u(e,t,n,r){if(i(e,t))return!0;var a=l(e);if(a!==l(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(a){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===o(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!i(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!i(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var h=n.length-1;h>=0;){if(n[h]===e)return r[h]===t;h-=1}switch(a){case"Map":return e.size===t.size&&d(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&d(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var p=c(e);if(p.length!==c(t).length)return!1;var f=n.concat([e]),m=r.concat([t]);for(h=p.length-1;h>=0;){var g=p[h];if(!s(g,t)||!u(t[g],e[g],f,m))return!1;h-=1}return!0}e.exports=u},4877:e=>{e.exports=function(e,t){for(var n=0,r=t.length,a=[];n<r;)e(t[n])&&(a[a.length]=t[n]),n+=1;return a}},4931:e=>{e.exports=function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}},7684:e=>{e.exports=function(e,t){return Object.prototype.hasOwnProperty.call(t,e)}},7243:(e,t,n)=>{var r=n(6069);e.exports=function(e,t){return r(t,e,0)>=0}},2976:e=>{e.exports=function(e,t,n){for(var r=0,a=n.length;r<a;){if(e(t,n[r]))return!0;r+=1}return!1}},6069:(e,t,n)=>{var r=n(1481);e.exports=function(e,t,n){var a,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(a=1/t;n<e.length;){if(0===(o=e[n])&&1/o===a)return n;n+=1}return-1}if(t!=t){for(;n<e.length;){if("number"==typeof(o=e[n])&&o!=o)return n;n+=1}return-1}return e.indexOf(t,n);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,n);case"object":if(null===t)return e.indexOf(t,n)}for(;n<e.length;){if(r(e[n],t))return n;n+=1}return-1}},7587:(e,t,n)=>{var r=n(7684),a=Object.prototype.toString,o=function(){return"[object Arguments]"===a.call(arguments)?function(e){return"[object Arguments]"===a.call(e)}:function(e){return r("callee",e)}}();e.exports=o},219:e=>{e.exports=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)}},3219:(e,t,n)=>{var r=n(6224),a=n(219),o=n(190),s=r((function(e){return!!a(e)||!!e&&"object"==typeof e&&!o(e)&&(1===e.nodeType?!!e.length:0===e.length||e.length>0&&e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1))}));e.exports=s},7e3:e=>{e.exports=Number.isInteger||function(e){return e<<0===e}},8291:e=>{e.exports=function(e){return"[object Object]"===Object.prototype.toString.call(e)}},6464:e=>{e.exports=function(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}},190:e=>{e.exports=function(e){return"[object String]"===Object.prototype.toString.call(e)}},9082:e=>{e.exports=function(e){return null!=e&&"function"==typeof e["@@transducer/step"]}},5161:(e,t,n)=>{var r=n(3219);e.exports=function(e){return function t(n){for(var a,o,s,i=[],c=0,l=n.length;c<l;){if(r(n[c]))for(s=0,o=(a=e?t(n[c]):n[c]).length;s<o;)i[i.length]=a[s],s+=1;else i[i.length]=n[c];c+=1}return i}}},6692:e=>{e.exports=function(e,t){for(var n=0,r=t.length,a=Array(r);n<r;)a[n]=e(t[n]),n+=1;return a}},1361:e=>{e.exports="function"==typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},9488:(e,t,n)=>{var r=n(3219),a=n(9874),o=n(3195);function s(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function i(e,t,n,r){return e["@@transducer/result"](n[r](o(e["@@transducer/step"],e),t))}var c="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";e.exports=function(e,t,n){if("function"==typeof e&&(e=a(e)),r(n))return function(e,t,n){for(var r=0,a=n.length;r<a;){if((t=e["@@transducer/step"](t,n[r]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r+=1}return e["@@transducer/result"](t)}(e,t,n);if("function"==typeof n["fantasy-land/reduce"])return i(e,t,n,"fantasy-land/reduce");if(null!=n[c])return s(e,t,n[c]());if("function"==typeof n.next)return s(e,t,n);if("function"==typeof n.reduce)return i(e,t,n,"reduce");throw new TypeError("reduce: list must be array or iterable")}},3714:e=>{e.exports={init:function(){return this.xf["@@transducer/init"]()},result:function(e){return this.xf["@@transducer/result"](e)}}},123:(e,t,n)=>{var r=n(9002),a=n(3714),o=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=a.init,e.prototype["@@transducer/result"]=a.result,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}(),s=r((function(e,t){return new o(e,t)}));e.exports=s},2894:(e,t,n)=>{var r=n(9002),a=n(3714),o=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=a.init,e.prototype["@@transducer/result"]=a.result,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),s=r((function(e,t){return new o(e,t)}));e.exports=s},9874:e=>{var t=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();e.exports=function(e){return new t(e)}},368:(e,t,n)=>{var r=n(6224),a=n(7684),o=n(7587),s=!{toString:null}.propertyIsEnumerable("toString"),i=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],c=function(){"use strict";return arguments.propertyIsEnumerable("length")}(),l=function(e,t){for(var n=0;n<e.length;){if(e[n]===t)return!0;n+=1}return!1},d="function"!=typeof Object.keys||c?r((function(e){if(Object(e)!==e)return[];var t,n,r=[],d=c&&o(e);for(t in e)!a(t,e)||d&&"length"===t||(r[r.length]=t);if(s)for(n=i.length-1;n>=0;)a(t=i[n],e)&&!l(r,t)&&(r[r.length]=t),n-=1;return r})):r((function(e){return Object(e)!==e?[]:Object.keys(e)}));e.exports=d},7560:(e,t,n)=>{var r=n(9002)((function(e,t){return e<t}));e.exports=r},3594:(e,t,n)=>{var r=n(9002)((function(e,t){return e<=t}));e.exports=r},1894:(e,t,n)=>{var r=n(9002),a=n(4793),o=n(6692),s=n(9488),i=n(2894),c=n(2220),l=n(368),d=r(a(["fantasy-land/map","map"],i,(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return c(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return s((function(n,r){return n[r]=e(t[r]),n}),{},l(t));default:return o(e,t)}})));e.exports=d},1186:(e,t,n)=>{var r=n(9002)((function(e,t){return t>e?t:e}));e.exports=r},7041:(e,t,n)=>{var r=n(9002),a=n(190),o=r((function(e,t){var n=e<0?t.length+e:e;return a(t)?t.charAt(n):t[n]}));e.exports=o},7430:(e,t,n)=>{var r=n(9002),a=n(4439),o=r((function(e,t){return a([e],t)[0]}));e.exports=o},4439:(e,t,n)=>{var r=n(9002),a=n(7e3),o=n(7041),s=r((function(e,t){return e.map((function(e){for(var n,r=t,s=0;s<e.length;){if(null==r)return;n=e[s],r=a(n)?o(n,r):r[n],s+=1}return r}))}));e.exports=s},5206:(e,t,n)=>{var r=n(9002)((function(e,t){for(var n={},r=0;r<e.length;)e[r]in t&&(n[e[r]]=t[e[r]]),r+=1;return n}));e.exports=r},2478:(e,t,n)=>{var r=n(9002),a=n(7430),o=r((function(e,t){return a([e],t)}));e.exports=o},793:(e,t,n)=>{var r=n(6370)(n(9488));e.exports=r},3266:(e,t,n)=>{var r=n(8770),a=n(9002),o=n(1383),s=a((function(e,t){return o(r(e),t)}));e.exports=s},6433:(e,t,n)=>{var r=n(6224)((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));e.exports=r},7263:(e,t,n)=>{var r=n(2976),a=n(9002)((function(e,t){for(var n,a=0,o=t.length,s=[];a<o;)n=t[a],r(e,n,s)||(s[s.length]=n),a+=1;return s}));e.exports=a},6290:(e,t,n)=>{var r=n(7243),a=n(9002),o=n(9134),s=n(3266),i=a((function(e,t){return s(o(r)(e),t)}));e.exports=i},590:e=>{"use strict";e.exports=f},8367:e=>{"use strict";e.exports=v},3656:e=>{"use strict";e.exports=h},1031:t=>{"use strict";t.exports=e},8081:e=>{"use strict";e.exports=t},4752:e=>{"use strict";e.exports=s},9558:e=>{"use strict";e.exports=n},2405:e=>{"use strict";e.exports=b},817:e=>{"use strict";e.exports=c},2139:e=>{"use strict";e.exports=r},6311:e=>{"use strict";e.exports=u},6409:e=>{"use strict";e.exports=a},3205:e=>{"use strict";e.exports=g},8097:e=>{"use strict";e.exports=y},2001:e=>{"use strict";e.exports=l},2074:e=>{"use strict";e.exports=i},4021:e=>{"use strict";e.exports=d},9174:e=>{"use strict";e.exports=o},1001:e=>{"use strict";e.exports=w},3323:e=>{"use strict";e.exports=p},3752:e=>{"use strict";e.exports=m}},T={};function I(e){var t=T[e];if(void 0!==t)return t.exports;var n=T[e]={exports:{}};return x[e](n,n.exports,I),n.exports}I.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return I.d(t,{a:t}),t},I.d=(e,t)=>{for(var n in t)I.o(t,n)&&!I.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},I.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),I.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var C={};return(()=>{"use strict";I.r(C),I.d(C,{ACITransformation:()=>i,AccountBase:()=>Na,AccountMultiple:()=>Ya,Ae:()=>Pa,Aens:()=>Xa,AeppWalletHelpers:()=>l,AeppWalletSchema:()=>c,AmountFormatter:()=>o,BrowserRuntimeConnection:()=>fi,BrowserWindowMessageConnection:()=>hi,Bytes:()=>e,Chain:()=>Yr,ChainNode:()=>Fa,Channel:()=>ii,ContentScriptBridge:()=>li,Contract:()=>po,ContractCompilerAPI:()=>Za,Crypto:()=>r,GeneralizeAccount:()=>go,HdWallet:()=>Kr,Keystore:()=>a,MemoryAccount:()=>Qa,Node:()=>Oa,NodePool:()=>qa,Oracle:()=>Wo,RpcAepp:()=>Lo,RpcWallet:()=>Jo,SCHEMA:()=>t,Transaction:()=>La,Tx:()=>Qr,TxBuilder:()=>s,TxBuilderHelper:()=>n,Universal:()=>ci,WalletDetector:()=>pi,genSwaggerClient:()=>Ia,verifyTransaction:()=>Ra});var e={};I.r(e),I.d(e,{bigNumberToByteArray:()=>_,str2buf:()=>O,toBytes:()=>k});var t={};I.r(t),I.d(t,{ABI_VERSIONS:()=>Be,AMOUNT:()=>z,BASE_GAS:()=>qe,CLIENT_TTL:()=>ae,CONTRACT_BYTE_CODE_LIMA:()=>Ye,DEFAULT_FEE:()=>Fe,DEPOSIT:()=>Y,DRY_RUN_ACCOUNT:()=>ee,FIELD_TYPES:()=>Re,GAS:()=>X,GAS_PER_BYTE:()=>Ve,ID_TAG:()=>He,ID_TAG_PREFIX:()=>We,KEY_BLOCK_INTERVAL:()=>$e,MAX_AUTH_FUN_GAS:()=>Z,MIN_GAS_PRICE:()=>J,NAME_BID_MAX_LENGTH:()=>de,NAME_BID_RANGES:()=>he,NAME_BID_TIMEOUTS:()=>pe,NAME_BID_TIMEOUT_BLOCKS:()=>ce,NAME_FEE:()=>oe,NAME_FEE_BID_INCREMENT:()=>ie,NAME_FEE_MULTIPLIER:()=>se,NAME_ID_KEY:()=>ue,NAME_MAX_CLIENT_TTL:()=>re,NAME_MAX_LENGTH_FEE:()=>le,NAME_MAX_TTL:()=>ne,NAME_TTL:()=>te,OBJECT_ID_TX_TYPE:()=>Me,OBJECT_TAG_SIGNED_TRANSACTION:()=>fe,ORACLE_TTL:()=>L,PREFIX_ID_TAG:()=>Ke,PROTOCOL_VERSIONS:()=>Pe,PROTOCOL_VM_ABI:()=>je,QUERY_FEE:()=>W,QUERY_TTL:()=>G,RESPONSE_TTL:()=>Q,TX_DESERIALIZATION_SCHEMA:()=>Ht,TX_FEE_BASE_GAS:()=>De,TX_FEE_OTHER_GAS:()=>Ue,TX_SERIALIZATION_SCHEMA:()=>Ut,TX_TTL:()=>K,TX_TYPE:()=>Se,VALIDATION_MESSAGE:()=>Ge,VM_VERSIONS:()=>Ne,VSN:()=>U,VSN_2:()=>H});var n={};I.r(n),I.d(n,{buildContractId:()=>Qt,buildPointers:()=>on,classify:()=>dn,commitmentHash:()=>Jt,computeAuctionEndBlock:()=>fn,computeBidFee:()=>pn,createSalt:()=>Lt,decode:()=>Zt,encode:()=>en,ensureNameValid:()=>cn,formatSalt:()=>zt,getMinimumNameFee:()=>hn,isAuctionName:()=>mn,isNameValid:()=>ln,oracleQueryId:()=>Yt,produceNameId:()=>Xt,readId:()=>nn,readInt:()=>an,readPointers:()=>sn,validatePointers:()=>un,writeId:()=>tn,writeInt:()=>rn});var r={};I.r(r),I.d(r,{addressFromDecimal:()=>bn,aeEncodeKey:()=>Vn,checkSumFn:()=>In,decodeBase58Check:()=>En,decodeBase64Check:()=>Cn,decryptData:()=>Dn,decryptKey:()=>Bn,encodeBase58Check:()=>An,encodeBase64Check:()=>Tn,encodeContractAddress:()=>kn,encodeUnsigned:()=>_n,encryptData:()=>$n,encryptKey:()=>Nn,generateKeyPair:()=>Sn,generateKeyPairFromSecret:()=>On,getAddressFromPriv:()=>yn,hash:()=>D,isAddressValid:()=>wn,isValidKeypair:()=>Fn,messageToHash:()=>Mn,salt:()=>xn,sha256hash:()=>vn,sign:()=>Pn,signMessage:()=>Rn,verify:()=>jn,verifyMessage:()=>qn});var a={};I.r(a),I.d(a,{deriveKeyUsingArgon2id:()=>Ln,dump:()=>Zn,getAddressFromPriv:()=>Xn,recover:()=>Jn,validateKeyObj:()=>er});var o={};I.r(o),I.d(o,{AE_AMOUNT_FORMATS:()=>nr,DENOMINATION_MAGNITUDE:()=>rr,default:()=>dr,formatAmount:()=>sr,toAe:()=>ar,toAettos:()=>or});var s={};I.r(s),I.d(s,{buildRawTx:()=>Tr,buildTx:()=>Ar,buildTxHash:()=>_r,calculateFee:()=>vr,calculateMinFee:()=>wr,default:()=>kr,unpackRawTx:()=>Ir,unpackTx:()=>Er,validateParams:()=>xr});var i={};I.r(i),I.d(i,{SOPHIA_TYPES:()=>Or,decodeEvents:()=>Sr});var c={};I.r(c),I.d(c,{ERRORS:()=>ko,MESSAGE_DIRECTION:()=>vo,METHODS:()=>Eo,NOTIFICATIONS:()=>To,REQUESTS:()=>Io,RPC_STATUS:()=>_o,SUBSCRIPTION_TYPES:()=>Ao,SUBSCRIPTION_VALUES:()=>Co,VERSION:()=>bo,WALLET_TYPE:()=>xo});var l={};I.r(l),I.d(l,{getBrowserAPI:()=>Oo,getHandler:()=>Bo,isInIframe:()=>So,isValidAccounts:()=>qo,message:()=>Po,resolveOnAccount:()=>Vo,responseMessage:()=>jo,sendMessage:()=>No,sendResponseMessage:()=>Mo,voidFn:()=>Ro});var d=I(2139),u=I.n(d),h=I(6409),p=I.n(h),f=I(9174),m=I.n(f),g=I(4752),y=I.n(g),w=I(2074),b=I.n(w),v=I(9558),x=I.n(v);function T(e){return e.replace(/_./g,(e=>e[1].toUpperCase()))}function A(e){return e.replace(/[A-Z]/g,(e=>`_${e.toLowerCase()}`))}function E(e){return e.length%2==0&&/^[0-9a-f]+$/i.test(e)}function _(e){if(!e.isInteger())throw new Error(`Unexpected not integer value: ${e.toFixed()}`);let t=e.toString(16);return t.length%2==1&&(t="0"+t),Buffer.from(t,"hex")}function k(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null==e)return Buffer.from([]);if(Number.isInteger(e)||x().isBigNumber(e)||t)return x().isBigNumber(e)||(e=new(x())(e)),_(e);if("string"==typeof e)return Buffer.from(e);throw new Error("Byte serialization not supported")}function O(e,t){return Buffer.from(e,t??(E(e)?"hex":void 0)??(function(e){if(e.length%4>0||/[^0-9a-z+/=]/i.test(e))return!1;const t=e.indexOf("=");return-1===t||/={1,2}/.test(e.slice(t))}(e)?"base64":void 0))}var S=I(3007),N=I.n(S),B=I(3594),P=I.n(B),j=I(4115),M=I.n(j),R=I(7560),q=I.n(R),V=I(7794),F=I.n(V),$=I(817);function D(e){return Buffer.from((0,$.blake2b)(e,null,32))}const U=1,H=2,K=0,W=3e4,L={type:"delta",value:500},G={type:"delta",value:10},Q={type:"delta",value:10},Y=0,z=0,X=25e3,J=1e9,Z=5e4,ee={pub:"ak_11111111111111111111111111111111273Yts",amount:"100000000000000000000000000000000000"},te=18e4,ne=36e3,re=84600,ae=re,oe=0,se=1e14,ie=.05,ce=480,le=31,de=12,ue={ak:"account_pubkey",ok:"oracle_pubkey",ct:"contract_pubkey",ch:"channel"},he={31:x()(3).times(se),30:x()(5).times(se),29:x()(8).times(se),28:x()(13).times(se),27:x()(21).times(se),26:x()(34).times(se),25:x()(55).times(se),24:x()(89).times(se),23:x()(144).times(se),22:x()(233).times(se),21:x()(377).times(se),20:x()(610).times(se),19:x()(987).times(se),18:x()(1597).times(se),17:x()(2584).times(se),16:x()(4181).times(se),15:x()(6765).times(se),14:x()(10946).times(se),13:x()(17711).times(se),12:x()(28657).times(se),11:x()(46368).times(se),10:x()(75025).times(se),9:x()(121393).times(se),8:x()(196418).times(se),7:x()(317811).times(se),6:x()(514229).times(se),5:x()(832040).times(se),4:x()(1346269).times(se),3:x()(2178309).times(se),2:x()(3524578).times(se),1:x()(5702887).times(se)},pe={13:x()(0),12:x()(ce),8:x()(31).times(ce),4:x()(62).times(ce)},fe=11,me=521,ge=570,ye=571,we=572,be=573,ve=574,xe=575,Te=621,Ie=622,Ce=623,Ae=624,Ee=625,_e=626,ke=(e,t,n)=>[e,t,n],Oe=(e,t)=>[e,t],Se={account:"account",signed:"signedTx",spend:"spendTx",nameClaim:"nameClaimTx",namePreClaim:"namePreClaimTx",nameUpdate:"nameUpdateTx",nameRevoke:"nameRevokeTx",nameTransfer:"nameTransfer",contract:"contract",contractCreate:"contractCreateTx",contractCall:"contractCallTx",contractCallResult:"contractCallResult",oracleRegister:"oracleRegister",oracleExtend:"oracleExtend",oracleQuery:"oracleQuery",oracleResponse:"oracleResponse",channelCreate:"channelCreate",channelCloseMutual:"channelCloseMutual",channelCloseSolo:"channelCloseSolo",channelSlash:"channelSlash",channelDeposit:"channelDeposit",channelWithdraw:"channelWithdraw",channelSettle:"channelSettle",channelOffChain:"channelOffChain",channelForceProgress:"channelForceProgress",channel:"channel",channelSnapshotSolo:"channelSnapshotSolo",channelOffChainUpdateTransfer:"channelOffChainUpdateTransfer",channelOffChainUpdateDeposit:"channelOffChainUpdateDeposit",channelOffChainUpdateWithdrawal:"channelOffChainUpdateWithdrawal",channelOffChainCreateContract:"channelOffChainCreateContract",channelOffChainCallContract:"channelOffChainCallContract",channelReconnect:"channelReconnect",proofOfInclusion:"proofOfInclusion",stateTrees:"stateTrees",merklePatriciaTree:"merklePatriciaTree",merklePatriciaTreeValue:"merklePatriciaTreeValue",contractsTree:"contractsTree",contractCallsTree:"contractCallsTree",channelsTree:"channelsTree",nameserviceTree:"nameserviceTree",oraclesTree:"oraclesTree",accountsTree:"accountsTree",gaAttach:"gaAttach",gaMeta:"gaMeta",payingFor:"payingFor",sophiaByteCode:"sophiaByteCode"},Ne={NO_VM:0,SOPHIA:1,SOPHIA_IMPROVEMENTS_MINERVA:3,SOPHIA_IMPROVEMENTS_FORTUNA:4,FATE:5,SOPHIA_IMPROVEMENTS_LIMA:6,FATE_2:7},Be={NO_ABI:0,SOPHIA:1,FATE:3},Pe={IRIS:5},je={[Pe.IRIS]:{[Se.contractCreate]:{vmVersion:[Ne.FATE_2],abiVersion:[Be.FATE]},[Se.contractCall]:{vmVersion:[Ne.FATE_2,Ne.FATE,Ne.SOPHIA_IMPROVEMENTS_LIMA,Ne.SOPHIA_IMPROVEMENTS_FORTUNA,Ne.SOPHIA,Ne.SOPHIA_IMPROVEMENTS_MINERVA],abiVersion:[Be.FATE,Be.SOPHIA]},[Se.oracleRegister]:{vmVersion:[],abiVersion:[Be.NO_ABI,Be.SOPHIA]}}},Me={10:Se.account,[fe]:Se.signed,12:Se.spend,32:Se.nameClaim,33:Se.namePreClaim,34:Se.nameUpdate,35:Se.nameRevoke,36:Se.nameTransfer,40:Se.contract,42:Se.contractCreate,43:Se.contractCall,41:Se.contractCallResult,22:Se.oracleRegister,25:Se.oracleExtend,23:Se.oracleQuery,24:Se.oracleResponse,50:Se.channelCreate,53:Se.channelCloseMutual,54:Se.channelCloseSolo,55:Se.channelSlash,[me]:Se.channelForceProgress,51:Se.channelDeposit,52:Se.channelWithdraw,56:Se.channelSettle,57:Se.channelOffChain,58:Se.channel,59:Se.channelSnapshotSolo,[ge]:Se.channelOffChainUpdateTransfer,[ye]:Se.channelOffChainUpdateDeposit,[we]:Se.channelOffChainUpdateWithdrawal,[be]:Se.channelOffChainCreateContract,[ve]:Se.channelOffChainCallContract,[xe]:Se.channelReconnect,60:Se.proofOfInclusion,62:Se.stateTrees,63:Se.merklePatriciaTree,64:Se.merklePatriciaTreeValue,[Te]:Se.contractsTree,[Ie]:Se.contractCallsTree,[Ce]:Se.channelsTree,[Ae]:Se.nameserviceTree,[Ee]:Se.oraclesTree,[_e]:Se.accountsTree,80:Se.gaAttach,81:Se.gaMeta,82:Se.payingFor,70:Se.sophiaByteCode},Re={int:"int",amount:"amount",id:"id",ids:"ids",string:"string",binary:"binary",rlpBinary:"rlpBinary",rlpBinaries:"rlpBinaries",rawBinary:"rawBinary",bool:"bool",hex:"hex",signatures:"signatures",pointers:"pointers",offChainUpdates:"offChainUpdates",callStack:"callStack",proofOfInclusion:"proofOfInclusion",mptrees:"mptrees",callReturnType:"callReturnType",ctVersion:"ctVersion",sophiaCodeTypeInfo:"sophiaCodeTypeInfo",payload:"payload",any:"any",stateTree:"stateTree"},qe=15e3,Ve=20,Fe=2e4,$e=3,De=e=>{const t={[Se.channelForceProgress]:30,[Se.channelOffChain]:0,[Se.channelOffChainCallContract]:0,[Se.channelOffChainCreateContract]:0,[Se.channelOffChainUpdateDeposit]:0,[Se.channelOffChainUpdateWithdrawal]:0,[Se.channelOffChainUpdateTransfer]:0,[Se.contractCreate]:5,[Se.contractCall]:12,[Se.gaAttach]:5,[Se.gaMeta]:5,[Se.payingFor]:.2}[e]||1;return new(x())(t*qe)},Ue=(e,t,n)=>{let{relativeTtl:r,innerTxSize:a}=n;switch(e){case Se.oracleRegister:case Se.oracleExtend:case Se.oracleQuery:case Se.oracleResponse:return new(x())(t).times(Ve).plus(Math.ceil(32e3*r/Math.floor(525600/$e)));case Se.gaMeta:case Se.payingFor:return new(x())(t).minus(a).times(Ve);default:return new(x())(t).times(Ve)}},He={account:1,name:2,commitment:3,oracle:4,contract:5,channel:6},Ke={ak:He.account,nm:He.name,cm:He.commitment,ok:He.oracle,ct:He.contract,ch:He.channel},We=(Le=Ke,Object.entries(Le).reduce(((e,t)=>{let[n,r]=t;return(e[r]=n)&&e}),{}));var Le;const Ge={[Re.int]:e=>{let{value:t,isMinusValue:n}=e;return n?`${t} must be >= 0`:`${t} is not of type Number or BigNumber`},[Re.amount]:e=>{let{value:t,isMinusValue:n}=e;return n?`${t} must be >= 0`:`${t} is not of type Number or BigNumber`},[Re.id]:e=>{let{value:t,prefix:n}=e;return`'${t}' prefix doesn't match expected prefix '${n}' or ID_TAG for prefix not found`},[Re.binary]:e=>{let{prefix:t,value:n}=e;return`'${n}' prefix doesn't match expected prefix '${t}'`},[Re.string]:e=>{let{value:t}=e;return"Not a string"},[Re.pointers]:e=>{let{value:t}=e;return'Value must be of type Array and contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\''},[Re.ctVersion]:e=>{let{value:t}=e;return'Value must be an object with "vmVersion" and "abiVersion" fields'}},Qe=[ke("tag",Re.int),ke("VSN",Re.int)],Ye=[...Qe,ke("sourceCodeHash",Re.rawBinary),ke("typeInfo",Re.sophiaCodeTypeInfo),ke("byteCode",Re.rawBinary),ke("compilerVersion",Re.string),ke("payable",Re.bool)],ze=[...Qe,ke("flags",Re.int),ke("nonce",Re.int),ke("balance",Re.int),ke("gaContract",Re.id,["ct","nm"]),ke("gaAuthFun",Re.binary,"cb")],Xe=[...Qe,ke("senderId",Re.id,"ak"),ke("recipientId",Re.id,["ak","nm"]),ke("amount",Re.amount),ke("fee",Re.int),ke("ttl",Re.int),ke("nonce",Re.int),ke("payload",Re.payload)],Je=[...Qe,ke("signatures",Re.signatures),ke("encodedTx",Re.rlpBinary)],Ze=[...Qe,ke("accountId",Re.id,"ak"),ke("nonce",Re.int),ke("commitmentId",Re.id,"cm"),ke("fee",Re.int),ke("ttl",Re.int)],et=[...Qe,ke("accountId",Re.id,"ak"),ke("nonce",Re.int),ke("name",Re.binary,"nm"),ke("nameSalt",Re.int),ke("nameFee",Re.amount),ke("fee",Re.int),ke("ttl",Re.int)],tt=[...Qe,ke("accountId",Re.id,"ak"),ke("nonce",Re.int),ke("nameId",Re.id,"nm"),ke("nameTtl",Re.int),ke("pointers",Re.pointers),ke("clientTtl",Re.int),ke("fee",Re.int),ke("ttl",Re.int)],nt=[...Qe,ke("accountId",Re.id,"ak"),ke("nonce",Re.int),ke("nameId",Re.id,"nm"),ke("recipientId",Re.id,["ak","nm"]),ke("fee",Re.int),ke("ttl",Re.int)],rt=[...Qe,ke("accountId",Re.id,"ak"),ke("nonce",Re.int),ke("nameId",Re.id,"nm"),ke("fee",Re.int),ke("ttl",Re.int)],at=[...Qe,ke("owner",Re.id,"ak"),ke("ctVersion",Re.int),ke("code",Re.binary,"cb"),ke("log",Re.binary,"cb"),ke("active",Re.bool),ke("referers",Re.ids,"ak"),ke("deposit",Re.amount)],ot=[...Qe,ke("ownerId",Re.id,"ak"),ke("nonce",Re.int),ke("code",Re.binary,"cb"),ke("authFun",Re.rawBinary),ke("ctVersion",Re.ctVersion),ke("fee",Re.int),ke("ttl",Re.int),ke("gas",Re.int),ke("gasPrice",Re.int),ke("callData",Re.binary,"cb")],st=[...Qe,ke("gaId",Re.id,"ak"),ke("authData",Re.binary,"cb"),ke("abiVersion",Re.int),ke("fee",Re.int),ke("gas",Re.int),ke("gasPrice",Re.int),ke("tx",Re.rlpBinary)],it=[...Qe,ke("payerId",Re.id,"ak"),ke("nonce",Re.int),ke("fee",Re.int),ke("tx",Re.rlpBinary)],ct=[...Qe,ke("ownerId",Re.id,"ak"),ke("nonce",Re.int),ke("code",Re.binary,"cb"),ke("ctVersion",Re.ctVersion),ke("fee",Re.int),ke("ttl",Re.int),ke("deposit",Re.amount),ke("amount",Re.amount),ke("gas",Re.int),ke("gasPrice",Re.int),ke("callData",Re.binary,"cb")],lt=[...Qe,ke("callerId",Re.id,"ak"),ke("nonce",Re.int),ke("contractId",Re.id,["ct","nm"]),ke("abiVersion",Re.int),ke("fee",Re.int),ke("ttl",Re.int),ke("amount",Re.amount),ke("gas",Re.int),ke("gasPrice",Re.int),ke("callData",Re.binary,"cb")],dt=[...Qe,ke("callerId",Re.id,"ak"),ke("callerNonce",Re.int),ke("height",Re.int),ke("contractId",Re.id,"ct"),ke("gasPrice",Re.int),ke("gasUsed",Re.int),ke("returnValue",Re.binary,"cb"),ke("returnType",Re.callReturnType),ke("log",Re.rawBinary)],ut=[...Qe,ke("accountId",Re.id,"ak"),ke("nonce",Re.int),ke("queryFormat",Re.string),ke("responseFormat",Re.string),ke("queryFee",Re.amount),ke("oracleTtlType",Re.int),ke("oracleTtlValue",Re.int),ke("fee",Re.int),ke("ttl",Re.int),ke("abiVersion",Re.int)],ht=[...Qe,ke("oracleId",Re.id,["ok","nm"]),ke("nonce",Re.int),ke("oracleTtlType",Re.int),ke("oracleTtlValue",Re.int),ke("fee",Re.int),ke("ttl",Re.int)],pt=[...Qe,ke("senderId",Re.id,"ak"),ke("nonce",Re.int),ke("oracleId",Re.id,["ok","nm"]),ke("query",Re.string),ke("queryFee",Re.amount),ke("queryTtlType",Re.int),ke("queryTtlValue",Re.int),ke("responseTtlType",Re.int),ke("responseTtlValue",Re.int),ke("fee",Re.int),ke("ttl",Re.int)],ft=[...Qe,ke("oracleId",Re.id,"ok"),ke("nonce",Re.int),ke("queryId",Re.binary,"oq"),ke("response",Re.string),ke("responseTtlType",Re.int),ke("responseTtlValue",Re.int),ke("fee",Re.int),ke("ttl",Re.int)],mt=[...Qe,ke("initiator",Re.id,"ak"),ke("initiatorAmount",Re.int),ke("responder",Re.id,"ak"),ke("responderAmount",Re.int),ke("channelReserve",Re.int),ke("lockPeriod",Re.int),ke("ttl",Re.int),ke("fee",Re.int),ke("initiatorDelegateIds",Re.string),ke("responderDelegateIds",Re.string),ke("stateHash",Re.binary,"st"),ke("nonce",Re.int)],gt=[...Qe,ke("channelId",Re.id,"ch"),ke("fromId",Re.id,"ak"),ke("amount",Re.int),ke("ttl",Re.int),ke("fee",Re.int),ke("stateHash",Re.binary,"st"),ke("round",Re.int),ke("nonce",Re.int)],yt=[...Qe,ke("channelId",Re.id,"ch"),ke("toId",Re.id,"ak"),ke("amount",Re.int),ke("ttl",Re.int),ke("fee",Re.int),ke("stateHash",Re.binary,"st"),ke("round",Re.int),ke("nonce",Re.int)],wt=[...Qe,ke("channelId",Re.id,"ch"),ke("fromId",Re.id,"ak"),ke("initiatorAmountFinal",Re.int),ke("responderAmountFinal",Re.int),ke("ttl",Re.int),ke("fee",Re.int),ke("nonce",Re.int)],bt=[...Qe,ke("channelId",Re.id,"ch"),ke("fromId",Re.id,"ak"),ke("payload",Re.binary,"tx"),ke("poi",Re.binary,"pi"),ke("ttl",Re.int),ke("fee",Re.int),ke("nonce",Re.int)],vt=[...Qe,ke("channelId",Re.id,"ch"),ke("fromId",Re.id,"ak"),ke("payload",Re.binary,"tx"),ke("poi",Re.binary,"pi"),ke("ttl",Re.int),ke("fee",Re.int),ke("nonce",Re.int)],xt=[...Qe,ke("channelId",Re.id,"ch"),ke("fromId",Re.id,"ak"),ke("initiatorAmountFinal",Re.int),ke("responderAmountFinal",Re.int),ke("ttl",Re.int),ke("fee",Re.int),ke("nonce",Re.int)],Tt=[...Qe,ke("channelId",Re.id,"ch"),ke("fromId",Re.id,"ak"),ke("payload",Re.binary,"tx"),ke("round",Re.int),ke("update",Re.binary),ke("stateHash",Re.binary),ke("offChainTrees",Re.stateTree),ke("ttl",Re.int),ke("fee",Re.int),ke("nonce",Re.int)],It=[...Qe,ke("channelId",Re.id,"ch"),ke("round",Re.int),ke("stateHash",Re.binary,"st")],Ct=[...Qe,ke("initiator",Re.id,"ak"),ke("responder",Re.id,"ak"),ke("channelAmount",Re.int),ke("initiatorAmount",Re.int),ke("responderAmount",Re.int),ke("channelReserve",Re.int),ke("initiatorDelegateIds",Re.ids),ke("responderDelegateIds",Re.ids),ke("stateHash",Re.hex),ke("round",Re.int),ke("soloRound",Re.int),ke("lockPeriod",Re.int),ke("lockedUntil",Re.int),ke("initiatorAuth",Re.binary,"cb"),ke("responderAuth",Re.binary,"cb")],At=[...Qe,ke("channelId",Re.id,"ch"),ke("fromId",Re.id,"ak"),ke("payload",Re.binary,"tx"),ke("ttl",Re.int),ke("fee",Re.int),ke("nonce",Re.int)],Et=[...Qe,ke("owner",Re.id,"ak"),ke("ctVersion",Re.int),ke("code",Re.binary,"cb"),ke("deposit",Re.int),ke("callData",Re.binary,"cb")],_t=[...Qe,ke("caller",Re.id,"ak"),ke("contract",Re.id,"ct"),ke("abiVersion",Re.int),ke("amount",Re.int),ke("callData",Re.binary,"cb"),ke("callStack",Re.callStack),ke("gasPrice",Re.int),ke("gasLimit",Re.int)],kt=[...Qe,ke("channelId",Re.id,"ch"),ke("round",Re.int),ke("role",Re.string),ke("pubkey",Re.id,"ak")],Ot=[...Qe,ke("from",Re.id,"ak"),ke("to",Re.id,"ak"),ke("amount",Re.int)],St=[...Qe,ke("from",Re.id,"ak"),ke("amount",Re.int)],Nt=[...Qe,ke("from",Re.id,"ak"),ke("amount",Re.int)],Bt=[...Qe,ke("accounts",Re.mptrees),ke("calls",Re.mptrees),ke("channels",Re.mptrees),ke("contracts",Re.mptrees),ke("ns",Re.mptrees),ke("oracles",Re.mptrees)],Pt=[...Qe,ke("contracts",Re.rlpBinary),ke("calls",Re.rlpBinary),ke("channels",Re.rlpBinary),ke("ns",Re.rlpBinary),ke("oracles",Re.rlpBinary),ke("accounts",Re.rlpBinary)],jt=[...Qe,ke("values",Re.rlpBinaries)],Mt=[...Qe,ke("key",Re.hex),ke("value",Re.rawBinary)],Rt=[...Qe,ke("contracts",Re.rlpBinary)],qt=[...Qe,ke("calls",Re.rlpBinary)],Vt=[...Qe,ke("channels",Re.rlpBinary)],Ft=[...Qe,ke("mtree",Re.rlpBinary)],$t=[...Qe,ke("otree",Re.rlpBinary)],Dt=[...Qe,ke("accounts",Re.rlpBinary)],Ut={[Se.account]:{2:Oe(ze,10)},[Se.signed]:{1:Oe(Je,fe)},[Se.spend]:{1:Oe(Xe,12)},[Se.namePreClaim]:{1:Oe(Ze,33)},[Se.nameClaim]:{2:Oe(et,32)},[Se.nameUpdate]:{1:Oe(tt,34)},[Se.nameTransfer]:{1:Oe(nt,36)},[Se.nameRevoke]:{1:Oe(rt,35)},[Se.contract]:{1:Oe(at,40)},[Se.contractCreate]:{1:Oe(ct,42)},[Se.contractCall]:{1:Oe(lt,43)},[Se.contractCallResult]:{1:Oe(dt,41)},[Se.oracleRegister]:{1:Oe(ut,22)},[Se.oracleExtend]:{1:Oe(ht,25)},[Se.oracleQuery]:{1:Oe(pt,23)},[Se.oracleResponse]:{1:Oe(ft,24)},[Se.channelCreate]:{2:Oe(mt,50)},[Se.channelCloseMutual]:{1:Oe(wt,53)},[Se.channelCloseSolo]:{1:Oe(bt,54)},[Se.channelSlash]:{1:Oe(vt,55)},[Se.channelDeposit]:{1:Oe(gt,51)},[Se.channelWithdraw]:{1:Oe(yt,52)},[Se.channelSettle]:{1:Oe(xt,56)},[Se.channelForceProgress]:{1:Oe(Tt,me)},[Se.channelOffChain]:{2:Oe(It,57)},[Se.channel]:{3:Oe(Ct,58)},[Se.channelSnapshotSolo]:{1:Oe(At,59)},[Se.channelOffChainUpdateTransfer]:{1:Oe(Ot,ge)},[Se.channelOffChainUpdateDeposit]:{1:Oe(St,ye)},[Se.channelOffChainUpdateWithdrawal]:{1:Oe(Nt,we)},[Se.channelOffChainCreateContract]:{1:Oe(Et,be)},[Se.channelOffChainCallContract]:{1:Oe(_t,ve)},[Se.channelReconnect]:{1:Oe(kt,xe)},[Se.proofOfInclusion]:{1:Oe(Bt,60)},[Se.stateTrees]:{1:Oe(Pt,62)},[Se.merklePatriciaTree]:{1:Oe(jt,63)},[Se.merklePatriciaTreeValue]:{1:Oe(Mt,64)},[Se.contractsTree]:{1:Oe(Rt,Te)},[Se.contractCallsTree]:{1:Oe(qt,Ie)},[Se.channelsTree]:{1:Oe(Vt,Ce)},[Se.nameserviceTree]:{1:Oe(Ft,Ae)},[Se.oraclesTree]:{1:Oe($t,Ee)},[Se.accountsTree]:{1:Oe(Dt,_e)},[Se.gaAttach]:{1:Oe(ot,80)},[Se.gaMeta]:{2:Oe(st,81)},[Se.payingFor]:{1:Oe(it,82)}},Ht={10:{2:Oe(ze,10)},[fe]:{1:Oe(Je,fe)},12:{1:Oe(Xe,12)},33:{1:Oe(Ze,33)},32:{2:Oe(et,32)},34:{1:Oe(tt,34)},36:{1:Oe(nt,36)},35:{1:Oe(rt,35)},40:{1:Oe(at,40)},42:{1:Oe(ct,42)},43:{1:Oe(lt,43)},41:{1:Oe(dt,41)},22:{1:Oe(ut,22)},25:{1:Oe(ht,25)},23:{1:Oe(pt,23)},24:{1:Oe(ft,24)},50:{2:Oe(mt,50)},53:{1:Oe(wt,53)},54:{1:Oe(bt,54)},55:{1:Oe(vt,55)},51:{1:Oe(gt,51)},52:{1:Oe(yt,52)},56:{1:Oe(xt,56)},57:{2:Oe(It,57)},58:{3:Oe(Ct,58)},59:{1:Oe(At,59)},[ge]:{1:Oe(Ot,ge)},[ye]:{1:Oe(St,ye)},[we]:{1:Oe(Nt,we)},[be]:{1:Oe(Et,be)},[ve]:{1:Oe(_t,ve)},[xe]:{1:Oe(kt,xe)},60:{1:Oe(Bt,60)},62:{1:Oe(Pt,62)},63:{1:Oe(jt,63)},64:{1:Oe(Mt,64)},[Te]:{1:Oe(Rt,Te)},[Ie]:{1:Oe(qt,Ie)},[Ce]:{1:Oe(Vt,Ce)},[Ae]:{1:Oe(Ft,Ae)},[Ee]:{1:Oe($t,Ee)},[_e]:{1:Oe(Dt,_e)},80:{1:Oe(ot,80)},81:{2:Oe(st,81)},82:{1:Oe(it,82)},[me]:{1:Oe(Tt,me)},70:{3:Oe(Ye,70)}},Kt=e=>["number","object","string","bigint"].includes(typeof e)&&(!isNaN(e)||Number.isInteger(e)||x().isBigNumber(e)),Wt=e=>e.integerValue(x().ROUND_CEIL),Lt=xn,Gt=["tx","st","ss","pi","ov","or","cb","cs","ba"];function Qt(e,t){return en(D(Buffer.from([...Zt(e,"ak"),...k(t)])),"ct")}function Yt(e,t,n){return en(D(Buffer.from([...Zt(e,"ak"),...function(e){const t=k(e,!0);return Buffer.concat([Buffer.alloc(32-t.length),t])}(t),...Zt(n,"ok")])),"oq")}function zt(e){return Buffer.from(e.toString(16).padStart(64,"0"),"hex")}function Xt(e){return cn(e),en(D(e.toLowerCase()),"nm")}function Jt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Lt();return cn(e),`cm_${An(D(Buffer.concat([Buffer.from(e.toLowerCase()),zt(t)])))}`}function Zt(e,t){const[n,r,a]=e.split("_");if(a)throw new Error(`Encoded string have extra parts: ${e}`);if(t&&t!==n)throw new Error(`Encoded string have a wrong type: ${n} (expected: ${t})`);return(Gt.includes(n)?Cn:En)(r)}function en(e,t){return`${t}_${Gt.includes(t)?Tn(e):An(e)}`}function tn(e){const t=e.slice(0,2),n=Ke[t];if(!n)throw new Error(`Id tag for prefix ${t} not found.`);return Buffer.from([...k(n),...Zt(e,t)])}function nn(e){const t=e.readUIntBE(0,1),n=We[t];if(!n)throw new Error(`Prefix for id-tag ${t} not found.`);return en(e.slice(1,e.length),n)}function rn(e){return k(e,!0)}function an(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Buffer.from([]);return x()(e.toString("hex"),16).toString(10)}function on(e){return e.map((e=>[k(e.key),tn(e.id)]))}function sn(e){return e.map((e=>{let[t,n]=e;return Object.assign({key:t.toString(),id:nn(n)})}))}function cn(e){if(!e||"string"!=typeof e)throw new Error("Name must be a string");if(!e.endsWith(".chain"))throw new Error(`Name should end with .chain: ${e}`)}function ln(e){try{return cn(e),!0}catch(e){return!1}}function dn(e){if(!e.match(/^[a-z]{2}_.+/))throw new Error("Not a valid hash");const t=e.substr(0,2);if(t in ue)return ue[t];throw new Error(`Unknown class ${t}`)}function un(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return!e.find((e=>!e||"string"!=typeof e||!["ak","ok","ct","ch"].includes(e.split("_")[0])))}function hn(e){const t=e.replace(".chain","").length;return he[t>=le?le:t]}function pn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:oe,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ie;if(Number(n)!==n||n%1==0)throw new Error(`Increment must be float. Current increment ${n}`);if(n<ie)throw new Error(`minimum increment percentage is ${ie}`);return Wt(x()(x()(t).eq(oe)?hn(e):t).times(x()(ie).plus(1)))}function fn(e,t){return F()([[q()(5),M()(pe[4].plus(t))],[q()(9),M()(pe[8].plus(t))],[P()(de),M()(pe[12].plus(t))],[N(),M()(x()(t))]])(e.replace(".chain","").length).toString(10)}function mn(e){return e.replace(".chain","").length<13}const gn=y().ModeOfOperation.ecb;function yn(e){const t=m().sign.keyPair.fromSecretKey(O(e));return`ak_${An(Buffer.from(t.publicKey))}`}function wn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ak";if("string"!=typeof e)return!1;try{return 32===Zt(e,t).length}catch(e){return!1}}function bn(e){return Vn(k(e,!0))}function vn(e){return b()("sha256").update(e).digest()}function xn(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}function Tn(e){const t=Buffer.from(e),n=In(e);return Buffer.concat([t,n],t.length+4).toString("base64")}function In(e){return vn(vn(e)).slice(0,4)}function Cn(e){const t=function(e){const t=e.slice(0,-4),n=e.slice(-4),r=In(t);if(n.equals(r))return t}(Buffer.from(e,"base64"));if(!t)throw new Error("Invalid checksum");return Buffer.from(t)}function An(e){return u().encode(Buffer.from(e))}function En(e){return u().decode(e)}function _n(e){const t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e),t.slice(t.findIndex((e=>0!==e)))}function kn(e,t){const n=Zt(e,"ak");return`ct_${An(D(Buffer.concat([n,_n(t)])))}`}function On(e){return m().sign.keyPair.fromSecretKey(e)}function Sn(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=m().sign.keyPair(),n=Buffer.from(t.publicKey),r=Buffer.from(t.secretKey);return e?{publicKey:n,secretKey:r}:{publicKey:`ak_${An(n)}`,secretKey:r.toString("hex")}}function Nn(e,t){const n=vn(e);return new gn(n).encrypt(t)}function Bn(e,t){const n=Buffer.from(t),r=vn(e),a=new gn(r);return Buffer.from(a.decrypt(n))}function Pn(e,t){return m().sign.detached(Buffer.from(e),Buffer.from(t))}function jn(e,t,n){return m().sign.detached.verify(new Uint8Array(e),t,n)}function Mn(e){const t=Buffer.from("aeternity Signed Message:\n","utf8"),n=Buffer.from(e,"utf8");if(n.length>=253)throw new Error("message too long");return D(Buffer.concat([Buffer.from([t.length]),t,Buffer.from([n.length]),n]))}function Rn(e,t){return Pn(Mn(e),t)}function qn(e,t,n){return jn(Mn(e),t,n)}function Vn(e){return`ak_${An(Buffer.from(e,"hex"))}`}function Fn(e,t){const n=Buffer.from("TheMessage");return jn(n,Pn(n,e),t)}function $n(e,t){const n=m().box.keyPair(),r=Zt(t,"ak"),a=m().randomBytes(m().box.nonceLength),o=m().box(Buffer.from(e),a,p().convertPublicKey(r),n.secretKey);return{ciphertext:Buffer.from(o).toString("hex"),ephemPubKey:Buffer.from(n.publicKey).toString("hex"),nonce:Buffer.from(a).toString("hex"),version:"x25519-xsalsa20-poly1305"}}function Dn(e,t){const n=p().convertSecretKey(Buffer.from(e,"hex")),r=Buffer.from(t.nonce,"hex"),a=Buffer.from(t.ciphertext,"hex"),o=Buffer.from(t.ephemPubKey,"hex"),s=m().box.open(a,r,o,n);return s?Buffer.from(s):s}var Un=I(3323);const Hn=I(8097),Kn={crypto:{secret_type:"ed25519",symmetric_alg:"xsalsa20-poly1305",kdf:"argon2id",kdf_params:{memlimit_kib:65536,opslimit:3,parallelism:1}}},Wn={argon2id:Ln};async function Ln(e,t,n){const{memlimit_kib:r,opslimit:a}=n.kdf_params;return Hn.ready.then((async()=>{const n=Hn,o=n.crypto_pwhash(32,e,t,a,1024*r,n.crypto_pwhash_ALG_ARGON2ID13);return Buffer.from(o)}))}const Gn={"xsalsa20-poly1305":{encrypt:function(e){let{plaintext:t,key:n,nonce:r}=e;return m().secretbox(t,r,n)},decrypt:function(e){let{ciphertext:t,key:n,nonce:r}=e;const a=m().secretbox.open(t,r,n);if(!a)throw new Error("Invalid password or nonce");return a}}};function Qn(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Kn.crypto.symmetric_alg;if(!Gn[r])throw new Error(r+" is not available");return Gn[r].encrypt({plaintext:e,nonce:n,key:t})}async function Yn(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{kdf_params:Kn.crypto.kdf_params,kdf:Kn.crypto.kdf};if(null==e||!t)throw new Error("Must provide password and nonce to derive a key");if(!Object.prototype.hasOwnProperty.call(Wn,n.kdf))throw new Error("Unsupported kdf type");return Wn[n.kdf](e,t,n)}function zn(e,t,n,r,a){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};const s=Object.assign({},Kn.crypto,o);return Object.assign({name:e,version:1,public_key:Xn(n),id:(0,Un.v4)()},{crypto:Object.assign({secret_type:s.secret_type,symmetric_alg:s.symmetric_alg,ciphertext:Buffer.from(Qn(Buffer.from(n),t,r,s.symmetric_alg)).toString("hex"),cipher_params:{nonce:Buffer.from(r).toString("hex")}},{kdf:s.kdf,kdf_params:{...s.kdf_params,salt:Buffer.from(a).toString("hex")}})})}function Xn(e){const t=m().sign.keyPair.fromSecretKey(O(e));return`ak_${An(Buffer.from(t.publicKey))}`}async function Jn(e,t){er(t);const n=Uint8Array.from(O(t.crypto.cipher_params.nonce)),r=Uint8Array.from(O(t.crypto.kdf_params.salt)),a=t.crypto.kdf_params,o=t.crypto.kdf,s=await function(e,t,n,r){if(!Gn[r])throw new Error(r+" is not available");return Gn[r].decrypt({ciphertext:e,nonce:n,key:t})}(Uint8Array.from(O(t.crypto.ciphertext)),await Yn(e,r,{kdf:o,kdf_params:a}),n,t.crypto.symmetric_alg);if(!s)throw new Error("Invalid password");return 64===Buffer.from(s).length?Buffer.from(s).toString("hex"):Buffer.from(s).toString("utf-8")}async function Zn(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m().randomBytes(24),a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:m().randomBytes(16),o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};const s=Object.assign({},Kn.crypto,o);return zn(e,await Yn(t,a,s),n,r,a,s)}function er(e){const t=["crypto","id","version","public_key"].filter((t=>!Object.prototype.hasOwnProperty.call(e,t)));if(t.length)throw new Error(`Invalid key file format. Require properties: ${t}`);const n=["cipher_params","ciphertext","symmetric_alg","kdf","kdf_params"].filter((t=>!Object.prototype.hasOwnProperty.call(e.crypto,t)));if(n.length)throw new Error(`Invalid key file format. Require properties: ${n}`);return!0}var tr=I(2001);const nr={AE:"ae",MILI_AE:"miliAE",MICRO_AE:"microAE",NANO_AE:"nanoAE",PICO_AE:"picoAE",FEMTO_AE:"femtoAE",AETTOS:"aettos"},rr={[nr.AE]:0,[nr.MILI_AE]:-3,[nr.MICRO_AE]:-6,[nr.NANO_AE]:-9,[nr.PICO_AE]:-12,[nr.FEMTO_AE]:-15,[nr.AETTOS]:-18},ar=function(e){let{denomination:t=nr.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return sr(e,{denomination:t,targetDenomination:nr.AE})},or=function(e){let{denomination:t=nr.AE}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return sr(e,{denomination:t})},sr=function(e){let{denomination:t=nr.AETTOS,targetDenomination:n=nr.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=Object.values(nr);if(!r.includes(t))throw new Error(`Invalid denomination: ${t}`);if(!r.includes(n))throw new Error(`Invalid target denomination: ${n}`);if(!Kt(e))throw new Error(`Value ${null==e?void 0:e.toString()} is not type of number`);return new(x())(e).shiftedBy(rr[t]-rr[n]).toFixed()},ir=[{name:"exa",magnitude:18},{name:"giga",magnitude:9},{name:"",magnitude:0},{name:"pico",magnitude:-12}],cr=e=>ir.reduce(((t,n)=>Math.abs(n.magnitude-e)<Math.abs(t.magnitude-e)?n:t)),lr=e=>ir.find((t=>t.magnitude<=e))??ir[ir.length-1],dr=e=>{const t=new(x())(e),n=t.e??0,{name:r,magnitude:a}=(n<0?cr:lr)(n);return`${t.shiftedBy(-a).precision(9+Math.min(n-a,0)).toFixed()}${""!==r?" ":""}${r}`};var ur;!function(e){e[e.Branch=0]="Branch",e[e.Extension=1]="Extension",e[e.Leaf=2]="Leaf"}(ur||(ur={}));class hr{static nodeHash(e){return Buffer.from(D((0,tr.encode)(e))).toString("hex")}constructor(e){if(this.rootHash=e[0].toString("hex"),this.nodes=Object.fromEntries(e[1].map((e=>[e[0].toString("hex"),e[1]]))),void 0===this.nodes[this.rootHash])throw new Error("Can't find a node by root hash");Object.entries(this.nodes).forEach((e=>{let[t,n]=e;if(hr.nodeHash(n)!==t)throw new Error("Node hash is not equal to provided one");const{type:r,payload:a}=hr.parseNode(n);switch(r){case ur.Branch:a.slice(0,16).filter((e=>e.length)).forEach((e=>{if(void 0===this.nodes[e.toString("hex")])throw new Error("Can't find a node by hash in branch node")}));break;case ur.Extension:if(void 0===this.nodes[a[0].toString("hex")])throw new Error("Can't find a node by hash in extension node")}}))}isEqual(e){return this.rootHash===e.rootHash}static parseNode(e){switch(e.length){case 17:return{type:ur.Branch,payload:e,path:null};case 2:{const t=e[0].toString("hex"),n=parseInt(t[0],16);if(n>3)throw new Error(`Unknown path nibble: ${n}`);const r=n<=1?ur.Extension:ur.Leaf,a=[0,2].includes(n)?2:1;return{type:r,payload:[e[1]],path:t.slice(a)}}default:throw new Error(`Unknown node length: ${e.length}`)}}serialize(){return[Buffer.from(this.rootHash,"hex"),Object.entries(this.nodes).map((e=>{let[t,n]=e;return[Buffer.from(t,"hex"),n]}))]}get(e){let t=this.rootHash;for(;;){const{type:n,payload:r,path:a}=hr.parseNode(this.nodes[t]);switch(n){case ur.Branch:if(0===e.length)return r[16];t=r[parseInt(e[0],16)].toString("hex"),e=e.substr(1);break;case ur.Extension:if(e.substr(0,null==a?void 0:a.length)!==a)return;t=r[0].toString("hex"),e=e.substr(a.length);break;case ur.Leaf:if(a!==e)return;return r[0]}}}}const pr="delta";function fr(e,t,n){if(!e)return"";switch(t){case Re.ctVersion:{const[t,,n]=e;return{vmVersion:an(Buffer.from([t])),abiVersion:an(Buffer.from([n]))}}case Re.amount:case Re.int:return an(e);case Re.id:return nn(e);case Re.ids:return e.map(nn);case Re.bool:return 1===e[0];case Re.binary:return en(e,n);case Re.stateTree:return en(e,"ss");case Re.string:return e.toString();case Re.payload:return en(e,"ba");case Re.pointers:return sn(e);case Re.rlpBinary:return Er(e,!0);case Re.rlpBinaries:return e.map((e=>Er(e,!0)));case Re.rawBinary:return e;case Re.hex:return e.toString("hex");case Re.offChainUpdates:return e.map((e=>Er(e,!0)));case Re.callStack:return[an(e)];case Re.mptrees:return e.map((e=>new hr(e)));case Re.callReturnType:switch(an(e)){case"0":return"ok";case"1":return"error";case"2":return"revert";default:return e}case Re.sophiaCodeTypeInfo:return e.reduce(((e,t)=>{let[n,r,a,o]=t;return{...e,[r.toString()]:{funHash:n,argType:a,outType:o}}}),{});default:return e}}function mr(e,t,n){switch(t){case Re.amount:case Re.int:return rn(e);case Re.id:return tn(e);case Re.ids:return e.map(tn);case Re.bool:return Buffer.from([e?1:0]);case Re.binary:return Zt(e,n);case Re.stateTree:return Zt(e,"ss");case Re.hex:return Buffer.from(e,"hex");case Re.signatures:return e.map(Buffer.from);case Re.payload:return"string"==typeof e&&"ba"===e.split("_")[0]?Zt(e,"ba"):k(e);case Re.string:return k(e);case Re.pointers:return on(e);case Re.rlpBinary:return e.rlpEncoded??e;case Re.mptrees:return e.map((e=>e.serialize()));case Re.ctVersion:return Buffer.from([...k(e.vmVersion),0,...k(e.abiVersion)]);case Re.callReturnType:switch(e){case"ok":return rn(0);case"error":return rn(1);case"revert":return rn(2);default:return e}default:return e}}function gr(e,t){let{denomination:n}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e=t.filter((e=>{let[t,n]=e;return n===Re.amount})).reduce(((t,r)=>{let[a]=r;return{...e,[a]:sr(e[a],{denomination:n})}}),e);const r=t.map((e=>{let[t]=e;return t}));return Object.entries(e).reduce(((e,t)=>{let[n,a]=t;return r.includes(n)&&(e[n]=a),["oracleTtl","queryTtl","responseTtl"].includes(n)&&(e[`${n}Type`]=a.type===pr?0:1,e[`${n}Value`]=a.value),e}),{})}function yr(e,t){const n={[Se.oracleRegister]:"oracleTtl",[Se.oracleExtend]:"oracleTtl",[Se.oracleQuery]:"queryTtl",[Se.oracleResponse]:"responseTtl"}[t];return e[n]||e[`${n}Value`]?e[`${n}Value`]||e[n].value:1}function wr(e,t){let{gas:n=0,params:r,vsn:a}=t;const o=x()(1e9);if(!r)return x()(Fe).times(o).toString(10);let s=br(e,{params:{...r,fee:0},multiplier:o,gas:n,vsn:a}),i=x()(0);for(;!s.eq(i);)s=br(e,{params:{...r,fee:s},multiplier:o,gas:n,vsn:a}),i=s;return i.toString(10)}function br(e,t){let{params:n,gas:r=0,multiplier:a,vsn:o}=t;const{rlpEncoded:s}=Ar({...n},e,{vsn:o}),i=s.length;return De(e).plus(Ue(e,i,{relativeTtl:yr(n,e),innerTxSize:[Se.gaMeta,Se.payingFor].includes(e)?n.tx.tx.encodedTx.rlpEncoded.length:0})).times(a)}function vr(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,{gas:n=0,params:r,showWarning:a=!0,vsn:o}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return!r&&a&&console.warn(`Can't build transaction fee, we will use DEFAULT_FEE(${Fe})`),e||wr(t,{params:r,gas:n,vsn:o})}function xr(e,t,n){let{excludeKeys:r=[]}=n;return t.filter((e=>{let[t]=e;return!r.includes(t)&&"payload"!==t})).reduce(((t,n)=>{let[r,a,o]=n;return Object.assign(t,function(e,t,n,r){const a=(e,r)=>e?{}:{[t]:Ge[n](r)};if(null==e)return{[t]:"Field is required"};switch(n){case Re.amount:case Re.int:{const t=(!isNaN(e)||x().isBigNumber(e))&&x()(e).lt(0);return a((!isNaN(e)||x().isBigNumber(e))&&x()(e).gte(0),{value:e,isMinusValue:t})}case Re.id:return a((Array.isArray(r)?r:[r]).find((t=>t===e.split("_")[0]))&&Ke[e.split("_")[0]],{value:e,prefix:r});case Re.binary:return a(e.split("_")[0]===r,{prefix:r,value:e});case Re.string:return a(!0);case Re.ctVersion:return a("object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"abiVersion")&&Object.prototype.hasOwnProperty.call(e,"vmVersion"));case Re.pointers:return a(Array.isArray(e)&&!e.find((e=>e!==Object(e))),{value:e});default:return{}}}(e[r],r,a,o))}),{})}function Tr(e,t){let{excludeKeys:n=[],denomination:r=nr.AETTOS}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=t.filter((e=>{let[t]=e;return!n.includes(t)})),o=xr(e=gr(e,a,{denomination:r}),t,{excludeKeys:n});if(Object.keys(o).length)throw new Error("Transaction build error. "+JSON.stringify(o));return a.map((t=>{let[n,r,a]=t;return mr(e[n],r,a)}))}function Ir(e,t){return t.reduce(((t,n,r)=>{let[a,o,s]=n;return Object.assign(t,{[a]:fr(e[r],o,s)})}),{})}const Cr=e=>{let{vsn:t,objId:n,type:r}=e;const a=!!n,o=a?n:r,s=a?Ht:Ut;if(!s[o])throw new Error(`Transaction ${a?"deserialization":"serialization"} not implemented for ${a?"tag "+n:r}`);if(!s[o][t])throw new Error(`Transaction ${a?"deserialization":"serialization"} not implemented for ${a?"tag "+n:r} version ${t}`);return s[o][t]};function Ar(e,t){let{excludeKeys:n=[],prefix:r="tx",vsn:a=U,denomination:o=nr.AETTOS}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const[s,i]=Cr({type:t,vsn:a}),c=Tr({...e,VSN:a,tag:i},s,{excludeKeys:n,denomination:e.denomination||o}).filter((e=>void 0!==e)),l=(0,tr.encode)(c),d=en(l,r);return{tx:d,rlpEncoded:l,binary:c,txObject:Ir(c,s)}}function Er(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"tx";const r=t?e:Zt(e,n),a=(0,tr.decode)(r),o=an(a[0]),s=an(a[1]),[i]=Cr({objId:o,vsn:s});return{txType:Me[o],tx:Ir(a,i),rlpEncoded:r,binary:a}}function _r(e){return en(D("string"==typeof e&&e.startsWith("tx_")?Zt(e,"tx"):e),"th")}const kr={calculateMinFee:wr,calculateFee:vr,unpackTx:Er,unpackRawTx:Ir,buildTx:Ar,buildRawTx:Tr,validateParams:xr,buildTxHash:_r},Or=["int","string","tuple","address","bool","list","map","record","option","oracle","oracleQuery","hash","signature","bytes","variant"].reduce(((e,t)=>({...e,[t]:t})),{ChainTtl:"Chain.ttl"}),Sr=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.reduce(((e,n)=>{const[r,...a]=n.topics,o=t.find((e=>D(e.name).equals(k(r,!0))));if(!o)return e;const s=o.types.filter((e=>e===Or.string)).length;if(s>1)throw new Error(`Event schema contains more than one string: ${o.types}`);const i=o.types.length-s;if(i!==a.length)throw new Error(`Schema defines ${i} types, but ${a.length} topics present`);return e.push({...n,name:o.name,decoded:o.types.map((e=>Nr(e===Or.string?n.data:a.shift(),e)))}),e}),[])};function Nr(e,t){switch(t){case Or.int:return n=e,new(x())(n.toString()).toString(10);case Or.bool:return!!e;case Or.hash:return k(e,!0).toString("hex");case Or.address:return bn(e);case Or.string:return Zt(e).toString("utf-8");default:return k(e,!0)}var n}var Br=I(1001),Pr=I(2405),jr=I(8367);const Mr=Buffer.from("ed25519 seed"),Rr=2147483648,qr=e=>Buffer.from(e).toString("hex");function Vr(e,t){const n=""===e?[]:(0,Pr.fromString)(e).toPathArray();return n.forEach(((e,t)=>{if(e<Rr)throw new Error(`Segment #${t+1} is not hardened`)})),n.reduce(((e,t)=>Hr(e,t)),t)}function Fr(e,t){if(!["m","m/"].includes(e.slice(0,2)))throw new Error("Invalid path");const n=Ur(t);return Vr(e.slice(2),n)}function $r(e){const{secretKey:t,publicKey:n}=e;return{secretKey:qr(t),publicKey:`ak_${An(n)}`}}function Dr(e){return m().sign.keyPair.fromSeed(e)}function Ur(e){const t=(0,Br.full)(e,Mr);return{secretKey:t.slice(0,32),chainCode:t.slice(32)}}function Hr(e,t){let{secretKey:n,chainCode:r}=e;if(t<Rr)throw new Error(`Child index #${t} is not supported`);const a=Buffer.allocUnsafe(4);a.writeUInt32BE(t,0);const o=Buffer.concat([Buffer.alloc(1,0),Buffer.from(n),Buffer.from(a)]),s=(0,Br.full)(o,r);return{secretKey:s.slice(0,32),chainCode:s.slice(32)}}const Kr={getHdWalletAccountFromMnemonic:(e,t)=>({...$r(Dr(Vr(`${t}h/0h/0h`,Fr("m/44h/457h",(0,jr.mnemonicToSeed)(e))).secretKey)),idx:t}),getSaveHDWalletAccounts:function(e,t,n){const r={secretKey:Bn(t,Buffer.from(e.secretKey,"hex")),chainCode:Bn(t,Buffer.from(e.chainCode,"hex"))};return new Array(n).fill().map(((e,t)=>$r(Dr(Vr(`${t}h/0h/0h`,r).secretKey))))},generateSaveHDWallet:function(e,t){if(!(0,jr.validateMnemonic)(e))throw new Error("Invalid mnemonic");const n=Fr("m/44h/457h",(0,jr.mnemonicToSeed)(e));return{secretKey:qr(Nn(t,n.secretKey)),chainCode:qr(Nn(t,n.chainCode))}},generateMnemonic:function(){return(0,jr.generateMnemonic)()},deriveChild:Hr,getMasterKeyFromSeed:Ur};var Wr=I(1031),Lr=I.n(Wr),Gr=I(8081);const Qr=Lr()((0,Gr.required)({methods:{spendTx:Gr.required,namePreclaimTx:Gr.required,nameClaimTx:Gr.required,nameTransferTx:Gr.required,nameUpdateTx:Gr.required,nameRevokeTx:Gr.required,contractCreateTx:Gr.required,contractCallTx:Gr.required,oracleRegisterTx:Gr.required,oracleExtendTx:Gr.required,oraclePostQueryTx:Gr.required,oracleRespondTx:Gr.required,getAccountNonce:Gr.required,channelCloseSoloTx:Gr.required,channelSlashTx:Gr.required,channelSettleTx:Gr.required,channelSnapshotSoloTx:Gr.required,gaAttachTx:Gr.required,getVmVersion:Gr.required,prepareTxParams:Gr.required}})),Yr=Lr()({deepProps:{Ae:{defaults:{waitMined:!0,verify:!0}}}},(0,Gr.required)({methods:{sendTransaction:Gr.required,height:Gr.required,awaitHeight:Gr.required,topBlock:Gr.required,poll:Gr.required,balance:Gr.required,getBalance:Gr.required,tx:Gr.required,getTxInfo:Gr.required,mempool:Gr.required,txDryRun:Gr.required,getAccount:Gr.required}}));var zr=I(7430),Xr=I.n(zr),Jr=I(7414),Zr=I.n(Jr),ea=I(5713),ta=I.n(ea),na=I(7263),ra=I.n(na),aa=I(6290),oa=I.n(aa);function sa(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{stamp:t,args:n,instance:r}=arguments.length>1?arguments[1]:void 0;return t.compose.deepConfiguration.AsyncInit.initializers.reduce((async(r,a)=>{if(r=await Promise.resolve(r),"function"==typeof a){const o=await Promise.resolve(a.call(r,e,{stamp:t,args:n,instance:r}));return void 0===o?r:o}return r}),r)}const ia=Lr()({deepConf:{AsyncInit:{initializers:[]}},composers(e){let{stamp:t,composables:n}=e;t.compose.deepConfiguration.AsyncInit.initializers=oa()([sa],ra()(ta(),Zr()(n.map((e=>Xr()(["compose","deepConfiguration","AsyncInit","initializers"],e)||(e.compose||e).initializers||[]))))),t.compose.initializers=[sa]}});var ca=I(4021),la=I.n(ca),da=I(6311),ua=I.n(da),ha=I(3656);const pa=I.n(ha)()({storeAsString:!0}),fa=e=>{if("object"==typeof e&&null!==e&&e.constructor===Object)return Object.entries(e).map((e=>{let[t,n]=e;return[t,fa(n)]})).reduce(((e,t)=>{let[n,r]=t;return{...e,[n]:r}}),{});if(Array.isArray(e))return e.map((e=>fa(e)));if("string"==typeof e&&x()(e).toString(10)===e){const t=x()(e);return t.toJSON=()=>t.toString(10),t}return e},ma={stringify:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return pa.stringify(fa(e),...n)},parse:pa.parse},ga=async e=>await new Promise((t=>setTimeout(t,e))),ya=(e,t)=>Object.fromEntries(Object.entries(e).map(t)),wa=(e,t)=>Object.fromEntries(Object.entries(e).filter(t)),ba=(e,t)=>"object"!=typeof t||null===t?t:Array.isArray(t)?t.map((t=>ba(e,t))):ya(t,(t=>{let[n,r]=t;return[e(n),ba(e,r)]})),va=ba.bind(null,A),xa=ba.bind(null,T);let Ta=!1;const Ia=async function(e){let{spec:t,internalUrl:n,disableBigNumbers:r,disableCaseConversion:a,responseInterceptor:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t=t||await(await ua()(e)).json();const s=r?JSON:ma;(["https://compiler.aepps.com","https://latest.compiler.aepps.com"].includes(new URL(e).origin)||new URL(e).origin.includes("https://"))&&(t.schemes=["https"]);const[i,c]=await Promise.all([e,n].map((e=>e?la()({url:e,spec:t,responseInterceptor:e=>{if(!e.text)return e;const t=s.parse(e.text);return Object.assign(e,{body:a?t:xa(t)}),o&&o(e)||e}}):null))),l=[...Object.values(i.apis),ya((null==c?void 0:c.apis.internal)||{},(e=>{let[t,n]=e;return[t,function(){return Ta||(console.warn('SDK\'s wrapper of aeternity node internal API is deprecated, please use external equivalent (for example, "sdk.api.protectedDryRunTxs" instead of "sdk.api.dryRunTxs") or create a wrapper of internal API by yourself (using "genSwaggerClient")'),Ta=!0),n(...arguments)}]}))].reduce(((e,t)=>({...e,...t}))),d=Object.values(t.paths).map((e=>Object.values(e))).flat().reduce(((e,t)=>({...e,[t.operationId]:t})),{}),u=ya(l,(e=>{let[t,n]=e;return[t.slice(0,1).toLowerCase()+t.slice(1),async function(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];const i=d[t],c=[...i.parameters,...i.requestBody?[{required:i.requestBody.required,schema:Object.values(i.requestBody.content)[0].schema,name:"__requestBody"}]:[]],l=c.filter((e=>e.required)).map((e=>e.name));if(r.length<l.length)throw new Error("swagger: Not enough arguments");const u=l.reduce(((e,t,n)=>({...e,[t]:r[n]})),r[l.length]||{}),{__requestBody:h,...p}=ya(u,(e=>{let[t,n]=e;if("object"!=typeof n)return[t,n];const r=Object.keys(c.find((e=>e.name===t)).schema.properties),o=wa(a?n:va(n),(e=>{let[t]=e;return r.includes(t)}));return[t,s.stringify(o)]}));return(await n(p,{requestBody:h})).body}]}));return Object.assign(i,{api:u})};function Ca(e,t,n){const r=e=>e.split(/[-+]/)[0].split(".").map((e=>+e)),a=r(e),o=r(t),s=r(n),i=Math.max(...a,...o,...s)+1,c=e=>e.reverse().reduce(((e,t,n)=>e+t*Math.pow(i,n)),0),l=c(a),d=c(o),u=c(s);return l>=d&&l<u}function Aa(){let{networkId:e,force:t=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!(t||e||this.networkId||this.selectedNode&&this.selectedNode.networkId))throw new Error("networkId is not provided");return!t||e||this.networkId||this.selectedNode&&this.selectedNode.networkId?e||this.networkId||this.selectedNode.networkId:null}const Ea=ia.compose({async init(e){let{url:t,internalUrl:n,ignoreVersion:r}=e;if(!t)throw new Error('"url" required');this.url=t.replace(/\/$/,""),this.internalUrl=n?n.replace(/\/$/,""):this.url;const a=await Ia(`${this.url}/api?oas3`,{internalUrl:this.internalUrl,responseInterceptor:e=>{if(!e.ok)return Object.assign(e,{statusText:`${new URL(e.url).pathname.slice(1)} error: `+e.body.reason})}});if(this.version=a.spec.info.version,!Ca(this.version,_a,ka)&&!r)throw new Error(`Unsupported node version ${this.version}. Supported: >= ${_a} < ${ka}`);this.api=a.api;const{nodeRevision:o,genesisKeyBlockHash:s,networkId:i,protocols:c,topBlockHeight:l}=await this.api.getStatus();return this.consensusProtocolVersion=c.filter((e=>{let{effectiveAtHeight:t}=e;return l>=t})).reduce(((e,t)=>t.effectiveAtHeight>e.effectiveAtHeight?t:e),{effectiveAtHeight:-1,version:0}).version,this.nodeNetworkId=i,Object.assign(this,{revision:o,genesisHash:s})},methods:{getNodeInfo(){return{url:this.url,internalUrl:this.internalUrl,nodeNetworkId:this.nodeNetworkId,version:this.version,consensusProtocolVersion:this.consensusProtocolVersion}}},props:{version:null,consensusProtocolVersion:null,nodeNetworkId:null}}),_a="6.2.0",ka="7.0.0",Oa=Ea,Sa=e=>!["sign","address"].find((t=>"function"!=typeof e[t])),Na=Lr()({init(e){let{networkId:t}=e;!this.networkId&&t&&(this.networkId=t)},methods:{signTransaction:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=[this.getNetworkId(t)];t.innerTx&&n.push("inner_tx");const r=Zt(e,"tx"),a=Buffer.concat([Buffer.from(n.join("-")),D(r)]),o=[await this.sign(a,t)];return Ar({encodedTx:r,signatures:o},Se.signed).tx},getNetworkId:Aa,signMessage:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{returnHex:!1};const n=await this.sign(Mn(e),t);return t.returnHex?Buffer.from(n).toString("hex"):n},verifyMessage:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return qn(e,"string"==typeof t?Buffer.from(t,"hex"):t,Zt(await this.address(n)))}}},(0,Gr.required)({methods:{sign:Gr.required,address:Gr.required}})),Ba=Lr()(Qr,Na,Yr,{methods:{send:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={...this.Ae.defaults,...t},{contractId:r,authFun:a}=t.innerTx?{contractId:!1}:await this.getAccount(await this.address(n)),o=r?await this.signUsingGA(e,{...n,authFun:a}):await this.signTransaction(e,n);return n.innerTx?{hash:kr.buildTxHash(o),rawTx:o}:this.sendTransaction(o,n)},spend:async function(e,t,n){const r={...this.Ae.defaults,...n};return this.send(await this.spendTx({...r,senderId:await this.address(r),recipientId:await this.resolveName(t,"ak",r),amount:e}),r)},transferFunds:async function(e,t,n){if(e<0||e>1)throw new Error(`Fraction should be a number between 0 and 1, got ${e}`);const r={...this.Ae.defaults,...n},a=await this.resolveName(t,"ak",r),o=await this.address(r),s=new(x())(await this.balance(o)),i=s.times(e).integerValue(x().ROUND_HALF_UP),{tx:{fee:c}}=kr.unpackTx(await this.spendTx({...r,senderId:o,recipientId:a,amount:i})),l=i.plus(c).gt(s)?s.minus(c):i;return this.send(await this.spendTx({...r,senderId:o,recipientId:a,amount:l}),r)},payForTransaction:async function(e,t){const n={...this.Ae.defaults,...t};return this.send(await this.payingForTx({...n,payerId:await this.address(n),tx:e}),n)},destroyInstance:function(){["destroyClient","destroyServer"].forEach((e=>this[e]&&"function"==typeof this[e]&&this[e]()))},signUsingGA:async function(e){let{authData:t,authFun:n,...r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.createMetaTx(e,t,n,r)}},deepProps:{Ae:{defaults:{denomination:nr.AETTOS}}}}),Pa=Ba,ja=[async(e,t)=>{let{encodedTx:n,signatures:r}=e,{account:a,node:o,parentTxTypes:s}=t;if(void 0===(n??r))return[];if(1!==r.length)return[];const i=Buffer.from([o.nodeNetworkId,...s.includes(Se.payingFor)?["inner_tx"]:[]].join("-")),c=Buffer.concat([i,n.rlpEncoded]),l=Buffer.concat([i,D(n.rlpEncoded)]),d=Zt(a.id,"ak");return jn(c,r[0],d)||jn(l,r[0],d)?[]:[{message:"Signature cannot be verified, please ensure that you transaction have the correct prefix and the correct private key for the sender address",key:"InvalidSignature",checkedKeys:["encodedTx","signatures"]}]},async(e,t)=>{let{encodedTx:n,tx:r}=e,{node:a,parentTxTypes:o,txType:s}=t;return void 0===(n??r)?[]:Ra(en((n??r).rlpEncoded,"tx"),a,[...o,s])},(e,t)=>{let{txType:n}=t;if(void 0===e.fee)return[];const r=vr(0,n,{gas:+e.gas||0,params:e,showWarning:!1,vsn:e.VSN});return new(x())(r).lte(e.fee)?[]:[{message:`Fee ${e.fee} is too low, minimum fee for this transaction is ${r}`,key:"InsufficientFee",checkedKeys:["fee"]}]},(e,t)=>{let{ttl:n}=e,{height:r}=t;return void 0===n?[]:(n=+n,0===n||n>=r?[]:[{message:`TTL ${n} is already expired, current height is ${r}`,key:"ExpiredTTL",checkedKeys:["ttl"]}])},(e,t)=>{let{amount:n,fee:r,nameFee:a,tx:o}=e,{account:s,parentTxTypes:i,txType:c}=t;if(void 0===(n??r??a))return[];const l=new(x())(r).plus(a||0).plus(n||0).plus(c===Se.payingFor?o.tx.encodedTx.tx.fee:0).minus(i.includes(Se.payingFor)?r:0);return l.lte(s.balance)?[]:[{message:`Account balance ${s.balance} is not enough to execute the transaction that costs ${l.toFixed()}`,key:"InsufficientBalance",checkedKeys:["amount","fee","nameFee"]}]},(e,t)=>{let{nonce:n}=e,{account:r,parentTxTypes:a}=t;if(void 0===n||a.includes(Se.gaMeta))return[];n=+n;const o=r.nonce+1;return n===o?[]:[{...n<o?{message:`Nonce ${n} is already used, valid nonce is ${o}`,key:"NonceAlreadyUsed"}:{message:`Nonce ${n} is too high, valid nonce is ${o}`,key:"NonceHigh"},checkedKeys:["nonce"]}]},e=>{let{gasPrice:t}=e;return void 0===t||t>=J?[]:[{message:`Gas price ${t} must be bigger then ${J}`,key:"MinGasPrice",checkedKeys:["gasPrice"]}]},(e,t)=>{let{ctVersion:n,abiVersion:r}=e,{txType:a,node:o}=t;const{consensusProtocolVersion:s}=o.getNodeInfo(),i=je[s];if(!i)throw new Error(`Unsupported protocol: ${s}`);n||(n={abiVersion:r});const c=i[a];return c&&Object.entries(n).some((e=>{let[t,n]=e;return!c[t].includes(+n)}))?[{message:`ABI/VM version ${JSON.stringify(n)} is wrong, supported is: ${JSON.stringify(c)}`,key:"VmAndAbiVersionMismatch",checkedKeys:["ctVersion","abiVersion"]}]:[]}],Ma=e=>["senderId","accountId","ownerId","callerId","oracleId","fromId","initiator","gaId","payerId"].map((t=>e[t])).filter((e=>e)).map((e=>e.replace(/^ok_/,"ak_")))[0];async function Ra(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const{tx:r,txType:a}=Er(e),o=Ma(r)??(a===Se.signed?Ma(r.encodedTx.tx):null),[s,i]=await Promise.all([o&&t.api.getAccountByPubkey(o).catch((()=>({id:o,balance:new(x())(0),nonce:0}))),t.api.getCurrentKeyBlockHeight().then((e=>{let{height:t}=e;return t}))]);return(await Promise.all(ja.map((e=>e(r,{txType:a,node:t,account:s,height:i,parentTxTypes:n}))))).flat()}const qa=Lr()({init(){let{nodes:e=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pool=new Map,this.validateNodes(e),e.forEach(((e,t)=>{const{name:n,instance:r}=e;this.addNode(n,r,0===t)})),e.length&&this.selectNode(e[0].name)},propertyDescriptors:{api:{enumerable:!0,configurable:!1,get(){if(!this.selectedNode||!this.selectedNode.instance)throw new Error("You can't use Node API. Node is not connected or not defined!");return this.selectedNode.instance.api}}},methods:{addNode(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.pool.has(e))throw new Error(`Node with name ${e} already exist`);this.validateNodes([{name:e,instance:t}]),this.pool.set(e,{name:e,instance:t,url:t.url,internalUrl:t.internalUrl,networkId:t.nodeNetworkId,version:t.version,consensusProtocolVersion:t.consensusProtocolVersion}),!n&&this.selectedNode||this.selectNode(e)},selectNode(e){if(!this.pool.has(e))throw new Error(`Node with name ${e} not in pool`);this.selectedNode=this.pool.get(e)},getNetworkId:Aa,isNodeConnected(){return!!this.selectedNode.instance},getNodeInfo(){if(!this.isNodeConnected())throw new Error("Can not get node info. Node is not connected");return{name:this.selectedNode.name,...this.selectedNode.instance.getNodeInfo()}},getNodesInPool(){return Array.from(this.pool.entries()).map((e=>{let[t,n]=e;return{name:t,...n.instance.getNodeInfo()}}))},validateNodes(e){if(!Array.isArray(e))throw new Error('"nodes" should be an array');const t=e.map((e=>typeof e)).find((e=>"object"!==e));if(t)throw new Error(`Each node should be an object, got ${t} instead`);const n=e.find((e=>"string"!=typeof e.name||"object"!=typeof e.instance));if(t)throw new Error(`Each node should have name (string), instance (object) fields, got ${JSON.stringify(n)} instead`);const r=e.map((e=>e.instance)).find((e=>"object"!=typeof e.api||"string"!=typeof e.genesisHash||"number"!=typeof e.consensusProtocolVersion));if(r)throw new Error(`Each node instance should have api (object), consensusProtocolVersion (number), genesisHash (string) fields, got ${JSON.stringify(r)} instead`)}},props:{selectedNode:{}}}),Va=Yr.compose(qa,{methods:{sendTransaction:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{waitMined:n,verify:r}={...this.Ae.defaults,...t};if(r){const t=await Ra(e,this.selectedNode.instance);if(t.length){const n="Transaction verification errors: "+t.map((e=>e.message)).join(", ");throw Object.assign(new Error(n),{code:"TX_VERIFICATION_ERROR",validation:t,transaction:e})}}try{const{txHash:r}=await this.api.postTransaction({tx:e});if(n){const n={...await this.poll(r,t),rawTx:e};return t.confirm?{...n,confirmationHeight:await this.waitForTxConfirm(r,t)}:n}return{hash:r,rawTx:e}}catch(t){throw Object.assign(t,{rawTx:e,verifyTx:()=>Ra(e,this.selectedNode.instance)})}},balance:async function(e){let{height:t,hash:n,format:r=nr.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{balance:a}=await this.getAccount(e,{hash:n,height:t});return sr(a,{targetDenomination:r}).toString()},getBalance:async function(e){let{height:t,hash:n,format:r=nr.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{balance:a}=await this.getAccount(e,{hash:n,height:t}).catch((e=>({balance:0})));return sr(a,{targetDenomination:r}).toString()},getAccount:async function(e){let{height:t,hash:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t?this.api.getAccountByPubkeyAndHeight(e,t):n?this.api.getAccountByPubkeyAndHash(e,n):this.api.getAccountByPubkey(e)},topBlock:async function(){return this.api.getTopHeader()},tx:async function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const n=await this.api.getTransactionByHash(e);if(["ContractCreateTx","ContractCallTx","ChannelForceProgressTx"].includes(n.tx.type)&&t&&-1!==n.blockHeight)try{return{...n,...await this.getTxInfo(e)}}catch(e){}return n},height:async function(){try{return this._heightPromise||(this._heightPromise=this.api.getCurrentKeyBlockHeight()),(await this._heightPromise).height}finally{delete this._heightPromise}},awaitHeight:async function(e){let t,{interval:n=5e3,attempts:r=20}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(let a=0;a<r;a++)if(a&&await ga(n),t=await this.height(),t>=e)return t;throw new Error(`Giving up after ${(r-1)*n}ms, current height: ${t}, desired height: ${e}`)},poll:async function(e){let{blocks:t=10,interval:n=500,allowUnsynced:r=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=await this.height()+t;do{const t=await this.tx(e).catch((e=>null));if(t&&(-1!==t.blockHeight||r&&t.height))return t;await ga(n)}while(await this.height()<a);throw new Error(`Giving up after ${t} blocks mined, transaction hash: ${e}`)},getTxInfo:async function(e){const t=await this.api.getTransactionInfoByHash(e);return t.callInfo||t},mempool:async function(){return this.api.getPendingTransactions()},getCurrentGeneration:async function(){return this.api.getCurrentGeneration()},getGeneration:async function(e){if("string"==typeof e)return this.api.getGenerationByHash(e);if("number"==typeof e)return this.api.getGenerationByHeight(e);throw new Error("Invalid param, param must be hash or height")},getMicroBlockHeader:async function(e){return this.api.getMicroBlockHeaderByHash(e)},getMicroBlockTransactions:async function(e){return(await this.api.getMicroBlockTransactionsByHash(e)).transactions},getKeyBlock:async function(e){if("string"==typeof e)return this.api.getKeyBlockByHash(e);if("number"==typeof e)return this.api.getKeyBlockByHeight(e);throw new Error("Invalid param, param must be hash or height")},txDryRun:async function(e,t,n){const{results:[{result:r,reason:a,...o}],...s}=await this.api.protectedDryRunTxs({...n,txs:[{tx:e}],accounts:[{pubKey:t,amount:ee.amount}]});if("ok"===r)return{...o,...s};throw Object.assign(new Error("Dry run error, "+a),{tx:e,accountAddress:t,options:n})},getContractByteCode:async function(e){return this.api.getContractCode(e)},getContract:async function(e){return this.api.getContract(e)},getName:async function(e){return this.api.getNameEntryByName(e)},waitForTxConfirm:async function e(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{confirm:3};n.confirm=!0===n.confirm?3:n.confirm;const{blockHeight:r}=await this.tx(t),a=await this.awaitHeight(r+n.confirm,n),{blockHeight:o}=await this.tx(t);switch(o){case-1:throw new Error(`Transaction ${t} is removed from chain`);case r:return a;default:return e(t,n)}},resolveName:async function(e,t){let{verify:n,resolveByNode:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e||"string"!=typeof e)throw new Error(`Name or address should be a string: ${e}`);const a=Object.keys(ue);if(!a.includes(t))throw new Error(`Invalid prefix ${t}, should be one of [${a}]`);try{return Zt(e,t),e}catch(e){}if(ln(e)){if(n||r){const n=await this.getName(e).catch((e=>null));if(!n)throw new Error(`Name not found: ${e}`);const a=n.pointers.find((e=>{let{id:n}=e;return n.split("_")[0]===t}));if(!a)throw new Error(`Name ${e} don't have pointers for ${t}`);if(r)return a.id}return Xt(e)}throw new Error(`Invalid name or address: ${e}`)}}}),Fa=Va,$a=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("object"!=typeof t)throw new Error('"params" should be an object');if("string"!=typeof e||!Object.values(Se).includes(e))throw new Error(`Unknown transaction type ${e}`);const r=vr(t.fee,e,{gas:t.gas,params:t,vsn:t.vsn}),{rlpEncoded:a,binary:o,tx:s,txObject:i}=Ar({...t,fee:r},e,{vsn:t.vsn,...n});return{rlpEncoded:a,binary:o,encodedTx:s,params:i,type:e}},Da=e=>{if(!e)throw new Error(`Invalid transaction: ${e}`);if("string"==typeof e){const{txType:t,tx:n,rlpEncoded:r,binary:a}=Er(e);return{encodedTx:e,type:t,params:n,rlpEncoded:r,binary:a}}if(Buffer.isBuffer(e)){const{txType:t,tx:n,rlpEncoded:r,binary:a}=Er(e,!0);return{encodedTx:en(e,"tx"),type:t,params:n,rlpEncoded:r,binary:a}}},Ua=Lr()({init(){let{tx:e,params:t,type:n,options:r={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.options=r,this.signatures=[],Object.assign(this,function(){let{tx:e,params:t,type:n,options:r={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(t&&n)return $a(n,t,r);if(e)return Da(e);throw new Error('Invalid TxObject arguments. Please provide one of { tx: "tx_asdasd23..." } or { type: "spendTx", params: {...} }')}({tx:e,params:t,type:n,options:r})),this.type===Se.signed){const{signatures:e,encodedTx:{txType:t,tx:n}}=this.params;this.signatures=e,this.params=n,this.type=t,this.isSigned=!0}},statics:{fromString:e=>Ua({tx:e}),fromRlp:e=>Ua({tx:e})},methods:{setProp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!=typeof e)throw new Error("Props should be an object");return this.isSigned=!1,this.signatures=[],Object.assign(this,$a(this.type,{...this.params,...e,fee:null},{...this.options,...t})),this},getSignatures(){if(!this.isSigned)throw new Error("Signature not found, transaction is not signed");return this.signatures},addSignature(e){if(e=E(e)?Buffer.from(e,"hex"):e,!(Buffer.isBuffer(e)||e instanceof Uint8Array))throw new Error("Invalid signature, signature must be of type Buffer or Uint8Array");Object.assign(this,$a(Se.signed,{encodedTx:this.rlpEncoded,signatures:[[...this.signatures,e]]}));const{signatures:t,encodedTx:{txType:n,tx:r}}=this.params;this.signatures=t,this.params=r,this.type=n,this.isSigned=!0},calculateMinFee(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={...this.params,...e};return vr(0,this.type,{gas:t.gas,params:t,vsn:t.vsn})}}}),Ha=Ua;async function Ka(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:K,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0===e)return 0;if(e<0)throw new Error("ttl must be greater than 0");if(t){const{height:t}=await this.api.getCurrentKeyBlock();return+t+e}return e}const Wa=Fa.compose(Qr,{init(e){let{nativeMode:t=!0,showWarning:n=!1}=e;this.nativeMode=t,this.showWarning=n},props:{nativeMode:!0,showWarning:!1},methods:{spendTx:async function(e){let{senderId:t,recipientId:n,amount:r,payload:a=""}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(Se.spend,{senderId:t,...arguments[0],payload:a}),{tx:c}=this.nativeMode?{tx:Ua({params:{...arguments[0],recipientId:n,senderId:t,nonce:i,ttl:s,payload:a},type:Se.spend}).encodedTx}:await this.api.postSpend({...arguments[0],amount:parseInt(r),recipientId:n,senderId:t,nonce:i,ttl:s,fee:parseInt(o),payload:a});return c},namePreclaimTx:async function(e){let{accountId:t,commitmentId:n}=e;const{fee:r,ttl:a,nonce:o}=await this.prepareTxParams(Se.namePreClaim,{senderId:t,...arguments[0]}),{tx:s}=this.nativeMode?{tx:Ua({params:{...arguments[0],nonce:o,ttl:a,fee:r},type:Se.namePreClaim}).encodedTx}:await this.api.postNamePreclaim({...arguments[0],nonce:o,ttl:a,fee:parseInt(r)});return s},nameClaimTx:async function(e){let{accountId:t,name:n,nameSalt:r,vsn:a=2}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(Se.nameClaim,{senderId:t,...arguments[0],vsn:a}),{tx:c}=this.nativeMode?{tx:Ua({params:{...arguments[0],nonce:i,ttl:s,fee:o,vsn:a},type:Se.nameClaim}).encodedTx}:await this.api.postNameClaim({...arguments[0],nonce:i,ttl:s,fee:parseInt(o)});return c},nameTransferTx:async function(e){let{accountId:t,nameId:n,recipientId:r}=e;const{fee:a,ttl:o,nonce:s}=await this.prepareTxParams(Se.nameTransfer,{senderId:t,...arguments[0]}),{tx:i}=this.nativeMode?{tx:Ua({params:{...arguments[0],recipientId:r,nonce:s,ttl:o,fee:a},type:Se.nameTransfer}).encodedTx}:await this.api.postNameTransfer({...arguments[0],recipientId:r,nonce:s,ttl:o,fee:parseInt(a)});return i},nameUpdateTx:async function(e){let{accountId:t,nameId:n,nameTtl:r,pointers:a,clientTtl:o}=e;const{fee:s,ttl:i,nonce:c}=await this.prepareTxParams(Se.nameUpdate,{senderId:t,...arguments[0]}),{tx:l}=this.nativeMode?{tx:Ua({params:{...arguments[0],nonce:c,ttl:i,fee:s},type:Se.nameUpdate}).encodedTx}:await this.api.postNameUpdate({...arguments[0],nonce:c,ttl:i,fee:parseInt(s)});return l},nameRevokeTx:async function(e){let{accountId:t,nameId:n}=e;const{fee:r,ttl:a,nonce:o}=await this.prepareTxParams(Se.nameRevoke,{senderId:t,...arguments[0]}),{tx:s}=this.nativeMode?{tx:Ua({params:{...arguments[0],nonce:o,ttl:a,fee:r},type:Se.nameRevoke}).encodedTx}:await this.api.postNameRevoke({...arguments[0],nonce:o,ttl:a,fee:parseInt(r)});return s},contractCreateTx:async function(e){let{ownerId:t,code:n,vmVersion:r,abiVersion:a,deposit:o,amount:s,gas:i,gasPrice:c=J,callData:l}=e;const d=this.getVmVersion(Se.contractCreate,arguments[0]),{fee:u,ttl:h,nonce:p}=await this.prepareTxParams(Se.contractCreate,{senderId:t,...arguments[0],ctVersion:d,gasPrice:c});return this.nativeMode?{tx:Ua({params:{...arguments[0],nonce:p,ttl:h,fee:u,ctVersion:d,gasPrice:c},type:Se.contractCreate}).encodedTx,contractId:Qt(t,p)}:this.api.postContractCreate({...arguments[0],nonce:p,ttl:h,fee:parseInt(u),gas:parseInt(i),gasPrice:c,vmVersion:d.vmVersion,abiVersion:d.abiVersion})},contractCallTx:async function(e){let{callerId:t,contractId:n,abiVersion:r,amount:a,gas:o,gasPrice:s=J,callData:i}=e;const c=this.getVmVersion(Se.contractCall,arguments[0]),{fee:l,ttl:d,nonce:u}=await this.prepareTxParams(Se.contractCall,{senderId:t,...arguments[0],gasPrice:s,abiVersion:c.abiVersion}),{tx:h}=this.nativeMode?{tx:Ua({params:{...arguments[0],nonce:u,ttl:d,fee:l,abiVersion:c.abiVersion,gasPrice:s},type:Se.contractCall}).encodedTx}:await this.api.postContractCall({...arguments[0],nonce:u,ttl:d,fee:parseInt(l),gas:parseInt(o),gasPrice:s,abiVersion:c.abiVersion});return h},prepareTxParams:async function(e,t){let{senderId:n,nonce:r,ttl:a,fee:o,gas:s,absoluteTtl:i,vsn:c,strategy:l}=t;r=r||(await this.api.getAccountNextNonce(n,{strategy:l}).catch((e=>({nextNonce:1})))).nextNonce;const d=await Ka.call(this,a,!i),u=vr(o,e,{showWarning:this.showWarning,gas:s,params:{...arguments[1],nonce:r,ttl:d},vsn:c});return{fee:u,ttl:d,nonce:r}},oracleRegisterTx:async function(e){let{accountId:t,queryFormat:n,responseFormat:r,queryFee:a,oracleTtl:o,abiVersion:s=Be.NO_ABI}=e;const{fee:i,ttl:c,nonce:l}=await this.prepareTxParams(Se.oracleRegister,{senderId:t,...arguments[0],abiVersion:s}),{tx:d}=this.nativeMode?{tx:Ua({params:{accountId:t,queryFee:a,abiVersion:s,fee:i,oracleTtl:o,nonce:l,ttl:c,queryFormat:n,responseFormat:r},type:Se.oracleRegister}).encodedTx}:await this.api.postOracleRegister({accountId:t,queryFee:a,abiVersion:s,fee:parseInt(i),oracleTtl:o,nonce:l,ttl:c,queryFormat:n,responseFormat:r});return d},oracleExtendTx:async function(e){let{oracleId:t,callerId:n,oracleTtl:r}=e;const{fee:a,ttl:o,nonce:s}=await this.prepareTxParams(Se.oracleExtend,{senderId:n,...arguments[0]}),{tx:i}=this.nativeMode?{tx:Ua({params:{oracleId:t,fee:a,oracleTtl:r,nonce:s,ttl:o},type:Se.oracleExtend}).encodedTx}:await this.api.postOracleExtend({oracleId:t,fee:parseInt(a),oracleTtl:r,nonce:s,ttl:o});return i},oraclePostQueryTx:async function(e){let{oracleId:t,responseTtl:n,query:r,queryTtl:a,queryFee:o,senderId:s}=e;const{fee:i,ttl:c,nonce:l}=await this.prepareTxParams(Se.oracleQuery,{senderId:s,...arguments[0]}),{tx:d}=this.nativeMode?{tx:Ua({params:{oracleId:t,responseTtl:n,query:r,queryTtl:a,fee:i,queryFee:o,ttl:c,nonce:l,senderId:s},type:Se.oracleQuery}).encodedTx}:await this.api.postOracleQuery({oracleId:t,responseTtl:n,query:r,queryTtl:a,fee:parseInt(i),queryFee:o,ttl:c,nonce:l,senderId:s});return d},oracleRespondTx:async function(e){let{oracleId:t,callerId:n,responseTtl:r,queryId:a,response:o}=e;const{fee:s,ttl:i,nonce:c}=await this.prepareTxParams(Se.oracleResponse,{senderId:n,...arguments[0]}),{tx:l}=this.nativeMode?{tx:Ua({params:{oracleId:t,responseTtl:r,queryId:a,response:o,fee:s,ttl:i,nonce:c},type:Se.oracleResponse}).encodedTx}:await this.api.postOracleRespond({oracleId:t,responseTtl:r,queryId:a,response:o,fee:parseInt(s),ttl:i,nonce:c});return l},channelCloseSoloTx:async function(e){let{channelId:t,fromId:n,payload:r,poi:a}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(Se.channelCloseSolo,{senderId:n,...arguments[0],payload:r}),{tx:c}=this.nativeMode?Ar({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:o,nonce:i},Se.channelCloseSolo):await this.api.postChannelCloseSolo({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:parseInt(o),nonce:i});return c},channelSlashTx:async function(e){let{channelId:t,fromId:n,payload:r,poi:a}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(Se.channelSlash,{senderId:n,...arguments[0],payload:r}),{tx:c}=this.nativeMode?Ar({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:o,nonce:i},Se.channelSlash):await this.api.postChannelSlash({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:parseInt(o),nonce:i});return c},channelSettleTx:async function(e){let{channelId:t,fromId:n,initiatorAmountFinal:r,responderAmountFinal:a}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(Se.channelSettle,{senderId:n,...arguments[0]}),{tx:c}=this.nativeMode?Ar({...arguments[0],channelId:t,fromId:n,initiatorAmountFinal:r,responderAmountFinal:a,ttl:s,fee:o,nonce:i},Se.channelSettle):await this.api.postChannelSettle({...arguments[0],channelId:t,fromId:n,initiatorAmountFinal:parseInt(r),responderAmountFinal:parseInt(a),ttl:s,fee:parseInt(o),nonce:i});return c},channelSnapshotSoloTx:async function(e){let{channelId:t,fromId:n,payload:r}=e;const{fee:a,ttl:o,nonce:s}=await this.prepareTxParams(Se.channelSnapshotSolo,{senderId:n,...arguments[0],payload:r}),{tx:i}=this.nativeMode?Ar({...arguments[0],channelId:t,fromId:n,payload:r,ttl:o,fee:a,nonce:s},Se.channelSnapshotSolo):await this.api.postChannelSnapshotSolo({...arguments[0],channelId:t,fromId:n,payload:r,ttl:o,fee:parseInt(a),nonce:s});return i},gaAttachTx:async function(e){let{ownerId:t,code:n,vmVersion:r,abiVersion:a,authFun:o,gas:s,gasPrice:i=J,callData:c}=e;const l=this.getVmVersion(Se.contractCreate,arguments[0]),{fee:d,ttl:u,nonce:h}=await this.prepareTxParams(Se.gaAttach,{senderId:t,...arguments[0],ctVersion:l,gasPrice:i});return{tx:Ua({params:{...arguments[0],nonce:h,ttl:u,fee:d,ctVersion:l,gasPrice:i},type:Se.gaAttach}).encodedTx,contractId:Qt(t,h)}},payingForTx:async function(e){let{tx:t,payerId:n,...r}=e;const a={tx:Er(t),payerId:n},{fee:o,nonce:s}=await this.prepareTxParams(Se.payingFor,{...a,...r,senderId:n});return Ar({...a,...r,fee:o,nonce:s},Se.payingFor).tx},getAccountNonce:async function(e,t){if(t)return t;const{nonce:n}=await this.api.getAccountByPubkey(e).catch((()=>({nonce:0})));return n+1},getVmVersion:function(e){let{vmVersion:t,abiVersion:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{consensusProtocolVersion:r}=this.getNodeInfo(),a=je[r];if(!a)throw new Error("Not supported consensus protocol version");const o=a[e];if(!o)throw new Error("Not supported tx type");if(n=n||o.abiVersion[0],t=t||o.vmVersion[0],!o.vmVersion.includes(t))throw new Error(`VM VERSION ${t} do not support by this node. Supported: [${o.vmVersion}]`);if(!o.abiVersion.includes(n))throw new Error(`ABI VERSION ${n} do not support by this node. Supported: [${o.abiVersion}]`);return{vmVersion:t,abiVersion:n}}}}),La=Wa,Ga=new WeakMap,Qa=Na.compose({init(e){let{keypair:t,gaId:n}=e;if(this.isGa=!!n,n){if(!wn(n))throw new Error("Invalid GA address");return void Ga.set(this,{publicKey:n})}if(!t||"object"!=typeof t)throw new Error("KeyPair must be an object");if(!t.secretKey||!t.publicKey)throw new Error('KeyPair must must have "secretKey", "publicKey" properties');if("string"!=typeof t.publicKey||-1===t.publicKey.indexOf("ak_"))throw new Error('Public Key must be a base58c string with "ak_" prefix');if(!Buffer.isBuffer(t.secretKey)&&"string"==typeof t.secretKey&&!E(t.secretKey))throw new Error("Secret key must be hex string or Buffer");const r=Buffer.from(Zt(t.publicKey,"ak"));if(!Fn(Buffer.from(t.secretKey,"hex"),r))throw new Error("Invalid Key Pair");Ga.set(this,{secretKey:Buffer.isBuffer(t.secretKey)?t.secretKey:Buffer.from(t.secretKey,"hex"),publicKey:t.publicKey})},props:{isGa:!1},methods:{sign(e){if(this.isGa)throw new Error("You are trying to sign data using GA account without keypair");return Promise.resolve(Pn(e,Ga.get(this).secretKey))},address(){return Promise.resolve(Ga.get(this).publicKey)}}}),Ya=Na.compose(ia,{async init(e){let{accounts:t=[],address:n}=e;this.accounts=Object.fromEntries(await Promise.all(t.map((async e=>[await e.address(),e])))),n=n||Object.keys(this.accounts)[0],n&&this.selectAccount(n)},props:{accounts:{}},deepProps:{selectedAddress:null},methods:{async address(){let{onAccount:e=this.selectedAddress}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._resolveAccount(e).address()},async sign(e){let{onAccount:t=this.selectedAddress}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._resolveAccount(t).sign(e)},addresses(){return Object.keys(this.accounts)},async addAccount(e){let{select:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=await e.address();this.accounts[n]=e,t&&this.selectAccount(n)},removeAccount(e){this.accounts[e]?(delete this.accounts[e],this.selectedAddress===e&&(this.selectedAddress=null)):console.warn(`removeAccount: Account for ${e} not available`)},selectAccount(e){if(Zt(e,"ak"),!this.accounts[e])throw new Error(`Account for ${e} not available`);this.selectedAddress=e},_resolveAccount(e){if(null===e)throw new Error("No account or wallet configured");switch(typeof e){case"string":if(Zt(e,"ak"),!this.accounts[e])throw new Error(`Account for ${e} not available`);return this.accounts[e];case"object":return Sa(e)?e:Qa({keypair:e});default:throw new Error(`Unknown account type: ${typeof e} (account: ${e})`)}}}}),za=Pa.compose({methods:{aensQuery:async function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};cn(e);const r=await this.getName(e);return Object.freeze(Object.assign(r,{pointers:r.pointers||[],update:async function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...await t.aensUpdate(e,r,{...n,...a}),...await t.aensQuery(e)}},transfer:async function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...await t.aensTransfer(e,r,{...n,...a}),...await t.aensQuery(e)}},revoke:async function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.aensRevoke(e,{...n,...r})},extendTtl:async function(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:te,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!a||"number"!=typeof a||a>te)throw new Error("Ttl must be an number and less then 180000 blocks");return{...await t.aensUpdate(e,r.pointers.map((e=>e.id)),{...n,...o,nameTtl:a}),...await t.aensQuery(e)}}}))},aensPreclaim:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};cn(e);const n={...this.Ae.defaults,...t},r=xn(),a=await this.height(),o=Jt(e,r),s=await this.namePreclaimTx({...n,accountId:await this.address(n),commitmentId:o}),i=await this.send(s,n);return Object.freeze({...i,height:a,claim:t=>this.aensClaim(e,r,{...t,onAccount:n.onAccount}),salt:r,commitmentId:o})},aensClaim:async function(e,t,n){cn(e);const r={...this.Ae.defaults,...n},a=hn(e);if(r.nameFee!==this.Ae.defaults.nameFee&&a.gt(r.nameFee))throw new Error(`the provided fee ${r.nameFee} is not enough to execute the claim, required: ${a}`);r.nameFee=r.nameFee!==this.Ae.defaults.nameFee?r.nameFee:a;const o=await this.nameClaimTx({...r,accountId:await this.address(r),nameSalt:t,name:en(e,"nm")}),s=await this.send(o,r);if(!mn(e)){const t=r.waitMined?await this.aensQuery(e,r):{};return Object.assign(s,t)}return{...s,nameFee:r.nameFee}},aensUpdate:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{extendPointers:!1};cn(e);const r={...this.Ae.defaults,...n};if(!un(t))throw new Error("Invalid pointers array");t=[...n.extendPointers?(await this.getName(e)).pointers:[],...t.map((e=>Object.fromEntries([["id",e],["key",dn(e)]])))].reduce(((e,t)=>[...e.filter((e=>e.key!==t.key)),t]),[]);const a=await this.nameUpdateTx({...r,nameId:Xt(e),accountId:await this.address(r),pointers:t});return this.send(a,r)},aensTransfer:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};cn(e);const r={...this.Ae.defaults,...n},a=await this.nameTransferTx({...r,nameId:Xt(e),accountId:await this.address(r),recipientId:t});return this.send(a,r)},aensRevoke:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};cn(e);const n={...this.Ae.defaults,...t},r=await this.nameRevokeTx({...n,nameId:Xt(e),accountId:await this.address(n)});return this.send(r,n)},aensBid:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:oe,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.aensClaim(e,0,{...n,nameFee:t,vsn:2})}},deepProps:{Ae:{defaults:{clientTtl:ae,nameTtl:te,nameFee:oe}}}}),Xa=za,Ja=Lr()((0,Gr.required)({methods:{contractEncodeCallDataAPI:Gr.required,compileContractAPI:Gr.required,contractGetACI:Gr.required,setCompilerUrl:Gr.required,getCompilerVersion:Gr.required,contractDecodeCallResultAPI:Gr.required,validateByteCodeAPI:Gr.required,getFateAssembler:Gr.required,getBytecodeCompilerVersion:Gr.required}})),Za=ia.compose(Ja,{async init(e){let{compilerUrl:t,ignoreVersion:n}=e;t&&await this.setCompilerUrl(t,{ignoreVersion:n})},methods:{async setCompilerUrl(e){let{ignoreVersion:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error('"compilerUrl" required');e=e.replace(/\/$/,"");const n=await Ia(`${e}/api`,{disableBigNumbers:!0,disableCaseConversion:!0,responseInterceptor:e=>{if(e.ok)return;let t=`${new URL(e.url).pathname.slice(1)} error`;return e.body.reason&&(t+=": "+e.body.reason+(e.body.parameter?` in ${e.body.parameter}`:"")+(e.body.info?` (${JSON.stringify(e.body.info)})`:"")),Array.isArray(e.body)&&(t+=":\n"+e.body.map((e=>`${e.type}:${e.pos.line}:${e.pos.col}: ${e.message}${e.context?`(${e.context})`:""}`)).map((e=>e.trim())).join("\n")),e.statusText=t,e}});if(this.compilerVersion=n.spec.info.version,this._compilerApi=n.api,!t&&!Ca(this.compilerVersion,eo,to))throw new Error(`Unsupported compiler version ${this.compilerVersion}. Supported: >= ${eo} < ${to}`)},_ensureCompilerReady(){if(!this._compilerApi)throw new Error("Compiler is not ready")},_prepareCompilerOptions(){let{filesystem:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{file_system:e}},getCompilerVersion(){return this._ensureCompilerReady(),Promise.resolve(this.compilerVersion)},async contractEncodeCallDataAPI(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0;this._ensureCompilerReady();const{calldata:a}=await this._compilerApi.encodeCalldata({source:e,function:t,arguments:n,options:this._prepareCompilerOptions(r)});return a},async compileContractAPI(e,t){this._ensureCompilerReady();const{bytecode:n}=await this._compilerApi.compileContract({code:e,options:this._prepareCompilerOptions(t)});return n},contractGetACI(e,t){return this._ensureCompilerReady(),this._compilerApi.generateACI({code:e,options:this._prepareCompilerOptions(t)})},contractDecodeCallDataByCodeAPI(e,t){return this._ensureCompilerReady(),this._compilerApi.decodeCalldataBytecode({bytecode:e,calldata:t})},contractDecodeCallDataBySourceAPI(e,t,n,r){return this._ensureCompilerReady(),this._compilerApi.decodeCalldataSource({function:t,source:e,calldata:n,options:this._prepareCompilerOptions(r)})},contractDecodeCallResultAPI(e,t,n,r,a){return this._ensureCompilerReady(),this._compilerApi.decodeCallResult({function:t,source:e,"call-result":r,"call-value":n,options:this._prepareCompilerOptions(a)})},async validateByteCodeAPI(e,t,n){this._ensureCompilerReady();const r=await this._compilerApi.validateByteCode({bytecode:e,source:t,options:this._prepareCompilerOptions(n)});return"object"==typeof r||r},getFateAssembler(e,t){return this._ensureCompilerReady(),this._compilerApi.getFateAssemblerCode({bytecode:e,options:this._prepareCompilerOptions(t)})},getBytecodeCompilerVersion(e,t){return this._ensureCompilerReady(),this._compilerApi.getCompilerVersion({bytecode:e,options:this._prepareCompilerOptions(t)})}},props:{compilerVersion:null}}),eo="6.0.0",to="7.0.0";var no=I(2478),ro=I.n(no),ao=I(2892),oo=I.n(ao),so=I(5206),io=I.n(so),co=I(590);function lo(e,t,n){const r=e.functions.find((e=>e.name===t));if(!r&&"init"!==t)throw new Error(`Function ${t} doesn't exist in contract`);return{...r,bindings:[{state:e.state,type_defs:e.type_defs,name:e.name},...n.map(io()(["state","type_defs","name"]))],event:e.event?e.event.variant:[]}}const uo=Pa.compose(Ja,{methods:{getContractInstance:async function(){var e=this;let{source:t,bytecode:n,aci:r,contractAddress:a,filesystem:o={},validateBytecode:s,...i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(r=r||t&&await this.contractGetACI(t,{filesystem:o}),!r)throw new Error("Either ACI or source code is required");if(a=a&&await this.resolveName(a,"ct",{resolveByNode:!0}),!a&&!t&&!n)throw new Error("Can't create instance by ACI without address");if(a){const e=await this.getContract(a).catch((()=>null));if(!e)throw new Error(`Contract with address ${a} not found on-chain`);if(!e.active)throw new Error(`Contract with address ${a} not active`)}const c={interface:oo()(null,ro()("interface",r)),aci:oo()(null,Xr()(["encoded_aci","contract"],r)),calldata:new co.Encoder([r.encoded_aci,...r.external_encoded_aci]),externalAci:r.external_encoded_aci?r.external_encoded_aci.map((e=>e.contract||e.namespace)):[],source:t,bytecode:n,deployInfo:{address:a},options:{...this.Ae.defaults,callStatic:!1,filesystem:o,...i},compilerVersion:this.compilerVersion};if(s){if(!a)throw new Error("Can't validate bytecode without contract address");const e=(await this.getContractByteCode(a)).bytecode;if(!(t&&await this.validateByteCodeAPI(e,t,c.options).catch((()=>!1))||n===e))throw new Error(`Contract ${t?"source":"bytecode"} do not correspond to the bytecode deployed on the chain`)}c.compile=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(c.bytecode)throw new Error("Contract already compiled");if(!c.source)throw new Error("Can't compile without source code");const{bytecode:n}=await e.contractCompile(c.source,{...c.options,...t});return c.bytecode=n,c.bytecode};const l=async(e,t)=>{const n=await this.send(e,t),r={hash:n.hash,tx:Ha({tx:n.rawTx}),txData:n,rawTx:n.rawTx};if(!1===t.waitMined)return r;const a=await this.getTxInfo(n.hash);return await d(a),{...r,result:a}},d=e=>{let t,{returnType:n,returnValue:r}=e;switch(n){case"ok":return;case"revert":t=c.calldata.decodeFateString(r);break;case"error":t=Zt(r).toString();break;default:throw new Error(`Unknown returnType: ${n}`)}throw new Error("Invocation failed"+(t?`: "${t}"`:""))};return c.deploy=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;const r={...c.options,...n,deposit:Y};if(c.bytecode||await c.compile(r),r.callStatic)return c.call("init",t,r);if(c.deployInfo.address)throw new Error("Contract already deployed");const a=await e.address(r),{tx:o,contractId:s}=await e.contractCreateTx({...r,callData:c.calldata.encode(c.aci.name,"init",t),code:c.bytecode,ownerId:a}),{hash:i,rawTx:d,result:u,txData:h}=await l(o,r);return c.deployInfo=Object.freeze({result:u,owner:a,transaction:i,rawTx:d,txData:h,address:s,call:(t,n,a)=>e.contractCall(c.source,s,t,n,{...r,...a}),callStatic:(t,n,a)=>e.contractCallStatic(c.source,s,t,n,{...r,...a}),createdAt:new Date}),c.deployInfo},c.call=async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a={...c.options,...r},o=lo(c.aci,t,c.externalAci),s=c.deployInfo.address;if(!t)throw new Error("Function name is required");if("init"===t&&!a.callStatic)throw new Error('"init" can be called only via dryRun');if(!s&&"init"!==t)throw new Error("You need to deploy contract before calling!");if(x()(a.amount).gt(0)&&Object.prototype.hasOwnProperty.call(o,"payable")&&!o.payable)throw new Error(`You try to pay "${a.amount}" to function "${t}" which is not payable. Only payable function can accept tokens`);const i=await e.address(a).catch((e=>{if(a.callStatic)return ee.pub;throw e})),u=c.calldata.encode(c.aci.name,t,n);let h;if(a.callStatic){"number"==typeof a.top&&(a.top=(await e.getKeyBlock(a.top)).hash);const n={...a,callData:u,nonce:a.top&&(await e.getAccount(i,{hash:a.top})).nonce+1},r="init"===t?(await e.contractCreateTx({...n,code:c.bytecode,ownerId:i})).tx:await e.contractCallTx({...n,callerId:i,contractId:s}),{callObj:o,...l}=await e.txDryRun(r,i,a);await d(o),h={...l,tx:Ha({tx:r}),result:o}}else{const t=await e.contractCallTx({...a,callerId:i,contractId:s,callData:u});h=await l(t,a)}return(a.waitMined||a.callStatic)&&(h.decodedResult=o.returns&&"unit"!==o.returns&&"init"!==t&&c.calldata.decode(c.aci.name,t,h.result.returnValue),h.decodedEvents=c.decodeEvents(h.result.log)),h},c.decodeEvents=e=>{const t=(c.aci.event?c.aci.event.variant:[]).map((e=>{const t=Object.keys(e)[0];return{name:t,types:e[t]}}));return Sr(e,t)},c.methods=Object.fromEntries(c.aci.functions.map((e=>{let{name:t,arguments:n,stateful:r}=e;const a=e=>function(){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];const s=a.length===n.length+1?a.pop():{};if("object"!=typeof s)throw new Error(`Options should be an object: ${s}`);return"init"===t?c.deploy(a,{callStatic:e,...s}):c.call(t,a,{callStatic:e,...s})};return[t,Object.assign(a("init"!==t&&!r),{get:a(!0),send:a(!1),decodeEvents:e=>c.decodeEvents(e)})]}))),c},contractCompile:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={...this.Ae.defaults,...t},r=await this.compileContractAPI(e,t);return Object.freeze({encodeCall:(t,r)=>this.contractEncodeCallDataAPI(e,t,r,n),deploy:(t,a)=>this.contractDeploy(r,e,t,{...n,...a}),deployStatic:(t,a)=>this.contractCallStatic(e,null,"init",t,{...n,...a,bytecode:r}),bytecode:r})},contractCallStatic:async function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4?arguments[4]:void 0;const o=await this.getContractInstance({...a,source:e,contractAddress:t});return o.call(n,r,{...a,callStatic:!0})},contractDeploy:async function(e,t,n,r){const a=await this.getContractInstance({...r,source:t});return a.bytecode=e,a.deploy(n,r)},contractCall:async function(e,t,n,r,a){return(await this.getContractInstance({...a,source:e,contractAddress:t})).call(n,r,a)},delegateSignatureCommon:async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=await this.sign(Buffer.concat([Buffer.from(this.getNetworkId(t)),...Object.prototype.hasOwnProperty.call(t,"onAccount")?[Zt(await this.address(t))]:[],...e.map((e=>Zt(e)))]),t);return Buffer.from(n).toString("hex")},createAensDelegationSignature:async function(e){let{contractId:t,name:n}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.delegateSignatureCommon([...n?[Xt(n)]:[],t],r)},createOracleDelegationSignature:async function(e){let{contractId:t,queryId:n}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.delegateSignatureCommon([...n?[n]:[],t],r)}},deepProps:{Ae:{defaults:{deposit:Y,gasPrice:J,amount:z,gas:X}}}}),ho=uo.compose(qa).compose(Za),po=ho,fo=e=>async(t,n)=>{if("object"!=typeof t)throw new Error("AuthData must be an object");if(t.gas&&x()(t.gas).gt(Z))throw new Error(`the maximum gas value for ga authFun is ${Z}, got ${t.gas}`);const r=t.gas||Z;if(t.callData){if("cb"!==t.callData.split("_")[0])throw new Error('Auth data must be a string with "cb" prefix.');return{authCallData:t.callData,gas:r}}if(!t.source||!t.args)throw new Error("Auth data must contain source code and arguments.");return{authCallData:await e.contractEncodeCallDataAPI(t.source,n,t.args),gas:r}},mo=uo.compose({methods:{createGeneralizeAccount:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a={...this.Ae.defaults,...r},o=await this.address(a);if(await this.isGA(o))throw new Error(`Account ${o} is already GA`);const{tx:s,contractId:i}=await this.gaAttachTx({...a,ownerId:o,code:(await this.contractCompile(t)).bytecode,callData:await this.contractEncodeCallDataAPI(t,"init",n),authFun:D(e)}),{hash:c,rawTx:l}=await this.send(s,a);return Object.freeze({owner:o,transaction:c,rawTx:l,gaContractId:i})},createMetaTx:async function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!t)throw new Error("authData is required");const{authCallData:a,gas:o}=await fo(this)(t,n),s={...this.Ae.defaults,...r},{abiVersion:i}=await this.getVmVersion(Se.contractCall),c=yo(Er(e)),l={...s,tx:{...c,tx:c.txObject},gaId:await this.address(s),abiVersion:i,authData:a,gas:o,vsn:2},{fee:d}=await this.prepareTxParams(Se.gaMeta,l),{rlpEncoded:u}=Ar({...l,fee:`${d}`},Se.gaMeta,{vsn:2});return yo(u).tx},isGA:async function(e){const{contractId:t}=await this.getAccount(e);return!!t}}}),go=mo,yo=e=>Ar({encodedTx:e,signatures:[]},Se.signed),wo=e=>Object.fromEntries(e.map((e=>[e,e]))),bo=1,vo=wo(["to_waellet","to_aepp"]),xo=wo(["window","extension"]),To=wo(["readyToConnect","closeConnection","updateNetwork","updateAddress"]),Io=wo(["connect","subscribeAddress","sign","address","signMessage"]),Co=wo(["current","connected"]),Ao=wo(["subscribe","unsubscribe"]),Eo={wallet:{[To.readyToConnect]:"connection.announcePresence",[To.updateAddress]:"address.update"},aepp:{[Io.address]:"address.get",[Io.connect]:"connection.open",[Io.sign]:"transaction.sign",[Io.signMessage]:"message.sign",[Io.subscribeAddress]:"address.subscribe"},[To.updateNetwork]:"networkId.update",[To.closeConnection]:"connection.close"},_o={CONNECTED:"CONNECTED",DISCONNECTED:"DISCONNECTED",CONNECTION_REJECTED:"CONNECTION_REJECTED",WAITING_FOR_CONNECTION_APPROVE:"WAITING_FOR_CONNECTION_APPROVE",WAITING_FOR_CONNECTION_REQUEST:"WAITING_FOR_CONNECTION_REQUEST",WAITING_FOR_SUBSCRIPTION:"WAITING_FOR_SUBSCRIPTION"},ko={broadcastFailed:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:3,data:e,message:"Broadcast failed"}},invalidTransaction:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:2,data:e,message:"Invalid transaction"}},rejectedByUser:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:4,data:e,message:"Operation rejected by user"}},connectionDeny:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:9,data:e,message:"Wallet deny your connection request"}},permissionDeny:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:11,data:e,message:`You are not subscribed for account ${e.account}`}},internalError:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:12,data:e,message:e.msg}},notAuthorize:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:10,data:e,message:"You are not connected to the wallet"}},unsupportedProtocol:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:5,data:e,message:"Unsupported Protocol Version"}},unsupportedNetwork:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:8,data:e,message:"Unsupported Network"}}},Oo=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const{chrome:t,browser:n}=window;if(void 0!==t&&t===Object(t))return t;if(void 0!==n&&n===Object(n))return n;if(!e)throw new Error("Browser is not detected");return{}},So=()=>window!==window.parent,No=e=>{let t=0;return function(n){let{id:r,method:a,params:o,result:s,error:i}=n,c=arguments.length>1&&void 0!==arguments[1]&&arguments[1];c||(t+=1),r=c?r||null:t;const l=o?{params:o}:s?{result:s}:{error:i};return e.sendMessage({jsonrpc:"2.0",...r?{id:r}:{},method:a,...l}),r}},Bo=function(e,t){let{debug:n=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=e[t.method];return r&&"function"==typeof r?r:(n&&console.log(`Unknown message method ${t.method}`),()=>async()=>!0)},Po=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{method:e,params:t}},jo=function(e,t){let{error:n,result:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{id:e,method:t,...n?{error:n}:{result:r}}},Mo=e=>(t,n,r)=>e.sendMessage(jo(t,n,r),!0),Ro=()=>{},qo=e=>3===["","connected","current"].filter((t=>"object"==typeof(t?e[t]:e))).length,Vo=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e.find((e=>e===t))){if("object"!=typeof n.onAccount||!Sa(n.onAccount))throw new Error("Provided onAccount should be an AccountBase");t=n.onAccount}return t},Fo=Lr()({init(e){let{id:t,name:n,networkId:r,icons:a,connection:o,handlers:[s,i]}=e;this.id=t,this.connection=o,this.info={name:n,networkId:r,icons:a},this.callbacks={},this.addressSubscription=[],this.accounts={},this.sendMessage=No(this.connection),o.connect(((e,t)=>{if(!e||!e.jsonrpc||"2.0"!==e.jsonrpc||!e.method)throw new Error(`Received invalid message: ${e}`);s(e,t)}),((e,t)=>{this.disconnect(!0),"function"==typeof i&&i(t,this)}))},propertyDescriptors:{currentAccount:{enumerable:!0,configurable:!1,get(){return this.isHasAccounts()?Object.keys(this.accounts.current)[0]:void 0}},addresses:{enumerable:!0,configurable:!1,get(){return this.isHasAccounts()?[...Object.keys(this.accounts.current),...Object.keys(this.accounts.connected)]:[]}},origin:{enumerable:!0,configurable:!1,get(){return this.connection}}},methods:{updateInfo(e){Object.assign(this.info,e)},isHasAccounts(){return"object"==typeof this.accounts&&"object"==typeof this.accounts.connected&&"object"==typeof this.accounts.current},isSubscribed(){return this.addressSubscription.length&&this.isHasAccounts()},hasAccessToAccount(e){return!!e&&this.addresses.find((t=>t===e))},isConnected(){return this.connection.isConnected()&&this.info.status===_o.CONNECTED},getCurrentAccount(){let{onAccount:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e||Object.keys(this.accounts.current)[0]},disconnect(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.info.status=_o.DISCONNECTED,this.addressSubscription=[],this.accounts={},e||this.connection.disconnect()},setAccounts(e){let{forceNotification:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!qo(e))throw new Error("Invalid accounts object. Should be object like: `{ connected: {}, selected: {} }`");this.accounts=e,t||this.sendMessage(Po(Eo.wallet.updateAddress,this.accounts),!0)},updateSubscription(e,t){return e!==Ao.subscribe||this.addressSubscription.includes(t)||this.addressSubscription.push(t),e===Ao.unsubscribe&&this.addressSubscription.includes(t)&&(this.addressSubscription=this.addressSubscription.filter((e=>e!==t))),this.addressSubscription},request(e,t){const n=this.sendMessage(Po(e,t));if(Object.prototype.hasOwnProperty.call(this.callbacks,n))throw new Error("Callback Already exist");return new Promise(((e,t)=>{this.callbacks[n]={resolve:e,reject:t}}))},processResponse(e,t){let{id:n,error:r,result:a}=e;if(!this.callbacks[n])throw new Error(`Can't find callback for this messageId ${n}`);a?this.callbacks[n].resolve(..."function"==typeof t?t({id:n,result:a}):[a]):this.callbacks[n].reject(r),delete this.callbacks[n]}}}),$o={[Eo.wallet.updateAddress]:e=>t=>{let{params:n}=t;e.rpcClient.accounts=n,e.onAddressChange(n)},[Eo.updateNetwork]:e=>t=>{e.rpcClient.info.networkId=t.params.networkId,e.onNetworkChange(t.params)},[Eo.closeConnection]:e=>t=>{e.disconnectWallet(),e.onDisconnect(t.params)}},Do={[Eo.aepp.address]:e=>t=>e.rpcClient.processResponse(t),[Eo.aepp.connect]:e=>t=>{t.result&&(e.rpcClient.info.status=_o.CONNECTED),e.rpcClient.processResponse(t)},[Eo.aepp.subscribeAddress]:e=>t=>{t.result&&(t.result.address&&(e.rpcClient.accounts=t.result.address),t.result.subscription&&(e.rpcClient.addressSubscription=t.result.subscription)),e.rpcClient.processResponse(t,(e=>{let{id:t,result:n}=e;return[n]}))},[Eo.aepp.sign]:e=>t=>{e.rpcClient.processResponse(t,(e=>{let{id:t,result:n}=e;return[n.signedTransaction||n.transactionHash]}))},[Eo.aepp.signMessage]:e=>t=>{e.rpcClient.processResponse(t,(e=>{let{id:t,result:n}=e;return[n.signature]}))}},Uo={},Ho=Pa.compose({async init(e){let{name:t,onAddressChange:n=Ro,onDisconnect:r=Ro,onNetworkChange:a=Ro,connection:o,forceValidation:s=!1,debug:i=!1}=e;this.connection=o,this.name=t,this.debug=i,o&&await this.connectToWallet(o),this.onDisconnect=r,this.onAddressChange=n,this.onNetworkChange=a,["onDisconnect","onAddressChange","onNetworkChange"].forEach((e=>{if(!s&&"function"!=typeof this[e])throw new Error(`Call-back for ${e} must be an function!`)}))},deepProps:{Ae:{defaults:{walletBroadcast:!0}}},methods:{sign(){},addresses(){if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");return[this.rpcClient.currentAccount,...Object.keys(this.rpcClient.accounts.connected)]},async connectToWallet(e){if(this.rpcClient&&this.rpcClient.isConnected())throw new Error("You are already connected to wallet "+this.rpcClient);var t;return this.rpcClient=Fo({connection:e,networkId:this.getNetworkId({force:!0}),...e.connectionInfo,id:(0,Un.v4)(),handlers:[(t=this,async e=>e.id?Object.prototype.hasOwnProperty.call(t.rpcClient.callbacks,e.id)?Bo(Do,e,{debug:t.debug})(t)(e):Bo(Uo,e,{debug:t.debug})(t)(e):Bo($o,e,{debug:t.debug})(t)(e)),this.onDisconnect]}),this.sendConnectRequest()},async disconnectWallet(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");e&&this.rpcClient.sendMessage(Po(Eo.closeConnection,{reason:"bye"}),!0),this.rpcClient.disconnect(),this.rpcClient=null},async address(){let{onAccount:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");const t=this.rpcClient.currentAccount;if(!t)throw new Error("You are not subscribed for an account.");if(e&&!this.rpcClient.hasAccessToAccount(e))throw new Error(`You do not have access to account ${e}`);return e||t},async askAddresses(){if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");return this.rpcClient.request(Eo.aepp.address)},async subscribeAddress(e,t){if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");return this.rpcClient.request(Eo.aepp.subscribeAddress,{type:e,value:t})},async signTransaction(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");if(t.onAccount&&!this.rpcClient.hasAccessToAccount(t.onAccount))throw new Error(`You do not have access to account ${t.onAccount}`);return this.rpcClient.request(Eo.aepp.sign,{...t,tx:e,returnSigned:!0,networkId:this.getNetworkId()})},async signMessage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");if(t.onAccount&&!this.rpcClient.hasAccessToAccount(t.onAccount))throw new Error(`You do not have access to account ${t.onAccount}`);return this.rpcClient.request(Eo.aepp.signMessage,{...t,message:e})},async sendConnectRequest(){return this.rpcClient.request(Eo.aepp.connect,{name:this.name,version:bo,networkId:this.getNetworkId({force:!0})})},async send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");if(t.onAccount&&!this.rpcClient.hasAccessToAccount(t.onAccount))throw new Error(`You do not have access to account ${t.onAccount}`);const n={...this.Ae.defaults,...t};if(!n.walletBroadcast){const t=await this.signTransaction(e,{onAccount:n.onAccount});return this.sendTransaction(t,n)}return this.rpcClient.request(Eo.aepp.sign,{onAccount:n.onAccount,tx:e,returnSigned:!1,networkId:this.getNetworkId()})}}}),Ko=Pa.compose({methods:{registerOracle:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r={...this.Ae.defaults,...n},a=await this.address(r),o=await this.oracleRegisterTx({...r,accountId:a,queryFormat:e,responseFormat:t});return{...await this.send(o,r),...await this.getOracleObject(`ok_${a.slice(3)}`)}},respondToQuery:async function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a={...this.Ae.defaults,...r},o=await this.address(a),s=await this.oracleRespondTx({...a,oracleId:e,queryId:t,callerId:o,response:n});return{...await this.send(s,a),...await this.getOracleObject(e)}},extendOracleTtl:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r={...this.Ae.defaults,...n},a=await this.address(r),o=await this.oracleExtendTx({...r,oracleId:e,callerId:a,oracleTtl:t});return{...await this.send(o,r),...await this.getOracleObject(e)}},postQueryToOracle:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n.queryFee||(await this.api.getOracleByPubkey(e)).queryFee,a={...this.Ae.defaults,queryFee:r,...n},o=await this.address(a),s=await this.oraclePostQueryTx({...a,oracleId:e,senderId:o,query:t}),i=Yt(o,Er(s).tx.nonce,e);return{...await this.send(s,a),...await this.getQueryObject(e,i)}},pollForQueryResponse:async function(e,t){let{attempts:n=20,interval:r=5e3}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};for(let a=0;a<n;a++){a&&await ga(r);const{response:n}=await this.api.getOracleQueryByPubkeyAndQueryId(e,t),o=Zt(n,"or");if(o.length)return String(o)}throw new Error(`Giving up after ${(n-1)*r}ms`)},pollForQueries:function(e,t){let{interval:n=5e3}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=new Set,a=async()=>{const n=((await this.api.getOracleQueriesByPubkey(e)).oracleQueries||[]).filter((e=>{let{id:t}=e;return!r.has(t)}));n.forEach((e=>{let{id:t}=e;return r.add(t)})),n.length&&t(n)};a();const o=setInterval(a,n);return()=>clearInterval(o)},getOracleObject:async function(e){const t=await this.api.getOracleByPubkey(e),{oracleQueries:n}=await this.api.getOracleQueriesByPubkey(e);return{...t,queries:n,pollQueries:this.pollForQueries.bind(this,e),postQuery:this.postQueryToOracle.bind(this,e),respondToQuery:this.respondToQuery.bind(this,e),extendOracle:this.extendOracleTtl.bind(this,e),getQuery:this.getQueryObject.bind(this,e)}},getQueryObject:async function(e,t){const n=await this.api.getOracleQueryByPubkeyAndQueryId(e,t);return{...n,decodedQuery:Cn(n.query.slice(3)).toString(),decodedResponse:Cn(n.response.slice(3)).toString(),respond:this.respondToQuery.bind(this,e,t),pollForResponse:this.pollForQueryResponse.bind(this,e,t),decode:e=>Cn(e.slice(3))}}},deepProps:{Ae:{defaults:{queryFee:W,oracleTtl:L,queryTtl:G,responseTtl:Q}}}}),Wo=Ko,Lo=Pa.compose(La,Wo,ho,Xa,Fa,Ho),Go={[Eo.closeConnection]:(e,t)=>{let{client:n}=t;return async t=>{n.disconnect(!0),e.onDisconnect(t.params,n)}}},Qo={},Yo={[Eo.aepp.connect](e,t,n,r){let{name:a,networkId:o,version:s,icons:i}=r;return s!==bo?{error:ko.unsupportedProtocol()}:(n.updateInfo({status:_o.WAITING_FOR_CONNECTION_APPROVE,name:a,networkId:o,icons:i,version:s}),e("onConnection",{name:a,networkId:o,version:s},(()=>(n.updateInfo({status:_o.CONNECTED}),{result:t.getWalletInfo()})),(e=>(n.updateInfo({status:_o.CONNECTION_REJECTED}),{error:ko.connectionDeny(e)}))))},[Eo.aepp.subscribeAddress](e,t,n,r){let{type:a,value:o}=r;return n.isConnected()?e("onSubscription",{type:a,value:o},(async function(){let{accounts:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{const r=e||t.getAccounts();if(!qo(r))throw new Error("Invalid provided accounts object");const s=n.updateSubscription(a,o);return n.setAccounts(r,{forceNotification:!0}),{result:{subscription:s,address:r}}}catch(e){return t.debug&&console.error(e),{error:ko.internalError({msg:e.message})}}}),(e=>({error:ko.rejectedByUser(e)}))):{error:ko.notAuthorize()}},[Eo.aepp.address]:(e,t,n)=>n.isConnected()&&n.isSubscribed()?e("onAskAccounts",{},(function(){let{accounts:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{result:e||[...Object.keys(n.accounts.current),...Object.keys(n.accounts.connected)]}}),(e=>({error:ko.rejectedByUser(e)}))):{error:ko.notAuthorize()},[Eo.aepp.sign](e,t,n,r){let{tx:a,onAccount:o,networkId:s,returnSigned:i=!1}=r;const c=o||n.currentAccount;return s&&n.updateInfo({networkId:s}),n.isConnected()?n.hasAccessToAccount(c)?s&&s===t.getNetworkId()?e("onSign",{tx:a,returnSigned:i,onAccount:c,txObject:Ha.fromString(a)},(async function(e){let n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{n=Vo(t.addresses(),c,r)}catch(e){return t.debug&&console.error(e),{error:ko.internalError({msg:e.message})}}try{return{result:i?{signedTransaction:await t.signTransaction(e||a,{onAccount:n})}:{transactionHash:await t.send(e||a,{onAccount:n,verify:!1})}}}catch(n){if(!i){const r=await Ra(e||a,t.selectedNode.instance);return r.length?{error:ko.invalidTransaction(r)}:{error:ko.broadcastFailed(n.message)}}throw n}}),(e=>({error:ko.rejectedByUser(e)}))):{error:ko.unsupportedNetwork()}:{error:ko.permissionDeny({account:c})}:{error:ko.notAuthorize()}},[Eo.aepp.signMessage](e,t,n,r){let{message:a,onAccount:o}=r;if(!n.isConnected())return{error:ko.notAuthorize()};const s=o||n.currentAccount;return n.hasAccessToAccount(s)?e("onMessageSign",{message:a,onAccount:s},(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{const n=Vo(t.addresses(),s,e);return{result:{signature:await t.signMessage(a,{onAccount:n,returnHex:!0})}}}catch(e){return t.debug&&console.error(e),{error:ko.internalError({msg:e.message})}}}),(e=>({error:ko.rejectedByUser(e)}))):{error:ko.permissionDeny({account:s})}}},zo=(e,t)=>async(n,r)=>{const a=e.rpcClients[t];if(!n.id)return Bo(Go,n,{debug:e.debug})(e,{client:a})(n,r);if(Object.prototype.hasOwnProperty.call(a.callbacks,n.id))return Bo(Qo,n,{debug:e.debug})(e,{client:a})(n,r);{const{id:t,method:o}=n,s=(n,s,i,c)=>()=>new Promise((l=>{e[n](a,{id:t,method:o,params:s,accept:function(){return l(i(...arguments))},deny:function(){return l(c(...arguments))}},r)})),i=Bo(Yo,n,{debug:e.debug})(s,e,a,n.params),c="function"==typeof i?await i():i;Mo(a)(t,o,c)}},Xo=Pa.compose(Ya,{init(){var e=this;let{name:t,onConnection:n,onSubscription:r,onSign:a,onDisconnect:o,onAskAccounts:s,onMessageSign:i,forceValidation:c=!1,debug:l=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.debug=l,this.onConnection=n,this.onSubscription=r,this.onSign=a,this.onDisconnect=o,this.onAskAccounts=s,this.onMessageSign=i,this.rpcClients={},["onConnection","onSubscription","onSign","onDisconnect","onMessageSign"].forEach((e=>{if(!c&&"function"!=typeof this[e])throw new Error(`Call-back for ${e} must be an function!`)})),this.name=t,this.id=(0,Un.v4)();const d=this.selectAccount.bind(this),u=this.addAccount.bind(this),h=this.selectNode.bind(this);this.selectAccount=function(t){let{condition:n=(()=>!0)}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};d(t),Object.values(e.rpcClients).filter((e=>e.isConnected()&&e.isSubscribed()&&e.hasAccessToAccount(t)&&n(e))).forEach((e=>e.setAccounts({current:{[t]:{}},connected:{...e.accounts.current,...Object.entries(e.accounts.connected).filter((e=>{let[n,r]=e;return n!==t})).reduce(((e,t)=>{let[n,r]=t;return{...e,[n]:r}}),{})}})))},this.addAccount=async function(t){let{select:n,meta:r={},condition:a=(()=>!0)}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};await u(t,{select:n});const o=await t.address();Object.values(e.rpcClients).filter((e=>e.isConnected()&&e.isSubscribed()&&a(e))).forEach((e=>e.setAccounts({current:{...n?{[o]:r}:e.accounts.current},connected:{...n?e.accounts.current:{[o]:r},...e.accounts.connected}})))},this.selectNode=e=>{h(e),Object.values(this.rpcClients).filter((e=>e.isConnected())).forEach((e=>e.sendMessage(Po(Eo.updateNetwork,{networkId:this.getNetworkId()}),!0)))}},methods:{removeRpcClient(e){let{forceConnectionClose:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.rpcClients[e];if(!n)throw new Error(`RpcClient with id ${e} do not exist`);n.disconnect(t),delete this.rpcClients[e]},addRpcClient(e){const t=(0,Un.v4)();return this.rpcClients[t]=Fo({id:t,info:{status:_o.WAITING_FOR_CONNECTION_REQUEST},connection:e,handlers:[zo(this,t),this.onDisconnect]}),t},shareWalletInfo(e){e({jsonrpc:"2.0",...Po(Eo.wallet.readyToConnect,this.getWalletInfo())})},getWalletInfo(){const e=Oo(!0).runtime;return{id:e&&e.id?e.id:this.id,name:this.name,networkId:this.getNetworkId(),origin:window.location.origin,type:e&&e.id?xo.extension:xo.window}},getAccounts(){return{current:this.selectedAddress?{[this.selectedAddress]:{}}:{},connected:this.addresses().filter((e=>e!==this.selectedAddress)).reduce(((e,t)=>({...e,[t]:{}})),{})}}}}),Jo=Pa.compose(Xo,La,po,Wo,Xa,go,Fa);var Zo=I(3752),es=I(3205);const ts=new WeakMap,ns=new WeakMap,rs=new WeakMap,as=new WeakMap,os=new WeakMap,ss=new WeakMap,is=new WeakMap,cs=new WeakMap,ls=new WeakMap,ds=new WeakMap,us=new WeakMap,hs=new WeakMap,ps=new WeakMap,fs=new WeakMap,ms=new WeakMap,gs=new WeakMap;function ys(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];ss.get(e).emit(...n)}function ws(e,t){if(!t)throw new Error("State Channels FSM entered unknown state");as.set(e,t),t.handler.enter&&t.handler.enter(e),Is(e)}function bs(e,t){t!==ns.get(e)&&(ns.set(e,t),ys(e,"statusChanged",t))}function vs(e,t){rs.set(e,t),ys(e,"stateChanged",t)}function xs(e,t){const{debug:n=!1}=ts.get(e);n&&console.log("Send message: ",t),os.get(e).send(ma.stringify(t))}function Ts(e,t,n){ls.set(e,[...ls.get(e)||[],{guard:t,action:n}]),Is(e)}async function Is(e){const t=ds.get(e),n=ls.get(e)||[];if(t||!n.length)return;const r=as.get(e),a=n.findIndex((t=>t.guard(e,r)));if(-1===a)return;ls.set(e,n.filter(((e,t)=>a!==t))),ds.set(e,!0);const o=await Promise.resolve(n[a].action(e,r));ds.set(e,!1),ws(e,o)}async function Cs(e){const t=is.get(e);if(cs.get(e)||!t.length)return;const[n,...r]=t;is.set(e,r||[]),cs.set(e,!0),await async function(e,t){const{handler:n,state:r}=as.get(e);ws(e,await Promise.resolve(n(e,t,r)))}(e,n),cs.set(e,!1),Cs(e)}function As(e){clearTimeout(fs.get(e)),clearTimeout(ms.get(e)),fs.set(e,setTimeout((()=>{xs(e,{jsonrpc:"2.0",method:"channels.system",params:{action:"ping"}}),ms.set(e,setTimeout((()=>{_s(e),ys(e,"error",new Error("Server pong timed out"))}),5e3))}),1e4))}function Es(e,t,n){return new Promise(((r,a)=>{const o=us.set(e,us.get(e)+1).get(e);ps.get(e).set(o,(e=>e.result?r(e.result):e.error?a(function(e){const[{message:t}={}]=e.error.data||[];return t?new Error(`${e.error.message}: ${t}`):new Error(e.error.message)}(e)):void 0)),xs(e,{jsonrpc:"2.0",method:t,id:o,params:n})}))}function _s(e){os.get(e).close(),clearTimeout(fs.get(e)),clearTimeout(ms.get(e))}async function ks(e,t){let{url:n,...r}=t;ts.set(e,r),as.set(e,{handler:r.existingFsmId?Ps:Bs}),ss.set(e,new es.EventEmitter),us.set(e,0),ps.set(e,new Map);const a=new URL(n);Object.entries(r).filter((e=>{let[t]=e;return!["sign","debug"].includes(t)})).forEach((e=>{let[t,n]=e;return a.searchParams.set(A(t),n)})),a.searchParams.set("protocol","json-rpc"),bs(e,"connecting");const o=new Zo.w3cwebsocket(a.toString());await new Promise(((t,n)=>Object.assign(o,{onerror:n,onopen:()=>{t(),bs(e,"connected"),r.reconnectTx&&(ws(e,{handler:Fs}),setTimeout((async()=>vs(e,(await Es(e,"channels.get.offchain_state",{})).signed_tx)))),As(e)},onclose:()=>{bs(e,"disconnected"),clearTimeout(fs.get(e)),clearTimeout(ms.get(e))},onmessage:t=>{let{data:n}=t;return function(e,t){const n=ma.parse(t),{debug:r=!1}=ts.get(e);if(r&&console.log("Receive message: ",n),n.id){const t=ps.get(e).get(n.id);try{t(n)}finally{ps.get(e).delete(n.id)}}else"channels.message"===n.method?ys(e,"message",n.params.data.message):"channels.system.pong"===n.method?n.params.channel_id!==hs.get(e)&&null!=hs.get(e)||As(e):(is.set(e,[...is.get(e)||[],n]),Cs(e))}(e,n)}}))),os.set(e,o)}function Os(e){return`tx_${Tn(e)}`}async function Ss(e,t){const{signatures:n,encodedTx:r}=Er(e).tx,a=await t(Os(r.rlpEncoded));if("string"==typeof a){const{tx:e,txType:t}=Er(a);return Os(Ar({signatures:n.concat(e.signatures),encodedTx:e.encodedTx.rlpEncoded},t).rlpEncoded)}return a}function Ns(e,t,n){return n&&n.reject&&n.reject(Object.assign(new Error(`Unexpected message received:\n\n${JSON.stringify(t)}`),{wsMessage:t})),{handler:Fs}}function Bs(e,t,n){return"channels.info"===t.method?["channel_accept","funding_created"].includes(t.params.data.event)?(bs(e,{channel_accept:"accepted",funding_created:"halfSigned"}[t.params.data.event]),{handler:js}):"channel_reestablished"===t.params.data.event?{handler:qs}:"fsm_up"===t.params.data.event?(gs.set(e,t.params.data.fsm_id),{handler:Bs}):{handler:Bs}:"channels.error"===t.method?(ys(e,"error",new Error(t.payload.message)),{handler:ai}):void 0}async function Ps(e,t,n){return"channels.info"===t.method&&"fsm_up"===t.params.data.event?(gs.set(e,t.params.data.fsm_id),vs(e,(await Es(e,"channels.get.offchain_state",{})).signed_tx),{handler:Fs}):Ns(0,t,n)}async function js(e,t,n){const r={initiator:"initiator_sign",responder:"responder_sign"}[ts.get(e).role];if(t.method===`channels.sign.${r}`){if(t.params.data.tx){const n=await ts.get(e).sign(r,t.params.data.tx);return xs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{tx:n}}),{handler:Ms}}const n=await Ss(t.params.data.signed_tx,(t=>ts.get(e).sign(r,t)));return xs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{signed_tx:n}}),{handler:Ms}}}function Ms(e,t,n){if("channels.on_chain_tx"===t.method){if("funding_signed"===t.params.data.info&&"initiator"===ts.get(e).role)return{handler:Rs};if("funding_created"===t.params.data.info&&"responder"===ts.get(e).role)return{handler:Rs}}if("channels.info"===t.method&&"funding_signed"===t.params.data.event&&"initiator"===ts.get(e).role)return hs.set(e,t.params.channel_id),bs(e,"signed"),{handler:Ms}}function Rs(e,t,n){if("channels.info"===t.method){const e={funding_created:Rs,own_funding_locked:Rs,funding_locked:qs}[t.params.data.event];if(e)return{handler:e}}if("channels.on_chain_tx"===t.method)return ys(e,"onChainTx",t.params.data.tx,{info:t.params.data.info,type:t.params.data.type}),{handler:Rs}}function qs(e,t,n){if("channels.info"===t.method&&"open"===t.params.data.event)return hs.set(e,t.params.channel_id),{handler:Vs}}function Vs(e,t,n){if("channels.update"===t.method)return vs(e,t.params.data.state),{handler:Fs}}async function Fs(e,t,n){switch(t.method){case"channels.info":switch(t.params.data.event){case"update":case"withdraw_created":case"deposit_created":return{handler:Us};case"own_withdraw_locked":case"withdraw_locked":case"own_deposit_locked":case"deposit_locked":case"peer_disconnected":case"channel_reestablished":case"open":return ys(e,t.params.data.event),{handler:Fs};case"fsm_up":return gs.set(e,t.params.data.fsm_id),{handler:Fs};case"timeout":case"close_mutual":case"shutdown":return{handler:Fs};case"closing":return bs(e,"closing"),{handler:Fs};case"closed_confirmed":return bs(e,"closed"),{handler:ai};case"died":return bs(e,"died"),{handler:ai}}break;case"channels.on_chain_tx":return ys(e,"onChainTx",t.params.data.tx,{info:t.params.data.info,type:t.params.data.type}),{handler:Fs};case"channels.leave":return{handler:Fs};case"channels.update":return vs(e,t.params.data.state),{handler:Fs};case"channels.sign.shutdown_sign_ack":return Us(e,t,n)}}async function $s(e,t,n){if("channels.sign.update"===t.method){const{sign:r}=n;if(t.params.data.tx)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{tx:await r(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:Ds,state:n};const a=await Ss(t.params.data.signed_tx,(e=>r(e,{updates:t.params.data.updates})));if("string"==typeof a)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{signed_tx:a}}),{handler:Ds,state:n};if("number"==typeof a)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{error:a}}),{handler:$s,state:n}}if("channels.error"===t.method)return n.reject(new Error(t.data.message)),{handler:Fs};if(t.error){const{data:e=[]}=t.error;return e.find((e=>1001===e.code))?n.reject(new Error("Insufficient balance")):e.find((e=>1002===e.code))?n.reject(new Error("Amount cannot be negative")):n.reject(new Error(t.error.message)),{handler:Fs}}return"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Fs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Fs}):Ns(0,t,n)}function Ds(e,t,n){return"channels.update"===t.method?(vs(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Fs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Fs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Fs}):t.error?(n.reject(new Error(t.error.message)),{handler:Fs}):Ns(0,t,n)}async function Us(e,t,n){const[,r]=t.method.match(/^channels\.sign\.([^.]+)$/)||[];if(r){if(t.params.data.tx){const n=await ts.get(e).sign(r,t.params.data.tx,{updates:t.params.data.updates});if(n)return xs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{tx:n}}),{handler:Fs}}else{const a=await Ss(t.params.data.signed_tx,(n=>ts.get(e).sign(r,n,{updates:t.params.data.updates})));if("string"==typeof a)return xs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{signed_tx:a}}),{handler:Fs};if("number"==typeof a)return xs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{error:a}}),{handler:Hs,state:n}}return xs(e,{jsonrpc:"2.0",method:"channels.update.new",params:{from:Sn().publicKey,to:Sn().publicKey,amount:1}}),{handler:Hs,state:n}}return Ns(0,t,n)}function Hs(e,t,n){return t.error?{handler:Hs,state:n}:"channels.conflict"===t.method?{handler:Fs}:Ns(0,t,n)}async function Ks(e,t,n){if("channels.sign.shutdown_sign"===t.method){if(t.params.data.tx)return xs(e,{jsonrpc:"2.0",method:"channels.shutdown_sign",params:{tx:await n.sign(t.params.data.tx)}}),{handler:Ws,state:n};const r=await Ss(t.params.data.signed_tx,(e=>n.sign(e)));return xs(e,{jsonrpc:"2.0",method:"channels.shutdown_sign",params:{signed_tx:r}}),{handler:Ws,state:n}}return Ns(0,t,n)}function Ws(e,t,n){return"channels.on_chain_tx"===t.method?{handler:ai,state:n}:Ns(0,t,n)}function Ls(e,t,n){return"channels.leave"===t.method?(n.resolve({channelId:t.params.channel_id,signedTx:t.params.data.state}),_s(e),{handler:ai}):"channels.error"===t.method?(n.reject(new Error(t.data.message)),{handler:Fs}):Ns(0,t,n)}async function Gs(e,t,n){if("channels.sign.withdraw_tx"===t.method){const{sign:r}=n;if(t.params.data.tx)return xs(e,{jsonrpc:"2.0",method:"channels.withdraw_tx",params:{tx:await r(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:Qs,state:n};const a=await Ss(t.params.data.signed_tx,(e=>r(e,{updates:t.params.data.updates})));if("string"==typeof a)return xs(e,{jsonrpc:"2.0",method:"channels.withdraw_tx",params:{signed_tx:a}}),{handler:Qs,state:n};if("number"==typeof a)return xs(e,{jsonrpc:"2.0",method:"channels.withdraw_tx",params:{error:a}}),{handler:Qs,state:n}}return Ns(0,t,n)}function Qs(e,t,n){if("channels.on_chain_tx"===t.method)return n.onOnChainTx&&n.onOnChainTx(t.params.data.tx),{handler:Qs,state:n};if("channels.info"===t.method&&["own_withdraw_locked","withdraw_locked"].includes(t.params.data.event)){const e={own_withdraw_locked:n.onOwnWithdrawLocked,withdraw_locked:n.onWithdrawLocked}[t.params.data.event];return e&&e(),{handler:Qs,state:n}}return"channels.update"===t.method?(vs(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Fs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Fs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Fs}):Ns(0,t,n)}async function Ys(e,t,n){if("channels.sign.deposit_tx"===t.method){const{sign:r}=n;if(t.params.data.tx)return xs(e,{jsonrpc:"2.0",method:"channels.deposit_tx",params:{tx:await r(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:zs,state:n};const a=await Ss(t.params.data.signed_tx,(e=>r(e,{updates:t.params.data.updates})));if("string"==typeof a)return xs(e,{jsonrpc:"2.0",method:"channels.deposit_tx",params:{signed_tx:a}}),{handler:zs,state:n};if("number"==typeof a)return xs(e,{jsonrpc:"2.0",method:"channels.deposit_tx",params:{error:a}}),{handler:zs,state:n}}return Ns(0,t,n)}function zs(e,t,n){if("channels.on_chain_tx"===t.method)return n.onOnChainTx&&n.onOnChainTx(t.params.data.tx),{handler:zs,state:n};if("channels.info"===t.method&&["own_deposit_locked","deposit_locked"].includes(t.params.data.event)){const e={own_deposit_locked:n.onOwnDepositLocked,deposit_locked:n.onDepositLocked}[t.params.data.event];return e&&e(),{handler:zs,state:n}}return"channels.update"===t.method?(vs(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Fs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Fs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Fs}):Ns(0,t,n)}async function Xs(e,t,n){if("channels.sign.update"===t.method){if(t.params.data.tx)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{tx:await n.sign(t.params.data.tx)}}),{handler:Js,state:n};const r=await Ss(t.params.data.signed_tx,(e=>n.sign(e)));if("string"==typeof r)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{signed_tx:r}}),{handler:Js,state:n};if("number"==typeof r)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{error:r}}),{handler:Js,state:n}}return Ns(0,t,n)}function Js(e,t,n){if("channels.update"===t.method){const{round:r}=Er(t.params.data.state).tx.encodedTx.tx,a=ts.get(e)[{initiator:"initiatorId",responder:"responderId"}[ts.get(e).role]];return vs(e,t.params.data.state),n.resolve({accepted:!0,address:kn(a,r),signedTx:t.params.data.state}),{handler:Fs}}return"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Fs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Fs}):Ns(0,t,n)}async function Zs(e,t,n){if("channels.sign.update"===t.method){if(t.params.data.tx)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{tx:await n.sign(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:ni,state:n};const r=await Ss(t.params.data.signed_tx,(e=>n.sign(e,{updates:t.params.data.updates})));if("string"==typeof r)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{signed_tx:r}}),{handler:ni,state:n};if("number"==typeof r)return xs(e,{jsonrpc:"2.0",method:"channels.update",params:{error:r}}),{handler:ni,state:n}}return Ns(0,t,n)}async function ei(e,t,n){if("channels.sign.force_progress_tx"===t.method){const r=await Ss(t.params.data.signed_tx,(e=>n.sign(e,{updates:t.params.data.updates})));return xs(e,{jsonrpc:"2.0",method:"channels.force_progress_sign",params:{signed_tx:r}}),{handler:ti,state:n}}return Ns(0,t,n)}function ti(e,t,n){return"channels.on_chain_tx"===t.method&&(n.onOnChainTx&&n.onOnChainTx(t.params.data),ys(e,"onChainTx",t.params.data.tx,{info:t.params.data.info,type:t.params.data.type}),n.resolve({accepted:!0,tx:t.params.data.tx})),Ns(0,t,n)}function ni(e,t,n){return"channels.update"===t.method?(vs(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Fs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Fs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Fs}):Ns(0,t,n)}function ri(e,t,n){return"channels.calls_pruned.reply"===t.method?(n.resolve(),{handler:Fs}):(n.reject(new Error("Unexpected message received")),{handler:ai})}function ai(e,t,n){return n?"closing"===t.params.data.event?{handler:ai,state:n}:"channel_closed"===t.params.data.info?(n.closeTx=t.params.data.tx,{handler:ai,state:n}):"closed_confirmed"===t.params.data.event?(n.resolve(n.closeTx),{handler:ai}):{handler:ai,state:n}:{handler:ai}}function oi(e){return Object.entries(e).reduce(((e,t)=>{let[n,r]=t;return{...e,[T(n)]:r}}),{})}Fs.enter=e=>{bs(e,"open")};const si=ia.compose({async init(e){ks(this,e)},methods:{on:function(e,t){ss.get(this).on(e,t)},off:function(e,t){ss.get(this).removeListener(e,t)},status:function(){return ns.get(this)},state:async function(){return oi(await Es(this,"channels.get.offchain_state",{}))},round:function(){if(!rs.get(this))return null;const{txType:e,tx:t}=Er(rs.get(this)).tx.encodedTx;switch(e){case Se.channelCreate:return 1;case Se.channelOffChain:case Se.channelWithdraw:case Se.channelDeposit:return parseInt(t.round,10);default:return null}},id:function(){return hs.get(this)},fsmId:function(){return gs.get(this)},update:function(e,t,n,r,a){return new Promise(((o,s)=>{Ts(this,((e,t)=>t.handler===Fs),((i,c)=>(xs(i,{jsonrpc:"2.0",method:"channels.update.new",params:{from:e,to:t,amount:n,meta:a}}),{handler:$s,state:{resolve:o,reject:s,sign:r}})))}))},poi:async function(e){let{accounts:t,contracts:n}=e;return(await Es(this,"channels.get.poi",{accounts:t,contracts:n})).poi},balances:async function(e){return Object.fromEntries((await Es(this,"channels.get.balances",{accounts:e})).map((e=>[e.account,e.balance])))},leave:function(){return new Promise(((e,t)=>{Ts(this,((e,t)=>t.handler===Fs),((n,r)=>(xs(n,{jsonrpc:"2.0",method:"channels.leave",params:{}}),{handler:Ls,state:{resolve:e,reject:t}})))}))},shutdown:function(e){return new Promise(((t,n)=>{Ts(this,((e,t)=>t.handler===Fs),((r,a)=>(xs(r,{jsonrpc:"2.0",method:"channels.shutdown",params:{}}),{handler:Ks,state:{sign:e,resolve:t,reject:n}})))}))},sendMessage:function(e,t){let n=e;"object"==typeof e&&(n=JSON.stringify(e));const r=e=>xs(e,{jsonrpc:"2.0",method:"channels.message",params:{info:n,to:t}});if("connecting"===this.status()){const e=t=>{"connecting"!==t&&(setTimeout((()=>r(this)),500),this.off("statusChanged",e))};this.on("statusChanged",e)}else r(this)},withdraw:function(e,t){let{onOnChainTx:n,onOwnWithdrawLocked:r,onWithdrawLocked:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((o,s)=>{Ts(this,((e,t)=>t.handler===Fs),((i,c)=>(xs(i,{jsonrpc:"2.0",method:"channels.withdraw",params:{amount:e}}),{handler:Gs,state:{sign:t,resolve:o,reject:s,onOnChainTx:n,onOwnWithdrawLocked:r,onWithdrawLocked:a}})))}))},deposit:function(e,t){let{onOnChainTx:n,onOwnDepositLocked:r,onDepositLocked:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((o,s)=>{Ts(this,((e,t)=>t.handler===Fs),((i,c)=>(xs(i,{jsonrpc:"2.0",method:"channels.deposit",params:{amount:e}}),{handler:Ys,state:{sign:t,resolve:o,reject:s,onOnChainTx:n,onOwnDepositLocked:r,onDepositLocked:a}})))}))},createContract:function(e,t){let{code:n,callData:r,deposit:a,vmVersion:o,abiVersion:s}=e;return new Promise(((e,i)=>{Ts(this,((e,t)=>t.handler===Fs),((c,l)=>(xs(c,{jsonrpc:"2.0",method:"channels.update.new_contract",params:{code:n,call_data:r,deposit:a,vm_version:o,abi_version:s}}),{handler:Xs,state:{sign:t,resolve:e,reject:i}})))}))},callContract:function(e,t){let{amount:n,callData:r,contract:a,abiVersion:o}=e;return new Promise(((e,s)=>{Ts(this,((e,t)=>t.handler===Fs),((i,c)=>(xs(i,{jsonrpc:"2.0",method:"channels.update.call_contract",params:{amount:n,call_data:r,contract_id:a,abi_version:o}}),{handler:Zs,state:{resolve:e,reject:s,sign:t}})))}))},callContractStatic:async function(e){let{amount:t,callData:n,contract:r,abiVersion:a}=e;return oi(await Es(this,"channels.dry_run.call_contract",{amount:t,call_data:n,contract_id:r,abi_version:a}))},getContractCall:async function(e){let{caller:t,contract:n,round:r}=e;return oi(await Es(this,"channels.get.contract_call",{caller_id:t,contract_id:n,round:r}))},getContractState:async function(e){const t=await Es(this,"channels.get.contract",{pubkey:e});return oi({...t,contract:oi(t.contract)})},disconnect:function(){return _s(this)},cleanContractCalls:function(){return new Promise(((e,t)=>{Ts(this,((e,t)=>t.handler===Fs),((n,r)=>(xs(n,{jsonrpc:"2.0",method:"channels.clean_contract_calls",params:{}}),{handler:ri,state:{resolve:e,reject:t}})))}))},forceProgress:function(e,t){let{amount:n,callData:r,contract:a,abiVersion:o,gas:s=1e6,gasPrice:i=1e9,nonce:c}=e,{onOnChainTx:l}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((e,c)=>{Ts(this,((e,t)=>t.handler===Fs),((d,u)=>(xs(d,{jsonrpc:"2.0",method:"channels.force_progress",params:{amount:n,call_data:r,contract_id:a,abi_version:o,gas_price:i,gas:s}}),{handler:ei,state:{resolve:e,reject:c,sign:t,onOnChainTx:l}})))}))}},statics:{reconnect:async function(e,t){const{sign:n}=e;return si({...e,reconnectTx:await n("reconnect",Ar(t,Se.channelReconnect).tx)})}}}),ii=si,ci=Pa.compose(Ya,Fa,La,Xa,po,Wo,go),li=Lr()({init(e){let{pageConnection:t,extConnection:n,allowCrossOrigin:r=!1}=e;if(!window)throw new Error("Window object not found, you can run bridge only in browser");if(!t)throw new Error("pageConnection required");if(!n)throw new Error("extConnection required");this.allowCrossOrigin=r,this.pageConnection=t,this.extConnection=n},methods:{run:function(){const e=this.allowCrossOrigin;this.extConnection.connect((e=>{this.pageConnection.sendMessage(e)})),this.pageConnection.connect(((t,n,r)=>{(e||r===window)&&this.extConnection.sendMessage(t)}))},stop:function(){this.extConnection.disconnect(),this.pageConnection.disconnect()}}}),di=(0,Gr.required)({methods:{connect:Gr.required,disconnect:Gr.required,sendMessage:Gr.required,isConnected:Gr.required}}),ui=()=>{const e="object"==typeof Oo(!0).extension,t=window&&window.location&&window.location.protocol.startsWith("http");return e&&t?window:So()?window.parent:void 0},hi=Lr()({init(){let{connectionInfo:e={},target:t=ui(),self:n=window,origin:r,sendDirection:a,receiveDirection:o=vo.to_aepp,debug:s=!1,forceOrigin:i=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a&&!Object.keys(vo).includes(a))throw new Error(`sendDirection must be one of [${Object.keys(vo)}]`);if(!Object.keys(vo).includes(o))throw new Error(`receiveDirection must be one of [${Object.keys(vo)}]`);this.connectionInfo={id:(0,Un.v4)(),...e};const c=n,l=t;if(this.origin=r,this.debug=s,this.forceOrigin=i,this.sendDirection=a,this.receiveDirection=o,this.subscribeFn=e=>c.addEventListener("message",e,!1),this.unsubscribeFn=e=>c.removeEventListener("message",e,!1),this.postFn=e=>l.postMessage(e,this.origin||"*"),!this.connectionInfo.id)throw new Error("ID required.")},methods:{connect:function(e){const t=this.origin,n=this.receiveDirection,r=this.debug,a=this.forceOrigin;if(this.listener)throw new Error("You already connected");this.listener=(o,s)=>{if(o&&"object"==typeof o.data&&(a||!t||t===o.origin))if(r&&console.log("Receive message: ",o),o.data.type){if(o.data.type!==n)return;e(o.data.data,o.origin,o.source)}else e(o.data,o.origin,o.source)},this.subscribeFn(this.listener)},sendMessage:function(e){const t=this.sendDirection?{type:this.sendDirection,data:e}:e;this.debug&&console.log("Send message: ",t),this.postFn(t)},disconnect:function(){if(!this.listener)throw new Error("You dont have connection. Please connect before");this.unsubscribeFn(this.listener),this.listener=null},isConnected:function(){return this.listener}}},di),pi=Lr()({init(){let{connection:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!window)throw new Error("Window object not found, you can run wallet detector only in browser");this.connection=e||hi({connectionInfo:{id:"spy"}}),this.wallets={}},methods:{scan(e){const{wallets:t}=this;this.connection.connect(((n,r,a)=>{let{method:o,params:s}=n;if(!o||!s||o!==Eo.wallet.readyToConnect||t[s.id])return;const i={...s,async getConnection(){const e="extension"===this.type,t=e?window.origin:this.origin;return hi({connectionInfo:this,sendDirection:e?vo.to_waellet:void 0,receiveDirection:e?vo.to_aepp:void 0,target:a,origin:t})}};t[i.id]=i,e({wallets:t,newWallet:i})})),Object.keys(t).length&&e({wallets:t})},stopScan(){this.connection.disconnect()}}}),fi=Lr()({init(e){let{connectionInfo:t={},port:n,debug:r=!1}=e;if(!Oo().runtime)throw new Error("Runtime is not accessible in your environment");this.debug=r,this.connectionInfo=t,this.port=n||Oo().runtime.connect(t.id||void 0)},methods:{connect:function(e,t){if(this.isConnected())throw new Error("You already connected");this.handler=(t,n)=>{this.debug&&console.log("Receive message: ",t),e(t,n)},this.port.onMessage.addListener(this.handler),this.port.onDisconnect.addListener((()=>{"function"==typeof t&&t({},this),this.port.disconnect()}))},sendMessage:function(e){if(!this.port)throw new Error("You dont have connection. Please connect before");this.debug&&console.log("Send message: ",e),this.port.postMessage(e)},disconnect:function(){try{this.port.disconnect()}catch(e){console.warning("From BrowserRuntimeConnection: ",e)}},isConnected:function(){return"function"==typeof this.port.onMessage.hasListeners?this.port.onMessage.hasListeners():this.port.onMessage.hasListener(this.handler)}}},di)})(),C})()}));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@stamp/it"),require("@stamp/required"),require("bignumber.js"),require("bs58check"),require("tweetnacl"),require("aes-js"),require("sha.js"),require("blakejs"),require("rlp"),require("swagger-client"),require("cross-fetch"),require("@aeternity/json-bigint"),require("uuid"),require("@aeternity/aepp-calldata"),require("websocket"),require("events"),require("libsodium-wrappers-sumo"),require("tweetnacl-auth"),require("bip32-path"),require("@aeternity/bip39")):"function"==typeof define&&define.amd?define([,,,,,,,,,,,,,,,,,,,],t):"object"==typeof exports?exports.Ae=t(require("@stamp/it"),require("@stamp/required"),require("bignumber.js"),require("bs58check"),require("tweetnacl"),require("aes-js"),require("sha.js"),require("blakejs"),require("rlp"),require("swagger-client"),require("cross-fetch"),require("@aeternity/json-bigint"),require("uuid"),require("@aeternity/aepp-calldata"),require("websocket"),require("events"),require("libsodium-wrappers-sumo"),require("tweetnacl-auth"),require("bip32-path"),require("@aeternity/bip39")):e.Ae=t(e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0],e[void 0])}(global,(function(e,t,n,r,a,o,s,i,c,l,d,u,h,p,f,m,g,y,w,b){return(()=>{var v={3007:e=>{e.exports=function(){return!0}},4115:(e,t,n)=>{var r=n(6224)((function(e){return function(){return e}}));e.exports=r},3195:(e,t,n)=>{var r=n(7455),a=n(9002)((function(e,t){return r(e.length,(function(){return e.apply(t,arguments)}))}));e.exports=a},7794:(e,t,n)=>{var r=n(7455),a=n(6224),o=n(1894),s=n(1186),i=n(793),c=a((function(e){var t=i(s,0,o((function(e){return e[0].length}),e));return r(t,(function(){for(var t=0;t<e.length;){if(e[t][0].apply(this,arguments))return e[t][1].apply(this,arguments);t+=1}}))}));e.exports=c},2220:(e,t,n)=>{var r=n(7455),a=n(6224),o=n(9002),s=n(2738),i=o((function(e,t){return 1===e?a(t):r(e,s(e,[],t))}));e.exports=i},2892:(e,t,n)=>{var r=n(9002)((function(e,t){return null==t||t!=t?e:t}));e.exports=r},1481:(e,t,n)=>{var r=n(9002),a=n(4023),o=r((function(e,t){return a(e,t,[],[])}));e.exports=o},1383:(e,t,n)=>{var r=n(9002),a=n(4793),o=n(4877),s=n(8291),i=n(9488),c=n(123),l=n(368),d=r(a(["filter"],c,(function(e,t){return s(t)?i((function(n,r){return e(t[r])&&(n[r]=t[r]),n}),{},l(t)):o(e,t)})));e.exports=d},7414:(e,t,n)=>{var r=n(6224)(n(5161)(!0));e.exports=r},9134:(e,t,n)=>{var r=n(6224),a=n(2220),o=r((function(e){return a(e.length,(function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)}))}));e.exports=o},5713:(e,t,n)=>{var r=n(1361),a=n(9002)(r);e.exports=a},7455:e=>{e.exports=function(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,n){return t.apply(this,arguments)};case 3:return function(e,n,r){return t.apply(this,arguments)};case 4:return function(e,n,r,a){return t.apply(this,arguments)};case 5:return function(e,n,r,a,o){return t.apply(this,arguments)};case 6:return function(e,n,r,a,o,s){return t.apply(this,arguments)};case 7:return function(e,n,r,a,o,s,i){return t.apply(this,arguments)};case 8:return function(e,n,r,a,o,s,i,c){return t.apply(this,arguments)};case 9:return function(e,n,r,a,o,s,i,c,l){return t.apply(this,arguments)};case 10:return function(e,n,r,a,o,s,i,c,l,d){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}},4118:e=>{e.exports=function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}},8770:e=>{e.exports=function(e){return function(){return!e.apply(this,arguments)}}},6224:(e,t,n)=>{var r=n(6464);e.exports=function(e){return function t(n){return 0===arguments.length||r(n)?t:e.apply(this,arguments)}}},9002:(e,t,n)=>{var r=n(6224),a=n(6464);e.exports=function(e){return function t(n,o){switch(arguments.length){case 0:return t;case 1:return a(n)?t:r((function(t){return e(n,t)}));default:return a(n)&&a(o)?t:a(n)?r((function(t){return e(t,o)})):a(o)?r((function(t){return e(n,t)})):e(n,o)}}}},6370:(e,t,n)=>{var r=n(6224),a=n(9002),o=n(6464);e.exports=function(e){return function t(n,s,i){switch(arguments.length){case 0:return t;case 1:return o(n)?t:a((function(t,r){return e(n,t,r)}));case 2:return o(n)&&o(s)?t:o(n)?a((function(t,n){return e(t,s,n)})):o(s)?a((function(t,r){return e(n,t,r)})):r((function(t){return e(n,s,t)}));default:return o(n)&&o(s)&&o(i)?t:o(n)&&o(s)?a((function(t,n){return e(t,n,i)})):o(n)&&o(i)?a((function(t,n){return e(t,s,n)})):o(s)&&o(i)?a((function(t,r){return e(n,t,r)})):o(n)?r((function(t){return e(t,s,i)})):o(s)?r((function(t){return e(n,t,i)})):o(i)?r((function(t){return e(n,s,t)})):e(n,s,i)}}}},2738:(e,t,n)=>{var r=n(7455),a=n(6464);e.exports=function e(t,n,o){return function(){for(var s=[],i=0,c=t,l=0;l<n.length||i<arguments.length;){var d;l<n.length&&(!a(n[l])||i>=arguments.length)?d=n[l]:(d=arguments[i],i+=1),s[l]=d,a(d)||(c-=1),l+=1}return c<=0?o.apply(this,s):r(c,e(t,s,o))}}},4793:(e,t,n)=>{var r=n(219),a=n(9082);e.exports=function(e,t,n){return function(){if(0===arguments.length)return n();var o=Array.prototype.slice.call(arguments,0),s=o.pop();if(!r(s)){for(var i=0;i<e.length;){if("function"==typeof s[e[i]])return s[e[i]].apply(s,o);i+=1}if(a(s)){var c=t.apply(null,o);return c(s)}}return n.apply(this,arguments)}}},4023:(e,t,n)=>{var r=n(4118),a=n(2976),o=n(4931),s=n(7684),i=n(1361),c=n(368),l=n(6433);function d(e,t,n,o){var s=r(e),i=r(t);function c(e,t){return u(e,t,n.slice(),o.slice())}return!a((function(e,t){return!a(c,t,e)}),i,s)}function u(e,t,n,r){if(i(e,t))return!0;var a=l(e);if(a!==l(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(a){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===o(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!i(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!i(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var h=n.length-1;h>=0;){if(n[h]===e)return r[h]===t;h-=1}switch(a){case"Map":return e.size===t.size&&d(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&d(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var p=c(e);if(p.length!==c(t).length)return!1;var f=n.concat([e]),m=r.concat([t]);for(h=p.length-1;h>=0;){var g=p[h];if(!s(g,t)||!u(t[g],e[g],f,m))return!1;h-=1}return!0}e.exports=u},4877:e=>{e.exports=function(e,t){for(var n=0,r=t.length,a=[];n<r;)e(t[n])&&(a[a.length]=t[n]),n+=1;return a}},4931:e=>{e.exports=function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}},7684:e=>{e.exports=function(e,t){return Object.prototype.hasOwnProperty.call(t,e)}},7243:(e,t,n)=>{var r=n(6069);e.exports=function(e,t){return r(t,e,0)>=0}},2976:e=>{e.exports=function(e,t,n){for(var r=0,a=n.length;r<a;){if(e(t,n[r]))return!0;r+=1}return!1}},6069:(e,t,n)=>{var r=n(1481);e.exports=function(e,t,n){var a,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(a=1/t;n<e.length;){if(0===(o=e[n])&&1/o===a)return n;n+=1}return-1}if(t!=t){for(;n<e.length;){if("number"==typeof(o=e[n])&&o!=o)return n;n+=1}return-1}return e.indexOf(t,n);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,n);case"object":if(null===t)return e.indexOf(t,n)}for(;n<e.length;){if(r(e[n],t))return n;n+=1}return-1}},7587:(e,t,n)=>{var r=n(7684),a=Object.prototype.toString,o=function(){return"[object Arguments]"===a.call(arguments)?function(e){return"[object Arguments]"===a.call(e)}:function(e){return r("callee",e)}}();e.exports=o},219:e=>{e.exports=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)}},3219:(e,t,n)=>{var r=n(6224),a=n(219),o=n(190),s=r((function(e){return!!a(e)||!!e&&"object"==typeof e&&!o(e)&&(1===e.nodeType?!!e.length:0===e.length||e.length>0&&e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1))}));e.exports=s},7e3:e=>{e.exports=Number.isInteger||function(e){return e<<0===e}},8291:e=>{e.exports=function(e){return"[object Object]"===Object.prototype.toString.call(e)}},6464:e=>{e.exports=function(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}},190:e=>{e.exports=function(e){return"[object String]"===Object.prototype.toString.call(e)}},9082:e=>{e.exports=function(e){return null!=e&&"function"==typeof e["@@transducer/step"]}},5161:(e,t,n)=>{var r=n(3219);e.exports=function(e){return function t(n){for(var a,o,s,i=[],c=0,l=n.length;c<l;){if(r(n[c]))for(s=0,o=(a=e?t(n[c]):n[c]).length;s<o;)i[i.length]=a[s],s+=1;else i[i.length]=n[c];c+=1}return i}}},6692:e=>{e.exports=function(e,t){for(var n=0,r=t.length,a=Array(r);n<r;)a[n]=e(t[n]),n+=1;return a}},1361:e=>{e.exports="function"==typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},9488:(e,t,n)=>{var r=n(3219),a=n(9874),o=n(3195);function s(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function i(e,t,n,r){return e["@@transducer/result"](n[r](o(e["@@transducer/step"],e),t))}var c="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";e.exports=function(e,t,n){if("function"==typeof e&&(e=a(e)),r(n))return function(e,t,n){for(var r=0,a=n.length;r<a;){if((t=e["@@transducer/step"](t,n[r]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r+=1}return e["@@transducer/result"](t)}(e,t,n);if("function"==typeof n["fantasy-land/reduce"])return i(e,t,n,"fantasy-land/reduce");if(null!=n[c])return s(e,t,n[c]());if("function"==typeof n.next)return s(e,t,n);if("function"==typeof n.reduce)return i(e,t,n,"reduce");throw new TypeError("reduce: list must be array or iterable")}},3714:e=>{e.exports={init:function(){return this.xf["@@transducer/init"]()},result:function(e){return this.xf["@@transducer/result"](e)}}},123:(e,t,n)=>{var r=n(9002),a=n(3714),o=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=a.init,e.prototype["@@transducer/result"]=a.result,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}(),s=r((function(e,t){return new o(e,t)}));e.exports=s},2894:(e,t,n)=>{var r=n(9002),a=n(3714),o=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=a.init,e.prototype["@@transducer/result"]=a.result,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),s=r((function(e,t){return new o(e,t)}));e.exports=s},9874:e=>{var t=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();e.exports=function(e){return new t(e)}},368:(e,t,n)=>{var r=n(6224),a=n(7684),o=n(7587),s=!{toString:null}.propertyIsEnumerable("toString"),i=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],c=function(){"use strict";return arguments.propertyIsEnumerable("length")}(),l=function(e,t){for(var n=0;n<e.length;){if(e[n]===t)return!0;n+=1}return!1},d="function"!=typeof Object.keys||c?r((function(e){if(Object(e)!==e)return[];var t,n,r=[],d=c&&o(e);for(t in e)!a(t,e)||d&&"length"===t||(r[r.length]=t);if(s)for(n=i.length-1;n>=0;)a(t=i[n],e)&&!l(r,t)&&(r[r.length]=t),n-=1;return r})):r((function(e){return Object(e)!==e?[]:Object.keys(e)}));e.exports=d},7560:(e,t,n)=>{var r=n(9002)((function(e,t){return e<t}));e.exports=r},3594:(e,t,n)=>{var r=n(9002)((function(e,t){return e<=t}));e.exports=r},1894:(e,t,n)=>{var r=n(9002),a=n(4793),o=n(6692),s=n(9488),i=n(2894),c=n(2220),l=n(368),d=r(a(["fantasy-land/map","map"],i,(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return c(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return s((function(n,r){return n[r]=e(t[r]),n}),{},l(t));default:return o(e,t)}})));e.exports=d},1186:(e,t,n)=>{var r=n(9002)((function(e,t){return t>e?t:e}));e.exports=r},7041:(e,t,n)=>{var r=n(9002),a=n(190),o=r((function(e,t){var n=e<0?t.length+e:e;return a(t)?t.charAt(n):t[n]}));e.exports=o},7430:(e,t,n)=>{var r=n(9002),a=n(4439),o=r((function(e,t){return a([e],t)[0]}));e.exports=o},4439:(e,t,n)=>{var r=n(9002),a=n(7e3),o=n(7041),s=r((function(e,t){return e.map((function(e){for(var n,r=t,s=0;s<e.length;){if(null==r)return;n=e[s],r=a(n)?o(n,r):r[n],s+=1}return r}))}));e.exports=s},5206:(e,t,n)=>{var r=n(9002)((function(e,t){for(var n={},r=0;r<e.length;)e[r]in t&&(n[e[r]]=t[e[r]]),r+=1;return n}));e.exports=r},2478:(e,t,n)=>{var r=n(9002),a=n(7430),o=r((function(e,t){return a([e],t)}));e.exports=o},793:(e,t,n)=>{var r=n(6370)(n(9488));e.exports=r},3266:(e,t,n)=>{var r=n(8770),a=n(9002),o=n(1383),s=a((function(e,t){return o(r(e),t)}));e.exports=s},6433:(e,t,n)=>{var r=n(6224)((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));e.exports=r},7263:(e,t,n)=>{var r=n(2976),a=n(9002)((function(e,t){for(var n,a=0,o=t.length,s=[];a<o;)n=t[a],r(e,n,s)||(s[s.length]=n),a+=1;return s}));e.exports=a},6290:(e,t,n)=>{var r=n(7243),a=n(9002),o=n(9134),s=n(3266),i=a((function(e,t){return s(o(r)(e),t)}));e.exports=i},590:e=>{"use strict";e.exports=p},8367:e=>{"use strict";e.exports=b},3656:e=>{"use strict";e.exports=u},1031:t=>{"use strict";t.exports=e},8081:e=>{"use strict";e.exports=t},4752:e=>{"use strict";e.exports=o},9558:e=>{"use strict";e.exports=n},2405:e=>{"use strict";e.exports=w},817:e=>{"use strict";e.exports=i},2139:e=>{"use strict";e.exports=r},6311:e=>{"use strict";e.exports=d},3205:e=>{"use strict";e.exports=m},8097:e=>{"use strict";e.exports=g},2001:e=>{"use strict";e.exports=c},2074:e=>{"use strict";e.exports=s},4021:e=>{"use strict";e.exports=l},9174:e=>{"use strict";e.exports=a},1001:e=>{"use strict";e.exports=y},3323:e=>{"use strict";e.exports=h},3752:e=>{"use strict";e.exports=f}},x={};function T(e){var t=x[e];if(void 0!==t)return t.exports;var n=x[e]={exports:{}};return v[e](n,n.exports,T),n.exports}T.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return T.d(t,{a:t}),t},T.d=(e,t)=>{for(var n in t)T.o(t,n)&&!T.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},T.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),T.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var C={};return(()=>{"use strict";T.r(C),T.d(C,{ACITransformation:()=>i,AccountBase:()=>Ea,AccountMultiple:()=>Ka,Ae:()=>ka,Aens:()=>La,AeppWalletHelpers:()=>l,AeppWalletSchema:()=>c,AmountFormatter:()=>o,BrowserRuntimeConnection:()=>li,BrowserWindowMessageConnection:()=>ii,Bytes:()=>e,Chain:()=>Kr,ChainNode:()=>Ba,Channel:()=>ni,ContentScriptBridge:()=>ai,Contract:()=>io,ContractCompilerAPI:()=>Qa,Crypto:()=>r,GeneralizeAccount:()=>uo,HdWallet:()=>Fr,Keystore:()=>a,MemoryAccount:()=>Ha,Node:()=>Ia,NodePool:()=>ja,Oracle:()=>$o,RpcAepp:()=>Do,RpcWallet:()=>Go,SCHEMA:()=>t,Transaction:()=>Da,Tx:()=>Hr,TxBuilder:()=>s,TxBuilderHelper:()=>n,Universal:()=>ri,WalletDetector:()=>ci,genSwaggerClient:()=>wa,getDefaultPointerKey:()=>di,verifyTransaction:()=>Na});var e={};T.r(e),T.d(e,{bigNumberToByteArray:()=>A,str2buf:()=>_,toBytes:()=>E});var t={};T.r(t),T.d(t,{ABI_VERSIONS:()=>Se,AMOUNT:()=>Q,BASE_GAS:()=>Me,CLIENT_TTL:()=>ne,CONTRACT_BYTE_CODE_LIMA:()=>Ge,DEFAULT_FEE:()=>qe,DEPOSIT:()=>G,DRY_RUN_ACCOUNT:()=>J,FIELD_TYPES:()=>Be,GAS:()=>Y,GAS_PER_BYTE:()=>Re,ID_TAG:()=>De,ID_TAG_PREFIX:()=>He,KEY_BLOCK_INTERVAL:()=>Ve,MAX_AUTH_FUN_GAS:()=>X,MIN_GAS_PRICE:()=>z,NAME_BID_MAX_LENGTH:()=>ce,NAME_BID_RANGES:()=>de,NAME_BID_TIMEOUTS:()=>ue,NAME_BID_TIMEOUT_BLOCKS:()=>se,NAME_FEE:()=>re,NAME_FEE_BID_INCREMENT:()=>oe,NAME_FEE_MULTIPLIER:()=>ae,NAME_MAX_CLIENT_TTL:()=>te,NAME_MAX_LENGTH_FEE:()=>ie,NAME_MAX_TTL:()=>ee,NAME_TTL:()=>Z,OBJECT_ID_TX_TYPE:()=>Pe,OBJECT_TAG_SIGNED_TRANSACTION:()=>he,ORACLE_TTL:()=>K,POINTER_KEY_BY_PREFIX:()=>le,PREFIX_ID_TAG:()=>Ue,PROTOCOL_VERSIONS:()=>Ne,PROTOCOL_VM_ABI:()=>je,QUERY_FEE:()=>H,QUERY_TTL:()=>W,RESPONSE_TTL:()=>L,TX_DESERIALIZATION_SCHEMA:()=>Dt,TX_FEE_BASE_GAS:()=>Fe,TX_FEE_OTHER_GAS:()=>$e,TX_SERIALIZATION_SCHEMA:()=>$t,TX_TTL:()=>U,TX_TYPE:()=>ke,VALIDATION_MESSAGE:()=>We,VM_VERSIONS:()=>Oe,VSN:()=>$,VSN_2:()=>D});var n={};T.r(n),T.d(n,{buildContractId:()=>Lt,buildPointers:()=>rn,commitmentHash:()=>zt,computeAuctionEndBlock:()=>un,computeBidFee:()=>dn,createSalt:()=>Kt,decode:()=>Xt,encode:()=>Jt,ensureNameValid:()=>on,formatSalt:()=>Qt,getDefaultPointerKey:()=>cn,getMinimumNameFee:()=>ln,isAuctionName:()=>hn,isNameValid:()=>sn,oracleQueryId:()=>Gt,produceNameId:()=>Yt,readId:()=>en,readInt:()=>nn,readPointers:()=>an,writeId:()=>Zt,writeInt:()=>tn});var r={};T.r(r),T.d(r,{addressFromDecimal:()=>gn,aeEncodeKey:()=>Mn,checkSumFn:()=>vn,decodeBase58Check:()=>Cn,decodeBase64Check:()=>xn,decryptKey:()=>On,encodeBase58Check:()=>Tn,encodeBase64Check:()=>bn,encodeContractAddress:()=>An,encodeUnsigned:()=>In,encryptKey:()=>kn,generateKeyPair:()=>_n,generateKeyPairFromSecret:()=>En,getAddressFromPriv:()=>fn,hash:()=>F,isAddressValid:()=>mn,isValidKeypair:()=>Rn,messageToHash:()=>jn,salt:()=>wn,sha256hash:()=>yn,sign:()=>Sn,signMessage:()=>Pn,verify:()=>Nn,verifyMessage:()=>Bn});var a={};T.r(a),T.d(a,{deriveKeyUsingArgon2id:()=>Dn,dump:()=>Qn,getAddressFromPriv:()=>Ln,recover:()=>Gn,validateKeyObj:()=>Yn});var o={};T.r(o),T.d(o,{AE_AMOUNT_FORMATS:()=>Xn,DENOMINATION_MAGNITUDE:()=>Jn,default:()=>or,formatAmount:()=>tr,toAe:()=>Zn,toAettos:()=>er});var s={};T.r(s),T.d(s,{buildRawTx:()=>yr,buildTx:()=>vr,buildTxHash:()=>Tr,calculateFee:()=>mr,calculateMinFee:()=>pr,default:()=>Cr,unpackRawTx:()=>wr,unpackTx:()=>xr,validateParams:()=>gr});var i={};T.r(i),T.d(i,{SOPHIA_TYPES:()=>Ir,decodeEvents:()=>Ar});var c={};T.r(c),T.d(c,{ERRORS:()=>Co,MESSAGE_DIRECTION:()=>mo,METHODS:()=>xo,NOTIFICATIONS:()=>yo,REQUESTS:()=>wo,RPC_STATUS:()=>To,SUBSCRIPTION_TYPES:()=>vo,SUBSCRIPTION_VALUES:()=>bo,VERSION:()=>fo,WALLET_TYPE:()=>go});var l={};T.r(l),T.d(l,{getBrowserAPI:()=>Io,getHandler:()=>_o,isInIframe:()=>Ao,isValidAccounts:()=>jo,message:()=>ko,resolveOnAccount:()=>Po,responseMessage:()=>Oo,sendMessage:()=>Eo,sendResponseMessage:()=>So,voidFn:()=>No});var d=T(2139),u=T.n(d),h=T(9174),p=T.n(h),f=T(4752),m=T.n(f),g=T(2074),y=T.n(g),w=T(9558),b=T.n(w);function v(e){return e.replace(/_./g,(e=>e[1].toUpperCase()))}function x(e){return e.replace(/[A-Z]/g,(e=>`_${e.toLowerCase()}`))}function I(e){return e.length%2==0&&/^[0-9a-f]+$/i.test(e)}function A(e){if(!e.isInteger())throw new Error(`Unexpected not integer value: ${e.toFixed()}`);let t=e.toString(16);return t.length%2==1&&(t="0"+t),Buffer.from(t,"hex")}function E(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null==e)return Buffer.from([]);if(Number.isInteger(e)||b().isBigNumber(e)||t)return b().isBigNumber(e)||(e=new(b())(e)),A(e);if("string"==typeof e)return Buffer.from(e);throw new Error("Byte serialization not supported")}function _(e,t){return Buffer.from(e,t??(I(e)?"hex":void 0)??(function(e){if(e.length%4>0||/[^0-9a-z+/=]/i.test(e))return!1;const t=e.indexOf("=");return-1===t||/={1,2}/.test(e.slice(t))}(e)?"base64":void 0))}var k=T(3007),O=T.n(k),S=T(3594),N=T.n(S),j=T(4115),P=T.n(j),B=T(7560),M=T.n(B),R=T(7794),q=T.n(R),V=T(817);function F(e){return Buffer.from((0,V.blake2b)(e,null,32))}const $=1,D=2,U=0,H=3e4,K={type:"delta",value:500},W={type:"delta",value:10},L={type:"delta",value:10},G=0,Q=0,Y=25e3,z=1e9,X=5e4,J={pub:"ak_11111111111111111111111111111111273Yts",amount:"100000000000000000000000000000000000"},Z=18e4,ee=36e3,te=84600,ne=te,re=0,ae=1e14,oe=.05,se=480,ie=31,ce=12,le={ak:"account_pubkey",ok:"oracle_pubkey",ct:"contract_pubkey",ch:"channel"},de={31:b()(3).times(ae),30:b()(5).times(ae),29:b()(8).times(ae),28:b()(13).times(ae),27:b()(21).times(ae),26:b()(34).times(ae),25:b()(55).times(ae),24:b()(89).times(ae),23:b()(144).times(ae),22:b()(233).times(ae),21:b()(377).times(ae),20:b()(610).times(ae),19:b()(987).times(ae),18:b()(1597).times(ae),17:b()(2584).times(ae),16:b()(4181).times(ae),15:b()(6765).times(ae),14:b()(10946).times(ae),13:b()(17711).times(ae),12:b()(28657).times(ae),11:b()(46368).times(ae),10:b()(75025).times(ae),9:b()(121393).times(ae),8:b()(196418).times(ae),7:b()(317811).times(ae),6:b()(514229).times(ae),5:b()(832040).times(ae),4:b()(1346269).times(ae),3:b()(2178309).times(ae),2:b()(3524578).times(ae),1:b()(5702887).times(ae)},ue={13:b()(0),12:b()(se),8:b()(31).times(se),4:b()(62).times(se)},he=11,pe=521,fe=570,me=571,ge=572,ye=573,we=574,be=575,ve=621,xe=622,Te=623,Ce=624,Ie=625,Ae=626,Ee=(e,t,n)=>[e,t,n],_e=(e,t)=>[e,t],ke={account:"account",signed:"signedTx",spend:"spendTx",nameClaim:"nameClaimTx",namePreClaim:"namePreClaimTx",nameUpdate:"nameUpdateTx",nameRevoke:"nameRevokeTx",nameTransfer:"nameTransfer",contract:"contract",contractCreate:"contractCreateTx",contractCall:"contractCallTx",contractCallResult:"contractCallResult",oracleRegister:"oracleRegister",oracleExtend:"oracleExtend",oracleQuery:"oracleQuery",oracleResponse:"oracleResponse",channelCreate:"channelCreate",channelCloseMutual:"channelCloseMutual",channelCloseSolo:"channelCloseSolo",channelSlash:"channelSlash",channelDeposit:"channelDeposit",channelWithdraw:"channelWithdraw",channelSettle:"channelSettle",channelOffChain:"channelOffChain",channelForceProgress:"channelForceProgress",channel:"channel",channelSnapshotSolo:"channelSnapshotSolo",channelOffChainUpdateTransfer:"channelOffChainUpdateTransfer",channelOffChainUpdateDeposit:"channelOffChainUpdateDeposit",channelOffChainUpdateWithdrawal:"channelOffChainUpdateWithdrawal",channelOffChainCreateContract:"channelOffChainCreateContract",channelOffChainCallContract:"channelOffChainCallContract",channelReconnect:"channelReconnect",proofOfInclusion:"proofOfInclusion",stateTrees:"stateTrees",merklePatriciaTree:"merklePatriciaTree",merklePatriciaTreeValue:"merklePatriciaTreeValue",contractsTree:"contractsTree",contractCallsTree:"contractCallsTree",channelsTree:"channelsTree",nameserviceTree:"nameserviceTree",oraclesTree:"oraclesTree",accountsTree:"accountsTree",gaAttach:"gaAttach",gaMeta:"gaMeta",payingFor:"payingFor",sophiaByteCode:"sophiaByteCode"},Oe={NO_VM:0,SOPHIA:1,SOPHIA_IMPROVEMENTS_MINERVA:3,SOPHIA_IMPROVEMENTS_FORTUNA:4,FATE:5,SOPHIA_IMPROVEMENTS_LIMA:6,FATE_2:7},Se={NO_ABI:0,SOPHIA:1,FATE:3},Ne={IRIS:5},je={[Ne.IRIS]:{[ke.contractCreate]:{vmVersion:[Oe.FATE_2],abiVersion:[Se.FATE]},[ke.contractCall]:{vmVersion:[Oe.FATE_2,Oe.FATE,Oe.SOPHIA_IMPROVEMENTS_LIMA,Oe.SOPHIA_IMPROVEMENTS_FORTUNA,Oe.SOPHIA,Oe.SOPHIA_IMPROVEMENTS_MINERVA],abiVersion:[Se.FATE,Se.SOPHIA]},[ke.oracleRegister]:{vmVersion:[],abiVersion:[Se.NO_ABI,Se.SOPHIA]}}},Pe={10:ke.account,[he]:ke.signed,12:ke.spend,32:ke.nameClaim,33:ke.namePreClaim,34:ke.nameUpdate,35:ke.nameRevoke,36:ke.nameTransfer,40:ke.contract,42:ke.contractCreate,43:ke.contractCall,41:ke.contractCallResult,22:ke.oracleRegister,25:ke.oracleExtend,23:ke.oracleQuery,24:ke.oracleResponse,50:ke.channelCreate,53:ke.channelCloseMutual,54:ke.channelCloseSolo,55:ke.channelSlash,[pe]:ke.channelForceProgress,51:ke.channelDeposit,52:ke.channelWithdraw,56:ke.channelSettle,57:ke.channelOffChain,58:ke.channel,59:ke.channelSnapshotSolo,[fe]:ke.channelOffChainUpdateTransfer,[me]:ke.channelOffChainUpdateDeposit,[ge]:ke.channelOffChainUpdateWithdrawal,[ye]:ke.channelOffChainCreateContract,[we]:ke.channelOffChainCallContract,[be]:ke.channelReconnect,60:ke.proofOfInclusion,62:ke.stateTrees,63:ke.merklePatriciaTree,64:ke.merklePatriciaTreeValue,[ve]:ke.contractsTree,[xe]:ke.contractCallsTree,[Te]:ke.channelsTree,[Ce]:ke.nameserviceTree,[Ie]:ke.oraclesTree,[Ae]:ke.accountsTree,80:ke.gaAttach,81:ke.gaMeta,82:ke.payingFor,70:ke.sophiaByteCode},Be={int:"int",amount:"amount",id:"id",ids:"ids",string:"string",binary:"binary",rlpBinary:"rlpBinary",rlpBinaries:"rlpBinaries",rawBinary:"rawBinary",bool:"bool",hex:"hex",signatures:"signatures",pointers:"pointers",offChainUpdates:"offChainUpdates",callStack:"callStack",proofOfInclusion:"proofOfInclusion",mptrees:"mptrees",callReturnType:"callReturnType",ctVersion:"ctVersion",sophiaCodeTypeInfo:"sophiaCodeTypeInfo",payload:"payload",any:"any",stateTree:"stateTree"},Me=15e3,Re=20,qe=2e4,Ve=3,Fe=e=>{const t={[ke.channelForceProgress]:30,[ke.channelOffChain]:0,[ke.channelOffChainCallContract]:0,[ke.channelOffChainCreateContract]:0,[ke.channelOffChainUpdateDeposit]:0,[ke.channelOffChainUpdateWithdrawal]:0,[ke.channelOffChainUpdateTransfer]:0,[ke.contractCreate]:5,[ke.contractCall]:12,[ke.gaAttach]:5,[ke.gaMeta]:5,[ke.payingFor]:.2}[e]||1;return new(b())(t*Me)},$e=(e,t,n)=>{let{relativeTtl:r,innerTxSize:a}=n;switch(e){case ke.oracleRegister:case ke.oracleExtend:case ke.oracleQuery:case ke.oracleResponse:return new(b())(t).times(Re).plus(Math.ceil(32e3*r/Math.floor(525600/Ve)));case ke.gaMeta:case ke.payingFor:return new(b())(t).minus(a).times(Re);default:return new(b())(t).times(Re)}},De={account:1,name:2,commitment:3,oracle:4,contract:5,channel:6},Ue={ak:De.account,nm:De.name,cm:De.commitment,ok:De.oracle,ct:De.contract,ch:De.channel},He=(Ke=Ue,Object.entries(Ke).reduce(((e,t)=>{let[n,r]=t;return(e[r]=n)&&e}),{}));var Ke;const We={[Be.int]:e=>{let{value:t,isMinusValue:n}=e;return n?`${t} must be >= 0`:`${t} is not of type Number or BigNumber`},[Be.amount]:e=>{let{value:t,isMinusValue:n}=e;return n?`${t} must be >= 0`:`${t} is not of type Number or BigNumber`},[Be.id]:e=>{let{value:t,prefix:n}=e;return`'${t}' prefix doesn't match expected prefix '${n}' or ID_TAG for prefix not found`},[Be.binary]:e=>{let{prefix:t,value:n}=e;return`'${n}' prefix doesn't match expected prefix '${t}'`},[Be.string]:e=>{let{value:t}=e;return"Not a string"},[Be.pointers]:e=>{let{value:t}=e;return'Value must be of type Array and contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\''},[Be.ctVersion]:e=>{let{value:t}=e;return'Value must be an object with "vmVersion" and "abiVersion" fields'}},Le=[Ee("tag",Be.int),Ee("VSN",Be.int)],Ge=[...Le,Ee("sourceCodeHash",Be.rawBinary),Ee("typeInfo",Be.sophiaCodeTypeInfo),Ee("byteCode",Be.rawBinary),Ee("compilerVersion",Be.string),Ee("payable",Be.bool)],Qe=[...Le,Ee("flags",Be.int),Ee("nonce",Be.int),Ee("balance",Be.int),Ee("gaContract",Be.id,["ct","nm"]),Ee("gaAuthFun",Be.binary,"cb")],Ye=[...Le,Ee("senderId",Be.id,"ak"),Ee("recipientId",Be.id,["ak","nm"]),Ee("amount",Be.amount),Ee("fee",Be.int),Ee("ttl",Be.int),Ee("nonce",Be.int),Ee("payload",Be.payload)],ze=[...Le,Ee("signatures",Be.signatures),Ee("encodedTx",Be.rlpBinary)],Xe=[...Le,Ee("accountId",Be.id,"ak"),Ee("nonce",Be.int),Ee("commitmentId",Be.id,"cm"),Ee("fee",Be.int),Ee("ttl",Be.int)],Je=[...Le,Ee("accountId",Be.id,"ak"),Ee("nonce",Be.int),Ee("name",Be.binary,"nm"),Ee("nameSalt",Be.int),Ee("nameFee",Be.amount),Ee("fee",Be.int),Ee("ttl",Be.int)],Ze=[...Le,Ee("accountId",Be.id,"ak"),Ee("nonce",Be.int),Ee("nameId",Be.id,"nm"),Ee("nameTtl",Be.int),Ee("pointers",Be.pointers),Ee("clientTtl",Be.int),Ee("fee",Be.int),Ee("ttl",Be.int)],et=[...Le,Ee("accountId",Be.id,"ak"),Ee("nonce",Be.int),Ee("nameId",Be.id,"nm"),Ee("recipientId",Be.id,["ak","nm"]),Ee("fee",Be.int),Ee("ttl",Be.int)],tt=[...Le,Ee("accountId",Be.id,"ak"),Ee("nonce",Be.int),Ee("nameId",Be.id,"nm"),Ee("fee",Be.int),Ee("ttl",Be.int)],nt=[...Le,Ee("owner",Be.id,"ak"),Ee("ctVersion",Be.int),Ee("code",Be.binary,"cb"),Ee("log",Be.binary,"cb"),Ee("active",Be.bool),Ee("referers",Be.ids,"ak"),Ee("deposit",Be.amount)],rt=[...Le,Ee("ownerId",Be.id,"ak"),Ee("nonce",Be.int),Ee("code",Be.binary,"cb"),Ee("authFun",Be.rawBinary),Ee("ctVersion",Be.ctVersion),Ee("fee",Be.int),Ee("ttl",Be.int),Ee("gas",Be.int),Ee("gasPrice",Be.int),Ee("callData",Be.binary,"cb")],at=[...Le,Ee("gaId",Be.id,"ak"),Ee("authData",Be.binary,"cb"),Ee("abiVersion",Be.int),Ee("fee",Be.int),Ee("gas",Be.int),Ee("gasPrice",Be.int),Ee("tx",Be.rlpBinary)],ot=[...Le,Ee("payerId",Be.id,"ak"),Ee("nonce",Be.int),Ee("fee",Be.int),Ee("tx",Be.rlpBinary)],st=[...Le,Ee("ownerId",Be.id,"ak"),Ee("nonce",Be.int),Ee("code",Be.binary,"cb"),Ee("ctVersion",Be.ctVersion),Ee("fee",Be.int),Ee("ttl",Be.int),Ee("deposit",Be.amount),Ee("amount",Be.amount),Ee("gas",Be.int),Ee("gasPrice",Be.int),Ee("callData",Be.binary,"cb")],it=[...Le,Ee("callerId",Be.id,"ak"),Ee("nonce",Be.int),Ee("contractId",Be.id,["ct","nm"]),Ee("abiVersion",Be.int),Ee("fee",Be.int),Ee("ttl",Be.int),Ee("amount",Be.amount),Ee("gas",Be.int),Ee("gasPrice",Be.int),Ee("callData",Be.binary,"cb")],ct=[...Le,Ee("callerId",Be.id,"ak"),Ee("callerNonce",Be.int),Ee("height",Be.int),Ee("contractId",Be.id,"ct"),Ee("gasPrice",Be.int),Ee("gasUsed",Be.int),Ee("returnValue",Be.binary,"cb"),Ee("returnType",Be.callReturnType),Ee("log",Be.rawBinary)],lt=[...Le,Ee("accountId",Be.id,"ak"),Ee("nonce",Be.int),Ee("queryFormat",Be.string),Ee("responseFormat",Be.string),Ee("queryFee",Be.amount),Ee("oracleTtlType",Be.int),Ee("oracleTtlValue",Be.int),Ee("fee",Be.int),Ee("ttl",Be.int),Ee("abiVersion",Be.int)],dt=[...Le,Ee("oracleId",Be.id,["ok","nm"]),Ee("nonce",Be.int),Ee("oracleTtlType",Be.int),Ee("oracleTtlValue",Be.int),Ee("fee",Be.int),Ee("ttl",Be.int)],ut=[...Le,Ee("senderId",Be.id,"ak"),Ee("nonce",Be.int),Ee("oracleId",Be.id,["ok","nm"]),Ee("query",Be.string),Ee("queryFee",Be.amount),Ee("queryTtlType",Be.int),Ee("queryTtlValue",Be.int),Ee("responseTtlType",Be.int),Ee("responseTtlValue",Be.int),Ee("fee",Be.int),Ee("ttl",Be.int)],ht=[...Le,Ee("oracleId",Be.id,"ok"),Ee("nonce",Be.int),Ee("queryId",Be.binary,"oq"),Ee("response",Be.string),Ee("responseTtlType",Be.int),Ee("responseTtlValue",Be.int),Ee("fee",Be.int),Ee("ttl",Be.int)],pt=[...Le,Ee("initiator",Be.id,"ak"),Ee("initiatorAmount",Be.int),Ee("responder",Be.id,"ak"),Ee("responderAmount",Be.int),Ee("channelReserve",Be.int),Ee("lockPeriod",Be.int),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("initiatorDelegateIds",Be.string),Ee("responderDelegateIds",Be.string),Ee("stateHash",Be.binary,"st"),Ee("nonce",Be.int)],ft=[...Le,Ee("channelId",Be.id,"ch"),Ee("fromId",Be.id,"ak"),Ee("amount",Be.int),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("stateHash",Be.binary,"st"),Ee("round",Be.int),Ee("nonce",Be.int)],mt=[...Le,Ee("channelId",Be.id,"ch"),Ee("toId",Be.id,"ak"),Ee("amount",Be.int),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("stateHash",Be.binary,"st"),Ee("round",Be.int),Ee("nonce",Be.int)],gt=[...Le,Ee("channelId",Be.id,"ch"),Ee("fromId",Be.id,"ak"),Ee("initiatorAmountFinal",Be.int),Ee("responderAmountFinal",Be.int),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("nonce",Be.int)],yt=[...Le,Ee("channelId",Be.id,"ch"),Ee("fromId",Be.id,"ak"),Ee("payload",Be.binary,"tx"),Ee("poi",Be.binary,"pi"),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("nonce",Be.int)],wt=[...Le,Ee("channelId",Be.id,"ch"),Ee("fromId",Be.id,"ak"),Ee("payload",Be.binary,"tx"),Ee("poi",Be.binary,"pi"),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("nonce",Be.int)],bt=[...Le,Ee("channelId",Be.id,"ch"),Ee("fromId",Be.id,"ak"),Ee("initiatorAmountFinal",Be.int),Ee("responderAmountFinal",Be.int),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("nonce",Be.int)],vt=[...Le,Ee("channelId",Be.id,"ch"),Ee("fromId",Be.id,"ak"),Ee("payload",Be.binary,"tx"),Ee("round",Be.int),Ee("update",Be.binary),Ee("stateHash",Be.binary),Ee("offChainTrees",Be.stateTree),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("nonce",Be.int)],xt=[...Le,Ee("channelId",Be.id,"ch"),Ee("round",Be.int),Ee("stateHash",Be.binary,"st")],Tt=[...Le,Ee("initiator",Be.id,"ak"),Ee("responder",Be.id,"ak"),Ee("channelAmount",Be.int),Ee("initiatorAmount",Be.int),Ee("responderAmount",Be.int),Ee("channelReserve",Be.int),Ee("initiatorDelegateIds",Be.ids),Ee("responderDelegateIds",Be.ids),Ee("stateHash",Be.hex),Ee("round",Be.int),Ee("soloRound",Be.int),Ee("lockPeriod",Be.int),Ee("lockedUntil",Be.int),Ee("initiatorAuth",Be.binary,"cb"),Ee("responderAuth",Be.binary,"cb")],Ct=[...Le,Ee("channelId",Be.id,"ch"),Ee("fromId",Be.id,"ak"),Ee("payload",Be.binary,"tx"),Ee("ttl",Be.int),Ee("fee",Be.int),Ee("nonce",Be.int)],It=[...Le,Ee("owner",Be.id,"ak"),Ee("ctVersion",Be.int),Ee("code",Be.binary,"cb"),Ee("deposit",Be.int),Ee("callData",Be.binary,"cb")],At=[...Le,Ee("caller",Be.id,"ak"),Ee("contract",Be.id,"ct"),Ee("abiVersion",Be.int),Ee("amount",Be.int),Ee("callData",Be.binary,"cb"),Ee("callStack",Be.callStack),Ee("gasPrice",Be.int),Ee("gasLimit",Be.int)],Et=[...Le,Ee("channelId",Be.id,"ch"),Ee("round",Be.int),Ee("role",Be.string),Ee("pubkey",Be.id,"ak")],_t=[...Le,Ee("from",Be.id,"ak"),Ee("to",Be.id,"ak"),Ee("amount",Be.int)],kt=[...Le,Ee("from",Be.id,"ak"),Ee("amount",Be.int)],Ot=[...Le,Ee("from",Be.id,"ak"),Ee("amount",Be.int)],St=[...Le,Ee("accounts",Be.mptrees),Ee("calls",Be.mptrees),Ee("channels",Be.mptrees),Ee("contracts",Be.mptrees),Ee("ns",Be.mptrees),Ee("oracles",Be.mptrees)],Nt=[...Le,Ee("contracts",Be.rlpBinary),Ee("calls",Be.rlpBinary),Ee("channels",Be.rlpBinary),Ee("ns",Be.rlpBinary),Ee("oracles",Be.rlpBinary),Ee("accounts",Be.rlpBinary)],jt=[...Le,Ee("values",Be.rlpBinaries)],Pt=[...Le,Ee("key",Be.hex),Ee("value",Be.rawBinary)],Bt=[...Le,Ee("contracts",Be.rlpBinary)],Mt=[...Le,Ee("calls",Be.rlpBinary)],Rt=[...Le,Ee("channels",Be.rlpBinary)],qt=[...Le,Ee("mtree",Be.rlpBinary)],Vt=[...Le,Ee("otree",Be.rlpBinary)],Ft=[...Le,Ee("accounts",Be.rlpBinary)],$t={[ke.account]:{2:_e(Qe,10)},[ke.signed]:{1:_e(ze,he)},[ke.spend]:{1:_e(Ye,12)},[ke.namePreClaim]:{1:_e(Xe,33)},[ke.nameClaim]:{2:_e(Je,32)},[ke.nameUpdate]:{1:_e(Ze,34)},[ke.nameTransfer]:{1:_e(et,36)},[ke.nameRevoke]:{1:_e(tt,35)},[ke.contract]:{1:_e(nt,40)},[ke.contractCreate]:{1:_e(st,42)},[ke.contractCall]:{1:_e(it,43)},[ke.contractCallResult]:{1:_e(ct,41)},[ke.oracleRegister]:{1:_e(lt,22)},[ke.oracleExtend]:{1:_e(dt,25)},[ke.oracleQuery]:{1:_e(ut,23)},[ke.oracleResponse]:{1:_e(ht,24)},[ke.channelCreate]:{2:_e(pt,50)},[ke.channelCloseMutual]:{1:_e(gt,53)},[ke.channelCloseSolo]:{1:_e(yt,54)},[ke.channelSlash]:{1:_e(wt,55)},[ke.channelDeposit]:{1:_e(ft,51)},[ke.channelWithdraw]:{1:_e(mt,52)},[ke.channelSettle]:{1:_e(bt,56)},[ke.channelForceProgress]:{1:_e(vt,pe)},[ke.channelOffChain]:{2:_e(xt,57)},[ke.channel]:{3:_e(Tt,58)},[ke.channelSnapshotSolo]:{1:_e(Ct,59)},[ke.channelOffChainUpdateTransfer]:{1:_e(_t,fe)},[ke.channelOffChainUpdateDeposit]:{1:_e(kt,me)},[ke.channelOffChainUpdateWithdrawal]:{1:_e(Ot,ge)},[ke.channelOffChainCreateContract]:{1:_e(It,ye)},[ke.channelOffChainCallContract]:{1:_e(At,we)},[ke.channelReconnect]:{1:_e(Et,be)},[ke.proofOfInclusion]:{1:_e(St,60)},[ke.stateTrees]:{1:_e(Nt,62)},[ke.merklePatriciaTree]:{1:_e(jt,63)},[ke.merklePatriciaTreeValue]:{1:_e(Pt,64)},[ke.contractsTree]:{1:_e(Bt,ve)},[ke.contractCallsTree]:{1:_e(Mt,xe)},[ke.channelsTree]:{1:_e(Rt,Te)},[ke.nameserviceTree]:{1:_e(qt,Ce)},[ke.oraclesTree]:{1:_e(Vt,Ie)},[ke.accountsTree]:{1:_e(Ft,Ae)},[ke.gaAttach]:{1:_e(rt,80)},[ke.gaMeta]:{2:_e(at,81)},[ke.payingFor]:{1:_e(ot,82)}},Dt={10:{2:_e(Qe,10)},[he]:{1:_e(ze,he)},12:{1:_e(Ye,12)},33:{1:_e(Xe,33)},32:{2:_e(Je,32)},34:{1:_e(Ze,34)},36:{1:_e(et,36)},35:{1:_e(tt,35)},40:{1:_e(nt,40)},42:{1:_e(st,42)},43:{1:_e(it,43)},41:{1:_e(ct,41)},22:{1:_e(lt,22)},25:{1:_e(dt,25)},23:{1:_e(ut,23)},24:{1:_e(ht,24)},50:{2:_e(pt,50)},53:{1:_e(gt,53)},54:{1:_e(yt,54)},55:{1:_e(wt,55)},51:{1:_e(ft,51)},52:{1:_e(mt,52)},56:{1:_e(bt,56)},57:{2:_e(xt,57)},58:{3:_e(Tt,58)},59:{1:_e(Ct,59)},[fe]:{1:_e(_t,fe)},[me]:{1:_e(kt,me)},[ge]:{1:_e(Ot,ge)},[ye]:{1:_e(It,ye)},[we]:{1:_e(At,we)},[be]:{1:_e(Et,be)},60:{1:_e(St,60)},62:{1:_e(Nt,62)},63:{1:_e(jt,63)},64:{1:_e(Pt,64)},[ve]:{1:_e(Bt,ve)},[xe]:{1:_e(Mt,xe)},[Te]:{1:_e(Rt,Te)},[Ce]:{1:_e(qt,Ce)},[Ie]:{1:_e(Vt,Ie)},[Ae]:{1:_e(Ft,Ae)},80:{1:_e(rt,80)},81:{2:_e(at,81)},82:{1:_e(ot,82)},[pe]:{1:_e(vt,pe)},70:{3:_e(Ge,70)}},Ut=e=>["number","object","string","bigint"].includes(typeof e)&&(!isNaN(e)||Number.isInteger(e)||b().isBigNumber(e)),Ht=e=>e.integerValue(b().ROUND_CEIL),Kt=wn,Wt=["tx","st","ss","pi","ov","or","cb","cs","ba"];function Lt(e,t){return Jt(F(Buffer.from([...Xt(e,"ak"),...E(t)])),"ct")}function Gt(e,t,n){return Jt(F(Buffer.from([...Xt(e,"ak"),...function(e){const t=E(e,!0);return Buffer.concat([Buffer.alloc(32-t.length),t])}(t),...Xt(n,"ok")])),"oq")}function Qt(e){return Buffer.from(e.toString(16).padStart(64,"0"),"hex")}function Yt(e){return on(e),Jt(F(e.toLowerCase()),"nm")}function zt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Kt();return on(e),`cm_${Tn(F(Buffer.concat([Buffer.from(e.toLowerCase()),Qt(t)])))}`}function Xt(e,t){const[n,r,a]=e.split("_");if(!r)throw new Error(`Encoded string missing payload: ${e}`);if(a)throw new Error(`Encoded string have extra parts: ${e}`);if(t&&t!==n)throw new Error(`Encoded string have a wrong type: ${n} (expected: ${t})`);return(Wt.includes(n)?xn:Cn)(r)}function Jt(e,t){return`${t}_${Wt.includes(t)?bn(e):Tn(e)}`}function Zt(e){if("string"!=typeof e)throw new Error(`Address should be a string, got ${e} instead`);const t=e.slice(0,2),n=Ue[t];if(!n)throw new Error(`Id tag for prefix ${t} not found.`);return Buffer.from([...E(n),...Xt(e,t)])}function en(e){const t=e.readUIntBE(0,1),n=He[t];if(!n)throw new Error(`Prefix for id-tag ${t} not found.`);return Jt(e.slice(1,e.length),n)}function tn(e){return E(e,!0)}function nn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Buffer.from([]);return b()(e.toString("hex"),16).toString(10)}function rn(e){return e.map((e=>[E(e.key),Zt(e.id)]))}function an(e){return e.map((e=>{let[t,n]=e;return Object.assign({key:t.toString(),id:en(n)})}))}function on(e){if(!e||"string"!=typeof e)throw new Error("Name must be a string");if(!e.endsWith(".chain"))throw new Error(`Name should end with .chain: ${e}`)}function sn(e){try{return on(e),!0}catch(e){return!1}}function cn(e){Xt(e);const t=e.substr(0,2);return le[t]||(()=>{throw new Error(`Default AENS pointer key is not defined for ${t} prefix`)})()}function ln(e){const t=e.replace(".chain","").length;return de[t>=ie?ie:t]}function dn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:re,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:oe;if(Number(n)!==n||n%1==0)throw new Error(`Increment must be float. Current increment ${n}`);if(n<oe)throw new Error(`minimum increment percentage is ${oe}`);return Ht(b()(b()(t).eq(re)?ln(e):t).times(b()(oe).plus(1)))}function un(e,t){return q()([[M()(5),P()(ue[4].plus(t))],[M()(9),P()(ue[8].plus(t))],[N()(ce),P()(ue[12].plus(t))],[O(),P()(b()(t))]])(e.replace(".chain","").length).toString(10)}function hn(e){return e.replace(".chain","").length<13}const pn=m().ModeOfOperation.ecb;function fn(e){const t=p().sign.keyPair.fromSecretKey(_(e));return`ak_${Tn(Buffer.from(t.publicKey))}`}function mn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ak";if("string"!=typeof e)return!1;try{return 32===Xt(e,t).length}catch(e){return!1}}function gn(e){return Mn(E(e,!0))}function yn(e){return y()("sha256").update(e).digest()}function wn(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}function bn(e){const t=Buffer.from(e),n=vn(e);return Buffer.concat([t,n],t.length+4).toString("base64")}function vn(e){return yn(yn(e)).slice(0,4)}function xn(e){const t=function(e){const t=e.slice(0,-4),n=e.slice(-4),r=vn(t);if(n.equals(r))return t}(Buffer.from(e,"base64"));if(!t)throw new Error("Invalid checksum");return Buffer.from(t)}function Tn(e){return u().encode(Buffer.from(e))}function Cn(e){return u().decode(e)}function In(e){const t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e),t.slice(t.findIndex((e=>0!==e)))}function An(e,t){const n=Xt(e,"ak");return`ct_${Tn(F(Buffer.concat([n,In(t)])))}`}function En(e){return p().sign.keyPair.fromSecretKey(e)}function _n(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=p().sign.keyPair(),n=Buffer.from(t.publicKey),r=Buffer.from(t.secretKey);return e?{publicKey:n,secretKey:r}:{publicKey:`ak_${Tn(n)}`,secretKey:r.toString("hex")}}function kn(e,t){const n=yn(e);return new pn(n).encrypt(t)}function On(e,t){const n=Buffer.from(t),r=yn(e),a=new pn(r);return Buffer.from(a.decrypt(n))}function Sn(e,t){return p().sign.detached(Buffer.from(e),Buffer.from(t))}function Nn(e,t,n){return p().sign.detached.verify(new Uint8Array(e),t,n)}function jn(e){const t=Buffer.from("aeternity Signed Message:\n","utf8"),n=Buffer.from(e,"utf8");if(n.length>=253)throw new Error("message too long");return F(Buffer.concat([Buffer.from([t.length]),t,Buffer.from([n.length]),n]))}function Pn(e,t){return Sn(jn(e),t)}function Bn(e,t,n){return Nn(jn(e),t,n)}function Mn(e){return`ak_${Tn(Buffer.from(e,"hex"))}`}function Rn(e,t){const n=Buffer.from("TheMessage");return Nn(n,Sn(n,e),t)}var qn=T(3323);const Vn=T(8097),Fn={crypto:{secret_type:"ed25519",symmetric_alg:"xsalsa20-poly1305",kdf:"argon2id",kdf_params:{memlimit_kib:65536,opslimit:3,parallelism:1}}},$n={argon2id:Dn};async function Dn(e,t,n){const{memlimit_kib:r,opslimit:a}=n.kdf_params;return Vn.ready.then((async()=>{const n=Vn,o=n.crypto_pwhash(32,e,t,a,1024*r,n.crypto_pwhash_ALG_ARGON2ID13);return Buffer.from(o)}))}const Un={"xsalsa20-poly1305":{encrypt:function(e){let{plaintext:t,key:n,nonce:r}=e;return p().secretbox(t,r,n)},decrypt:function(e){let{ciphertext:t,key:n,nonce:r}=e;const a=p().secretbox.open(t,r,n);if(!a)throw new Error("Invalid password or nonce");return a}}};function Hn(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Fn.crypto.symmetric_alg;if(!Un[r])throw new Error(r+" is not available");return Un[r].encrypt({plaintext:e,nonce:n,key:t})}async function Kn(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{kdf_params:Fn.crypto.kdf_params,kdf:Fn.crypto.kdf};if(null==e||!t)throw new Error("Must provide password and nonce to derive a key");if(!Object.prototype.hasOwnProperty.call($n,n.kdf))throw new Error("Unsupported kdf type");return $n[n.kdf](e,t,n)}function Wn(e,t,n,r,a){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};const s=Object.assign({},Fn.crypto,o);return Object.assign({name:e,version:1,public_key:Ln(n),id:(0,qn.v4)()},{crypto:Object.assign({secret_type:s.secret_type,symmetric_alg:s.symmetric_alg,ciphertext:Buffer.from(Hn(Buffer.from(n),t,r,s.symmetric_alg)).toString("hex"),cipher_params:{nonce:Buffer.from(r).toString("hex")}},{kdf:s.kdf,kdf_params:{...s.kdf_params,salt:Buffer.from(a).toString("hex")}})})}function Ln(e){const t=p().sign.keyPair.fromSecretKey(_(e));return`ak_${Tn(Buffer.from(t.publicKey))}`}async function Gn(e,t){Yn(t);const n=Uint8Array.from(_(t.crypto.cipher_params.nonce)),r=Uint8Array.from(_(t.crypto.kdf_params.salt)),a=t.crypto.kdf_params,o=t.crypto.kdf,s=await function(e,t,n,r){if(!Un[r])throw new Error(r+" is not available");return Un[r].decrypt({ciphertext:e,nonce:n,key:t})}(Uint8Array.from(_(t.crypto.ciphertext)),await Kn(e,r,{kdf:o,kdf_params:a}),n,t.crypto.symmetric_alg);if(!s)throw new Error("Invalid password");return 64===Buffer.from(s).length?Buffer.from(s).toString("hex"):Buffer.from(s).toString("utf-8")}async function Qn(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:p().randomBytes(24),a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:p().randomBytes(16),o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};const s=Object.assign({},Fn.crypto,o);return Wn(e,await Kn(t,a,s),n,r,a,s)}function Yn(e){const t=["crypto","id","version","public_key"].filter((t=>!Object.prototype.hasOwnProperty.call(e,t)));if(t.length)throw new Error(`Invalid key file format. Require properties: ${t}`);const n=["cipher_params","ciphertext","symmetric_alg","kdf","kdf_params"].filter((t=>!Object.prototype.hasOwnProperty.call(e.crypto,t)));if(n.length)throw new Error(`Invalid key file format. Require properties: ${n}`);return!0}var zn=T(2001);const Xn={AE:"ae",MILI_AE:"miliAE",MICRO_AE:"microAE",NANO_AE:"nanoAE",PICO_AE:"picoAE",FEMTO_AE:"femtoAE",AETTOS:"aettos"},Jn={[Xn.AE]:0,[Xn.MILI_AE]:-3,[Xn.MICRO_AE]:-6,[Xn.NANO_AE]:-9,[Xn.PICO_AE]:-12,[Xn.FEMTO_AE]:-15,[Xn.AETTOS]:-18},Zn=function(e){let{denomination:t=Xn.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return tr(e,{denomination:t,targetDenomination:Xn.AE})},er=function(e){let{denomination:t=Xn.AE}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return tr(e,{denomination:t})},tr=function(e){let{denomination:t=Xn.AETTOS,targetDenomination:n=Xn.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=Object.values(Xn);if(!r.includes(t))throw new Error(`Invalid denomination: ${t}`);if(!r.includes(n))throw new Error(`Invalid target denomination: ${n}`);if(!Ut(e))throw new Error(`Value ${null==e?void 0:e.toString()} is not type of number`);return new(b())(e).shiftedBy(Jn[t]-Jn[n]).toFixed()},nr=[{name:"exa",magnitude:18},{name:"giga",magnitude:9},{name:"",magnitude:0},{name:"pico",magnitude:-12}],rr=e=>nr.reduce(((t,n)=>Math.abs(n.magnitude-e)<Math.abs(t.magnitude-e)?n:t)),ar=e=>nr.find((t=>t.magnitude<=e))??nr[nr.length-1],or=e=>{const t=new(b())(e),n=t.e??0,{name:r,magnitude:a}=(n<0?rr:ar)(n);return`${t.shiftedBy(-a).precision(9+Math.min(n-a,0)).toFixed()}${""!==r?" ":""}${r}`};var sr;!function(e){e[e.Branch=0]="Branch",e[e.Extension=1]="Extension",e[e.Leaf=2]="Leaf"}(sr||(sr={}));class ir{static nodeHash(e){return Buffer.from(F((0,zn.encode)(e))).toString("hex")}constructor(e){if(this.rootHash=e[0].toString("hex"),this.nodes=Object.fromEntries(e[1].map((e=>[e[0].toString("hex"),e[1]]))),void 0===this.nodes[this.rootHash])throw new Error("Can't find a node by root hash");Object.entries(this.nodes).forEach((e=>{let[t,n]=e;if(ir.nodeHash(n)!==t)throw new Error("Node hash is not equal to provided one");const{type:r,payload:a}=ir.parseNode(n);switch(r){case sr.Branch:a.slice(0,16).filter((e=>e.length)).forEach((e=>{if(void 0===this.nodes[e.toString("hex")])throw new Error("Can't find a node by hash in branch node")}));break;case sr.Extension:if(void 0===this.nodes[a[0].toString("hex")])throw new Error("Can't find a node by hash in extension node")}}))}isEqual(e){return this.rootHash===e.rootHash}static parseNode(e){switch(e.length){case 17:return{type:sr.Branch,payload:e,path:null};case 2:{const t=e[0].toString("hex"),n=parseInt(t[0],16);if(n>3)throw new Error(`Unknown path nibble: ${n}`);const r=n<=1?sr.Extension:sr.Leaf,a=[0,2].includes(n)?2:1;return{type:r,payload:[e[1]],path:t.slice(a)}}default:throw new Error(`Unknown node length: ${e.length}`)}}serialize(){return[Buffer.from(this.rootHash,"hex"),Object.entries(this.nodes).map((e=>{let[t,n]=e;return[Buffer.from(t,"hex"),n]}))]}get(e){let t=this.rootHash;for(;;){const{type:n,payload:r,path:a}=ir.parseNode(this.nodes[t]);switch(n){case sr.Branch:if(0===e.length)return r[16];t=r[parseInt(e[0],16)].toString("hex"),e=e.substr(1);break;case sr.Extension:if(e.substr(0,null==a?void 0:a.length)!==a)return;t=r[0].toString("hex"),e=e.substr(a.length);break;case sr.Leaf:if(a!==e)return;return r[0]}}}}const cr="delta";function lr(e,t,n){if(!e)return"";switch(t){case Be.ctVersion:{const[t,,n]=e;return{vmVersion:nn(Buffer.from([t])),abiVersion:nn(Buffer.from([n]))}}case Be.amount:case Be.int:return nn(e);case Be.id:return en(e);case Be.ids:return e.map(en);case Be.bool:return 1===e[0];case Be.binary:return Jt(e,n);case Be.stateTree:return Jt(e,"ss");case Be.string:return e.toString();case Be.payload:return Jt(e,"ba");case Be.pointers:return an(e);case Be.rlpBinary:return xr(e,!0);case Be.rlpBinaries:return e.map((e=>xr(e,!0)));case Be.rawBinary:return e;case Be.hex:return e.toString("hex");case Be.offChainUpdates:return e.map((e=>xr(e,!0)));case Be.callStack:return[nn(e)];case Be.mptrees:return e.map((e=>new ir(e)));case Be.callReturnType:switch(nn(e)){case"0":return"ok";case"1":return"error";case"2":return"revert";default:return e}case Be.sophiaCodeTypeInfo:return e.reduce(((e,t)=>{let[n,r,a,o]=t;return{...e,[r.toString()]:{funHash:n,argType:a,outType:o}}}),{});default:return e}}function dr(e,t,n){switch(t){case Be.amount:case Be.int:return tn(e);case Be.id:return Zt(e);case Be.ids:return e.map(Zt);case Be.bool:return Buffer.from([e?1:0]);case Be.binary:return Xt(e,n);case Be.stateTree:return Xt(e,"ss");case Be.hex:return Buffer.from(e,"hex");case Be.signatures:return e.map(Buffer.from);case Be.payload:return"string"==typeof e&&"ba"===e.split("_")[0]?Xt(e,"ba"):E(e);case Be.string:return E(e);case Be.pointers:return rn(e);case Be.rlpBinary:return e.rlpEncoded??e;case Be.mptrees:return e.map((e=>e.serialize()));case Be.ctVersion:return Buffer.from([...E(e.vmVersion),0,...E(e.abiVersion)]);case Be.callReturnType:switch(e){case"ok":return tn(0);case"error":return tn(1);case"revert":return tn(2);default:return e}default:return e}}function ur(e,t){let{denomination:n}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e=t.filter((e=>{let[t,n]=e;return n===Be.amount})).reduce(((t,r)=>{let[a]=r;return{...e,[a]:tr(e[a],{denomination:n})}}),e);const r=t.map((e=>{let[t]=e;return t}));return Object.entries(e).reduce(((e,t)=>{let[n,a]=t;return r.includes(n)&&(e[n]=a),["oracleTtl","queryTtl","responseTtl"].includes(n)&&(e[`${n}Type`]=a.type===cr?0:1,e[`${n}Value`]=a.value),e}),{})}function hr(e,t){const n={[ke.oracleRegister]:"oracleTtl",[ke.oracleExtend]:"oracleTtl",[ke.oracleQuery]:"queryTtl",[ke.oracleResponse]:"responseTtl"}[t];return e[n]||e[`${n}Value`]?e[`${n}Value`]||e[n].value:1}function pr(e,t){let{gas:n=0,params:r,vsn:a}=t;const o=b()(1e9);if(!r)return b()(qe).times(o).toString(10);let s=fr(e,{params:{...r,fee:0},multiplier:o,gas:n,vsn:a}),i=b()(0);for(;!s.eq(i);)s=fr(e,{params:{...r,fee:s},multiplier:o,gas:n,vsn:a}),i=s;return i.toString(10)}function fr(e,t){let{params:n,gas:r=0,multiplier:a,vsn:o}=t;const{rlpEncoded:s}=vr({...n},e,{vsn:o}),i=s.length;return Fe(e).plus($e(e,i,{relativeTtl:hr(n,e),innerTxSize:[ke.gaMeta,ke.payingFor].includes(e)?n.tx.tx.encodedTx.rlpEncoded.length:0})).times(a)}function mr(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,{gas:n=0,params:r,showWarning:a=!0,vsn:o}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return!r&&a&&console.warn(`Can't build transaction fee, we will use DEFAULT_FEE(${qe})`),e||pr(t,{params:r,gas:n,vsn:o})}function gr(e,t,n){let{excludeKeys:r=[]}=n;return t.filter((e=>{let[t]=e;return!r.includes(t)&&"payload"!==t})).reduce(((t,n)=>{let[r,a,o]=n;return Object.assign(t,function(e,t,n,r){const a=(e,r)=>e?{}:{[t]:We[n](r)};if(null==e)return{[t]:"Field is required"};switch(n){case Be.amount:case Be.int:{const t=(!isNaN(e)||b().isBigNumber(e))&&b()(e).lt(0);return a((!isNaN(e)||b().isBigNumber(e))&&b()(e).gte(0),{value:e,isMinusValue:t})}case Be.id:return a((Array.isArray(r)?r:[r]).find((t=>t===e.split("_")[0]))&&Ue[e.split("_")[0]],{value:e,prefix:r});case Be.binary:return a(e.split("_")[0]===r,{prefix:r,value:e});case Be.string:return a(!0);case Be.ctVersion:return a("object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"abiVersion")&&Object.prototype.hasOwnProperty.call(e,"vmVersion"));case Be.pointers:return a(Array.isArray(e)&&!e.find((e=>e!==Object(e))),{value:e});default:return{}}}(e[r],r,a,o))}),{})}function yr(e,t){let{excludeKeys:n=[],denomination:r=Xn.AETTOS}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=t.filter((e=>{let[t]=e;return!n.includes(t)})),o=gr(e=ur(e,a,{denomination:r}),t,{excludeKeys:n});if(Object.keys(o).length)throw new Error("Transaction build error. "+JSON.stringify(o));return a.map((t=>{let[n,r,a]=t;return dr(e[n],r,a)}))}function wr(e,t){return t.reduce(((t,n,r)=>{let[a,o,s]=n;return Object.assign(t,{[a]:lr(e[r],o,s)})}),{})}const br=e=>{let{vsn:t,objId:n,type:r}=e;const a=!!n,o=a?n:r,s=a?Dt:$t;if(!s[o])throw new Error(`Transaction ${a?"deserialization":"serialization"} not implemented for ${a?"tag "+n:r}`);if(!s[o][t])throw new Error(`Transaction ${a?"deserialization":"serialization"} not implemented for ${a?"tag "+n:r} version ${t}`);return s[o][t]};function vr(e,t){let{excludeKeys:n=[],prefix:r="tx",vsn:a=$,denomination:o=Xn.AETTOS}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const[s,i]=br({type:t,vsn:a}),c=yr({...e,VSN:a,tag:i},s,{excludeKeys:n,denomination:e.denomination||o}).filter((e=>void 0!==e)),l=(0,zn.encode)(c),d=Jt(l,r);return{tx:d,rlpEncoded:l,binary:c,txObject:wr(c,s)}}function xr(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"tx";const r=t?e:Xt(e,n),a=(0,zn.decode)(r),o=nn(a[0]),s=nn(a[1]),[i]=br({objId:o,vsn:s});return{txType:Pe[o],tx:wr(a,i),rlpEncoded:r,binary:a}}function Tr(e){return Jt(F("string"==typeof e&&e.startsWith("tx_")?Xt(e,"tx"):e),"th")}const Cr={calculateMinFee:pr,calculateFee:mr,unpackTx:xr,unpackRawTx:wr,buildTx:vr,buildRawTx:yr,validateParams:gr,buildTxHash:Tr},Ir=["int","string","tuple","address","bool","list","map","record","option","oracle","oracleQuery","hash","signature","bytes","variant"].reduce(((e,t)=>({...e,[t]:t})),{ChainTtl:"Chain.ttl"}),Ar=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.reduce(((e,n)=>{const[r,...a]=n.topics,o=t.find((e=>F(e.name).equals(E(r,!0))));if(!o)return e;const s=o.types.filter((e=>e===Ir.string)).length;if(s>1)throw new Error(`Event schema contains more than one string: ${o.types}`);const i=o.types.length-s;if(i!==a.length)throw new Error(`Schema defines ${i} types, but ${a.length} topics present`);return e.push({...n,name:o.name,decoded:o.types.map((e=>Er(e===Ir.string?n.data:a.shift(),e)))}),e}),[])};function Er(e,t){switch(t){case Ir.int:return n=e,new(b())(n.toString()).toString(10);case Ir.bool:return!!e;case Ir.hash:return E(e,!0).toString("hex");case Ir.address:return gn(e);case Ir.string:return Xt(e).toString("utf-8");default:return E(e,!0)}var n}var _r=T(1001),kr=T(2405),Or=T(8367);const Sr=Buffer.from("ed25519 seed"),Nr=2147483648,jr=e=>Buffer.from(e).toString("hex");function Pr(e,t){const n=""===e?[]:(0,kr.fromString)(e).toPathArray();return n.forEach(((e,t)=>{if(e<Nr)throw new Error(`Segment #${t+1} is not hardened`)})),n.reduce(((e,t)=>Vr(e,t)),t)}function Br(e,t){if(!["m","m/"].includes(e.slice(0,2)))throw new Error("Invalid path");const n=qr(t);return Pr(e.slice(2),n)}function Mr(e){const{secretKey:t,publicKey:n}=e;return{secretKey:jr(t),publicKey:`ak_${Tn(n)}`}}function Rr(e){return p().sign.keyPair.fromSeed(e)}function qr(e){const t=(0,_r.full)(e,Sr);return{secretKey:t.slice(0,32),chainCode:t.slice(32)}}function Vr(e,t){let{secretKey:n,chainCode:r}=e;if(t<Nr)throw new Error(`Child index #${t} is not supported`);const a=Buffer.allocUnsafe(4);a.writeUInt32BE(t,0);const o=Buffer.concat([Buffer.alloc(1,0),Buffer.from(n),Buffer.from(a)]),s=(0,_r.full)(o,r);return{secretKey:s.slice(0,32),chainCode:s.slice(32)}}const Fr={getHdWalletAccountFromMnemonic:(e,t)=>({...Mr(Rr(Pr(`${t}h/0h/0h`,Br("m/44h/457h",(0,Or.mnemonicToSeed)(e))).secretKey)),idx:t}),getSaveHDWalletAccounts:function(e,t,n){const r={secretKey:On(t,Buffer.from(e.secretKey,"hex")),chainCode:On(t,Buffer.from(e.chainCode,"hex"))};return new Array(n).fill().map(((e,t)=>Mr(Rr(Pr(`${t}h/0h/0h`,r).secretKey))))},generateSaveHDWallet:function(e,t){if(!(0,Or.validateMnemonic)(e))throw new Error("Invalid mnemonic");const n=Br("m/44h/457h",(0,Or.mnemonicToSeed)(e));return{secretKey:jr(kn(t,n.secretKey)),chainCode:jr(kn(t,n.chainCode))}},generateMnemonic:function(){return(0,Or.generateMnemonic)()},deriveChild:Vr,getMasterKeyFromSeed:qr};var $r=T(1031),Dr=T.n($r),Ur=T(8081);const Hr=Dr()((0,Ur.required)({methods:{spendTx:Ur.required,namePreclaimTx:Ur.required,nameClaimTx:Ur.required,nameTransferTx:Ur.required,nameUpdateTx:Ur.required,nameRevokeTx:Ur.required,contractCreateTx:Ur.required,contractCallTx:Ur.required,oracleRegisterTx:Ur.required,oracleExtendTx:Ur.required,oraclePostQueryTx:Ur.required,oracleRespondTx:Ur.required,getAccountNonce:Ur.required,channelCloseSoloTx:Ur.required,channelSlashTx:Ur.required,channelSettleTx:Ur.required,channelSnapshotSoloTx:Ur.required,gaAttachTx:Ur.required,getVmVersion:Ur.required,prepareTxParams:Ur.required}})),Kr=Dr()({deepProps:{Ae:{defaults:{waitMined:!0,verify:!0}}}},(0,Ur.required)({methods:{sendTransaction:Ur.required,height:Ur.required,awaitHeight:Ur.required,topBlock:Ur.required,poll:Ur.required,balance:Ur.required,getBalance:Ur.required,tx:Ur.required,getTxInfo:Ur.required,mempool:Ur.required,txDryRun:Ur.required,getAccount:Ur.required}}));var Wr=T(7430),Lr=T.n(Wr),Gr=T(7414),Qr=T.n(Gr),Yr=T(5713),zr=T.n(Yr),Xr=T(7263),Jr=T.n(Xr),Zr=T(6290),ea=T.n(Zr);function ta(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{stamp:t,args:n,instance:r}=arguments.length>1?arguments[1]:void 0;return t.compose.deepConfiguration.AsyncInit.initializers.reduce((async(r,a)=>{if(r=await Promise.resolve(r),"function"==typeof a){const o=await Promise.resolve(a.call(r,e,{stamp:t,args:n,instance:r}));return void 0===o?r:o}return r}),r)}const na=Dr()({deepConf:{AsyncInit:{initializers:[]}},composers(e){let{stamp:t,composables:n}=e;t.compose.deepConfiguration.AsyncInit.initializers=ea()([ta],Jr()(zr(),Qr()(n.map((e=>Lr()(["compose","deepConfiguration","AsyncInit","initializers"],e)||(e.compose||e).initializers||[]))))),t.compose.initializers=[ta]}});var ra=T(4021),aa=T.n(ra),oa=T(6311),sa=T.n(oa),ia=T(3656);const ca=T.n(ia)()({storeAsString:!0}),la=e=>{if("object"==typeof e&&null!==e&&e.constructor===Object)return Object.entries(e).map((e=>{let[t,n]=e;return[t,la(n)]})).reduce(((e,t)=>{let[n,r]=t;return{...e,[n]:r}}),{});if(Array.isArray(e))return e.map((e=>la(e)));if("string"==typeof e&&b()(e).toString(10)===e){const t=b()(e);return t.toJSON=()=>t.toString(10),t}return e},da={stringify:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return ca.stringify(la(e),...n)},parse:ca.parse},ua=async e=>await new Promise((t=>setTimeout(t,e))),ha=(e,t)=>Object.fromEntries(Object.entries(e).map(t)),pa=(e,t)=>Object.fromEntries(Object.entries(e).filter(t)),fa=(e,t)=>"object"!=typeof t||null===t?t:Array.isArray(t)?t.map((t=>fa(e,t))):ha(t,(t=>{let[n,r]=t;return[e(n),fa(e,r)]})),ma=fa.bind(null,x),ga=fa.bind(null,v);let ya=!1;const wa=async function(e){let{spec:t,internalUrl:n,disableBigNumbers:r,disableCaseConversion:a,responseInterceptor:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t=t||await(await sa()(e)).json();const s=r?JSON:da;(["https://compiler.aepps.com","https://latest.compiler.aepps.com"].includes(new URL(e).origin)||new URL(e).origin.includes("https://"))&&(t.schemes=["https"]);const[i,c]=await Promise.all([e,n].map((e=>e?aa()({url:e,spec:t,responseInterceptor:e=>{var t;if(""===e.text||0===(null===(t=e.text)||void 0===t?void 0:t.size))return e;const n=s.parse(e.text);return Object.assign(e,{body:a?n:ga(n)}),o&&o(e)||e}}):null))),l=[...Object.values(i.apis),ha((null==c?void 0:c.apis.internal)||{},(e=>{let[t,n]=e;return[t,function(){return ya||(console.warn('SDK\'s wrapper of aeternity node internal API is deprecated, please use external equivalent (for example, "sdk.api.protectedDryRunTxs" instead of "sdk.api.dryRunTxs") or create a wrapper of internal API by yourself (using "genSwaggerClient")'),ya=!0),n(...arguments)}]}))].reduce(((e,t)=>({...e,...t}))),d=Object.values(t.paths).map((e=>Object.values(e))).flat().reduce(((e,t)=>({...e,[t.operationId]:t})),{}),u=ha(l,(e=>{let[t,n]=e;return[t.slice(0,1).toLowerCase()+t.slice(1),async function(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];const i=d[t],c=[...i.parameters,...i.requestBody?[{required:i.requestBody.required,schema:Object.values(i.requestBody.content)[0].schema,name:"__requestBody"}]:[]],l=c.filter((e=>e.required)).map((e=>e.name));if(r.length<l.length)throw new Error("swagger: Not enough arguments");const u=l.reduce(((e,t,n)=>({...e,[t]:r[n]})),r[l.length]||{}),{__requestBody:h,...p}=ha(u,(e=>{let[t,n]=e;if("object"!=typeof n)return[t,n];const r=Object.keys(c.find((e=>e.name===t)).schema.properties),o=pa(a?n:ma(n),(e=>{let[t]=e;return r.includes(t)}));return[t,s.stringify(o)]}));return(await n(p,{requestBody:h})).body}]}));return Object.assign(i,{api:u})};function ba(e,t,n){const r=e=>e.split(/[-+]/)[0].split(".").map((e=>+e)),a=r(e),o=r(t),s=r(n),i=Math.max(...a,...o,...s)+1,c=e=>e.reverse().reduce(((e,t,n)=>e+t*Math.pow(i,n)),0),l=c(a),d=c(o),u=c(s);return l>=d&&l<u}function va(){var e;let{networkId:t,force:n=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=t||this.networkId||(null===(e=this.selectedNode)||void 0===e?void 0:e.networkId);if(!n&&!r)throw new Error("networkId is not provided");return n&&!r?null:r}const xa=na.compose({async init(e){let{url:t,internalUrl:n,ignoreVersion:r}=e;if(!t)throw new Error('"url" required');this.url=t.replace(/\/$/,""),this.internalUrl=n?n.replace(/\/$/,""):this.url;const a=await wa(`${this.url}/api?oas3`,{internalUrl:this.internalUrl,responseInterceptor:e=>{if(!e.ok)return Object.assign(e,{statusText:`${new URL(e.url).pathname.slice(1)} error: `+e.body.reason})}});if(this.version=a.spec.info.version,!ba(this.version,Ta,Ca)&&!r)throw new Error(`Unsupported node version ${this.version}. Supported: >= ${Ta} < ${Ca}`);this.api=a.api;const{nodeRevision:o,genesisKeyBlockHash:s,networkId:i,protocols:c,topBlockHeight:l}=await this.api.getStatus();return this.consensusProtocolVersion=c.filter((e=>{let{effectiveAtHeight:t}=e;return l>=t})).reduce(((e,t)=>t.effectiveAtHeight>e.effectiveAtHeight?t:e),{effectiveAtHeight:-1,version:0}).version,this.nodeNetworkId=i,Object.assign(this,{revision:o,genesisHash:s})},methods:{getNodeInfo(){return{url:this.url,internalUrl:this.internalUrl,nodeNetworkId:this.nodeNetworkId,version:this.version,consensusProtocolVersion:this.consensusProtocolVersion}}},props:{version:null,consensusProtocolVersion:null,nodeNetworkId:null}}),Ta="6.2.0",Ca="7.0.0",Ia=xa,Aa=e=>!["sign","address"].find((t=>"function"!=typeof e[t])),Ea=Dr()({init(e){let{networkId:t}=e;!this.networkId&&t&&(this.networkId=t)},methods:{signTransaction:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=[this.getNetworkId(t)];t.innerTx&&n.push("inner_tx");const r=Xt(e,"tx"),a=Buffer.concat([Buffer.from(n.join("-")),F(r)]),o=[await this.sign(a,t)];return vr({encodedTx:r,signatures:o},ke.signed).tx},getNetworkId:va,signMessage:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{returnHex:!1};const n=await this.sign(jn(e),t);return t.returnHex?Buffer.from(n).toString("hex"):n},verifyMessage:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Bn(e,"string"==typeof t?Buffer.from(t,"hex"):t,Xt(await this.address(n)))}}},(0,Ur.required)({methods:{sign:Ur.required,address:Ur.required}})),_a=Dr()(Hr,Ea,Kr,{methods:{send:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={...this.Ae.defaults,...t},{contractId:r,authFun:a}=t.innerTx?{contractId:!1}:await this.getAccount(await this.address(n)),o=r?await this.signUsingGA(e,{...n,authFun:a}):await this.signTransaction(e,n);return n.innerTx?{hash:Cr.buildTxHash(o),rawTx:o}:this.sendTransaction(o,n)},spend:async function(e,t,n){const r={...this.Ae.defaults,...n};return this.send(await this.spendTx({...r,senderId:await this.address(r),recipientId:await this.resolveName(t,"account_pubkey",r),amount:e}),r)},transferFunds:async function(e,t,n){if(e<0||e>1)throw new Error(`Fraction should be a number between 0 and 1, got ${e}`);const r={...this.Ae.defaults,...n},a=await this.resolveName(t,"account_pubkey",r),o=await this.address(r),s=new(b())(await this.balance(o)),i=s.times(e).integerValue(b().ROUND_HALF_UP),{tx:{fee:c}}=Cr.unpackTx(await this.spendTx({...r,senderId:o,recipientId:a,amount:i})),l=i.plus(c).gt(s)?s.minus(c):i;return this.send(await this.spendTx({...r,senderId:o,recipientId:a,amount:l}),r)},payForTransaction:async function(e,t){const n={...this.Ae.defaults,...t};return this.send(await this.payingForTx({...n,payerId:await this.address(n),tx:e}),n)},destroyInstance:function(){["destroyClient","destroyServer"].forEach((e=>this[e]&&"function"==typeof this[e]&&this[e]()))},signUsingGA:async function(e){let{authData:t,authFun:n,...r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.createMetaTx(e,t,n,r)}},deepProps:{Ae:{defaults:{denomination:Xn.AETTOS}}}}),ka=_a,Oa=[async(e,t)=>{let{encodedTx:n,signatures:r}=e,{account:a,node:o,parentTxTypes:s}=t;if(void 0===(n??r))return[];if(1!==r.length)return[];const i=Buffer.from([o.nodeNetworkId,...s.includes(ke.payingFor)?["inner_tx"]:[]].join("-")),c=Buffer.concat([i,n.rlpEncoded]),l=Buffer.concat([i,F(n.rlpEncoded)]),d=Xt(a.id,"ak");return Nn(c,r[0],d)||Nn(l,r[0],d)?[]:[{message:"Signature cannot be verified, please ensure that you transaction have the correct prefix and the correct private key for the sender address",key:"InvalidSignature",checkedKeys:["encodedTx","signatures"]}]},async(e,t)=>{let{encodedTx:n,tx:r}=e,{node:a,parentTxTypes:o,txType:s}=t;return void 0===(n??r)?[]:Na(Jt((n??r).rlpEncoded,"tx"),a,[...o,s])},(e,t)=>{let{txType:n}=t;if(void 0===e.fee)return[];const r=mr(0,n,{gas:+e.gas||0,params:e,showWarning:!1,vsn:e.VSN});return new(b())(r).lte(e.fee)?[]:[{message:`Fee ${e.fee} is too low, minimum fee for this transaction is ${r}`,key:"InsufficientFee",checkedKeys:["fee"]}]},(e,t)=>{let{ttl:n}=e,{height:r}=t;return void 0===n?[]:(n=+n,0===n||n>=r?[]:[{message:`TTL ${n} is already expired, current height is ${r}`,key:"ExpiredTTL",checkedKeys:["ttl"]}])},(e,t)=>{let{amount:n,fee:r,nameFee:a,tx:o}=e,{account:s,parentTxTypes:i,txType:c}=t;if(void 0===(n??r??a))return[];const l=new(b())(r).plus(a||0).plus(n||0).plus(c===ke.payingFor?o.tx.encodedTx.tx.fee:0).minus(i.includes(ke.payingFor)?r:0);return l.lte(s.balance)?[]:[{message:`Account balance ${s.balance} is not enough to execute the transaction that costs ${l.toFixed()}`,key:"InsufficientBalance",checkedKeys:["amount","fee","nameFee"]}]},(e,t)=>{let{nonce:n}=e,{account:r,parentTxTypes:a}=t;if(void 0===n||a.includes(ke.gaMeta))return[];n=+n;const o=r.nonce+1;return n===o?[]:[{...n<o?{message:`Nonce ${n} is already used, valid nonce is ${o}`,key:"NonceAlreadyUsed"}:{message:`Nonce ${n} is too high, valid nonce is ${o}`,key:"NonceHigh"},checkedKeys:["nonce"]}]},e=>{let{gasPrice:t}=e;return void 0===t||t>=z?[]:[{message:`Gas price ${t} must be bigger then ${z}`,key:"MinGasPrice",checkedKeys:["gasPrice"]}]},(e,t)=>{let{ctVersion:n,abiVersion:r}=e,{txType:a,node:o}=t;const{consensusProtocolVersion:s}=o.getNodeInfo(),i=je[s];if(!i)throw new Error(`Unsupported protocol: ${s}`);n||(n={abiVersion:r});const c=i[a];return c&&Object.entries(n).some((e=>{let[t,n]=e;return!c[t].includes(+n)}))?[{message:`ABI/VM version ${JSON.stringify(n)} is wrong, supported is: ${JSON.stringify(c)}`,key:"VmAndAbiVersionMismatch",checkedKeys:["ctVersion","abiVersion"]}]:[]}],Sa=e=>["senderId","accountId","ownerId","callerId","oracleId","fromId","initiator","gaId","payerId"].map((t=>e[t])).filter((e=>e)).map((e=>e.replace(/^ok_/,"ak_")))[0];async function Na(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const{tx:r,txType:a}=xr(e),o=Sa(r)??(a===ke.signed?Sa(r.encodedTx.tx):null),[s,i]=await Promise.all([o&&t.api.getAccountByPubkey(o).catch((()=>({id:o,balance:new(b())(0),nonce:0}))),t.api.getCurrentKeyBlockHeight().then((e=>{let{height:t}=e;return t}))]);return(await Promise.all(Oa.map((e=>e(r,{txType:a,node:t,account:s,height:i,parentTxTypes:n}))))).flat()}const ja=Dr()({init(){let{nodes:e=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.pool=new Map,this.validateNodes(e),e.forEach(((e,t)=>{const{name:n,instance:r}=e;this.addNode(n,r,0===t)})),e.length&&this.selectNode(e[0].name)},propertyDescriptors:{api:{enumerable:!0,configurable:!1,get(){if(!this.selectedNode||!this.selectedNode.instance)throw new Error("You can't use Node API. Node is not connected or not defined!");return this.selectedNode.instance.api}}},methods:{addNode(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.pool.has(e))throw new Error(`Node with name ${e} already exist`);this.validateNodes([{name:e,instance:t}]),this.pool.set(e,{name:e,instance:t,url:t.url,internalUrl:t.internalUrl,networkId:t.nodeNetworkId,version:t.version,consensusProtocolVersion:t.consensusProtocolVersion}),!n&&this.selectedNode||this.selectNode(e)},selectNode(e){if(!this.pool.has(e))throw new Error(`Node with name ${e} not in pool`);this.selectedNode=this.pool.get(e)},getNetworkId:va,isNodeConnected(){return!!this.selectedNode.instance},getNodeInfo(){if(!this.isNodeConnected())throw new Error("Can not get node info. Node is not connected");return{name:this.selectedNode.name,...this.selectedNode.instance.getNodeInfo()}},getNodesInPool(){return Array.from(this.pool.entries()).map((e=>{let[t,n]=e;return{name:t,...n.instance.getNodeInfo()}}))},validateNodes(e){if(!Array.isArray(e))throw new Error('"nodes" should be an array');const t=e.map((e=>typeof e)).find((e=>"object"!==e));if(t)throw new Error(`Each node should be an object, got ${t} instead`);const n=e.find((e=>"string"!=typeof e.name||"object"!=typeof e.instance));if(t)throw new Error(`Each node should have name (string), instance (object) fields, got ${JSON.stringify(n)} instead`);const r=e.map((e=>e.instance)).find((e=>"object"!=typeof e.api||"string"!=typeof e.genesisHash||"number"!=typeof e.consensusProtocolVersion));if(r)throw new Error(`Each node instance should have api (object), consensusProtocolVersion (number), genesisHash (string) fields, got ${JSON.stringify(r)} instead`)}},props:{selectedNode:{}}}),Pa=Kr.compose(ja,{methods:{sendTransaction:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{waitMined:n,verify:r}={...this.Ae.defaults,...t};if(r){const t=await Na(e,this.selectedNode.instance);if(t.length){const n="Transaction verification errors: "+t.map((e=>e.message)).join(", ");throw Object.assign(new Error(n),{code:"TX_VERIFICATION_ERROR",validation:t,transaction:e})}}try{const{txHash:r}=await this.api.postTransaction({tx:e});if(n){const n={...await this.poll(r,t),rawTx:e};return t.confirm?{...n,confirmationHeight:await this.waitForTxConfirm(r,t)}:n}return{hash:r,rawTx:e}}catch(t){throw Object.assign(t,{rawTx:e,verifyTx:()=>Na(e,this.selectedNode.instance)})}},balance:async function(e){let{height:t,hash:n,format:r=Xn.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{balance:a}=await this.getAccount(e,{hash:n,height:t});return tr(a,{targetDenomination:r}).toString()},getBalance:async function(e){let{height:t,hash:n,format:r=Xn.AETTOS}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{balance:a}=await this.getAccount(e,{hash:n,height:t}).catch((e=>({balance:0})));return tr(a,{targetDenomination:r}).toString()},getAccount:async function(e){let{height:t,hash:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t?this.api.getAccountByPubkeyAndHeight(e,t):n?this.api.getAccountByPubkeyAndHash(e,n):this.api.getAccountByPubkey(e)},topBlock:async function(){return this.api.getTopHeader()},tx:async function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const n=await this.api.getTransactionByHash(e);if(["ContractCreateTx","ContractCallTx","ChannelForceProgressTx"].includes(n.tx.type)&&t&&-1!==n.blockHeight)try{return{...n,...await this.getTxInfo(e)}}catch(e){}return n},height:async function(){try{return this._heightPromise||(this._heightPromise=this.api.getCurrentKeyBlockHeight()),(await this._heightPromise).height}finally{delete this._heightPromise}},awaitHeight:async function(e){let t,{interval:n=5e3,attempts:r=20}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(let a=0;a<r;a++)if(a&&await ua(n),t=await this.height(),t>=e)return t;throw new Error(`Giving up after ${(r-1)*n}ms, current height: ${t}, desired height: ${e}`)},poll:async function(e){let{blocks:t=10,interval:n=500,allowUnsynced:r=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=await this.height()+t;do{const t=await this.tx(e).catch((e=>null));if(t&&(-1!==t.blockHeight||r&&t.height))return t;await ua(n)}while(await this.height()<a);throw new Error(`Giving up after ${t} blocks mined, transaction hash: ${e}`)},getTxInfo:async function(e){const t=await this.api.getTransactionInfoByHash(e);return t.callInfo||t},mempool:async function(){return this.api.getPendingTransactions()},getCurrentGeneration:async function(){return this.api.getCurrentGeneration()},getGeneration:async function(e){if("string"==typeof e)return this.api.getGenerationByHash(e);if("number"==typeof e)return this.api.getGenerationByHeight(e);throw new Error("Invalid param, param must be hash or height")},getMicroBlockHeader:async function(e){return this.api.getMicroBlockHeaderByHash(e)},getMicroBlockTransactions:async function(e){return(await this.api.getMicroBlockTransactionsByHash(e)).transactions},getKeyBlock:async function(e){if("string"==typeof e)return this.api.getKeyBlockByHash(e);if("number"==typeof e)return this.api.getKeyBlockByHeight(e);throw new Error("Invalid param, param must be hash or height")},txDryRun:async function(e,t,n){const{results:[{result:r,reason:a,...o}],...s}=await this.api.protectedDryRunTxs({...n,txs:[{tx:e}],accounts:[{pubKey:t,amount:J.amount}]});if("ok"===r)return{...o,...s};throw Object.assign(new Error("Dry run error, "+a),{tx:e,accountAddress:t,options:n})},getContractByteCode:async function(e){return this.api.getContractCode(e)},getContract:async function(e){return this.api.getContract(e)},getName:async function(e){return this.api.getNameEntryByName(e)},waitForTxConfirm:async function e(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{confirm:3};n.confirm=!0===n.confirm?3:n.confirm;const{blockHeight:r}=await this.tx(t),a=await this.awaitHeight(r+n.confirm,n),{blockHeight:o}=await this.tx(t);switch(o){case-1:throw new Error(`Transaction ${t} is removed from chain`);case r:return a;default:return e(t,n)}},resolveName:async function(e,t){let{verify:n,resolveByNode:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e||"string"!=typeof e)throw new Error(`Name or address should be a string: ${e}`);try{return Xt(e),e}catch(e){}if(sn(e)){if(n||r){const n=await this.api.getNameEntryByName(e).catch((e=>null));if(!n)throw new Error(`Name not found: ${e}`);const a=n.pointers.find((e=>e.key===t));if(!a)throw new Error(`Name ${e} don't have pointers for ${t}`);if(r)return a.id}return Yt(e)}throw new Error(`Invalid name or address: ${e}`)}}}),Ba=Pa,Ma=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("object"!=typeof t)throw new Error('"params" should be an object');if("string"!=typeof e||!Object.values(ke).includes(e))throw new Error(`Unknown transaction type ${e}`);const r=mr(t.fee,e,{gas:t.gas,params:t,vsn:t.vsn}),{rlpEncoded:a,binary:o,tx:s,txObject:i}=vr({...t,fee:r},e,{vsn:t.vsn,...n});return{rlpEncoded:a,binary:o,encodedTx:s,params:i,type:e}},Ra=e=>{if(!e)throw new Error(`Invalid transaction: ${e}`);if("string"==typeof e){const{txType:t,tx:n,rlpEncoded:r,binary:a}=xr(e);return{encodedTx:e,type:t,params:n,rlpEncoded:r,binary:a}}if(Buffer.isBuffer(e)){const{txType:t,tx:n,rlpEncoded:r,binary:a}=xr(e,!0);return{encodedTx:Jt(e,"tx"),type:t,params:n,rlpEncoded:r,binary:a}}},qa=Dr()({init(){let{tx:e,params:t,type:n,options:r={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.options=r,this.signatures=[],Object.assign(this,function(){let{tx:e,params:t,type:n,options:r={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(t&&n)return Ma(n,t,r);if(e)return Ra(e);throw new Error('Invalid TxObject arguments. Please provide one of { tx: "tx_asdasd23..." } or { type: "spendTx", params: {...} }')}({tx:e,params:t,type:n,options:r})),this.type===ke.signed){const{signatures:e,encodedTx:{txType:t,tx:n}}=this.params;this.signatures=e,this.params=n,this.type=t,this.isSigned=!0}},statics:{fromString:e=>qa({tx:e}),fromRlp:e=>qa({tx:e})},methods:{setProp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!=typeof e)throw new Error("Props should be an object");return this.isSigned=!1,this.signatures=[],Object.assign(this,Ma(this.type,{...this.params,...e,fee:null},{...this.options,...t})),this},getSignatures(){if(!this.isSigned)throw new Error("Signature not found, transaction is not signed");return this.signatures},addSignature(e){if(e=I(e)?Buffer.from(e,"hex"):e,!(Buffer.isBuffer(e)||e instanceof Uint8Array))throw new Error("Invalid signature, signature must be of type Buffer or Uint8Array");Object.assign(this,Ma(ke.signed,{encodedTx:this.rlpEncoded,signatures:[[...this.signatures,e]]}));const{signatures:t,encodedTx:{txType:n,tx:r}}=this.params;this.signatures=t,this.params=r,this.type=n,this.isSigned=!0},calculateMinFee(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={...this.params,...e};return mr(0,this.type,{gas:t.gas,params:t,vsn:t.vsn})}}}),Va=qa;async function Fa(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:U,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0===e)return 0;if(e<0)throw new Error("ttl must be greater than 0");if(t){const{height:t}=await this.api.getCurrentKeyBlock();return+t+e}return e}const $a=Ba.compose(Hr,{init(e){let{nativeMode:t=!0,showWarning:n=!1}=e;this.nativeMode=t,this.showWarning=n},props:{nativeMode:!0,showWarning:!1},methods:{spendTx:async function(e){let{senderId:t,recipientId:n,amount:r,payload:a=""}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(ke.spend,{senderId:t,...arguments[0],payload:a}),{tx:c}=this.nativeMode?{tx:qa({params:{...arguments[0],recipientId:n,senderId:t,nonce:i,ttl:s,payload:a},type:ke.spend}).encodedTx}:await this.api.postSpend({...arguments[0],amount:parseInt(r),recipientId:n,senderId:t,nonce:i,ttl:s,fee:parseInt(o),payload:a});return c},namePreclaimTx:async function(e){let{accountId:t,commitmentId:n}=e;const{fee:r,ttl:a,nonce:o}=await this.prepareTxParams(ke.namePreClaim,{senderId:t,...arguments[0]}),{tx:s}=this.nativeMode?{tx:qa({params:{...arguments[0],nonce:o,ttl:a,fee:r},type:ke.namePreClaim}).encodedTx}:await this.api.postNamePreclaim({...arguments[0],nonce:o,ttl:a,fee:parseInt(r)});return s},nameClaimTx:async function(e){let{accountId:t,name:n,nameSalt:r,vsn:a=2}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(ke.nameClaim,{senderId:t,...arguments[0],vsn:a}),{tx:c}=this.nativeMode?{tx:qa({params:{...arguments[0],nonce:i,ttl:s,fee:o,vsn:a},type:ke.nameClaim}).encodedTx}:await this.api.postNameClaim({...arguments[0],nonce:i,ttl:s,fee:parseInt(o)});return c},nameTransferTx:async function(e){let{accountId:t,nameId:n,recipientId:r}=e;const{fee:a,ttl:o,nonce:s}=await this.prepareTxParams(ke.nameTransfer,{senderId:t,...arguments[0]}),{tx:i}=this.nativeMode?{tx:qa({params:{...arguments[0],recipientId:r,nonce:s,ttl:o,fee:a},type:ke.nameTransfer}).encodedTx}:await this.api.postNameTransfer({...arguments[0],recipientId:r,nonce:s,ttl:o,fee:parseInt(a)});return i},nameUpdateTx:async function(e){let{accountId:t,nameId:n,nameTtl:r,pointers:a,clientTtl:o}=e;const{fee:s,ttl:i,nonce:c}=await this.prepareTxParams(ke.nameUpdate,{senderId:t,...arguments[0]}),{tx:l}=this.nativeMode?{tx:qa({params:{...arguments[0],nonce:c,ttl:i,fee:s},type:ke.nameUpdate}).encodedTx}:await this.api.postNameUpdate({...arguments[0],nonce:c,ttl:i,fee:parseInt(s)});return l},nameRevokeTx:async function(e){let{accountId:t,nameId:n}=e;const{fee:r,ttl:a,nonce:o}=await this.prepareTxParams(ke.nameRevoke,{senderId:t,...arguments[0]}),{tx:s}=this.nativeMode?{tx:qa({params:{...arguments[0],nonce:o,ttl:a,fee:r},type:ke.nameRevoke}).encodedTx}:await this.api.postNameRevoke({...arguments[0],nonce:o,ttl:a,fee:parseInt(r)});return s},contractCreateTx:async function(e){let{ownerId:t,code:n,vmVersion:r,abiVersion:a,deposit:o,amount:s,gas:i,gasPrice:c=z,callData:l}=e;const d=this.getVmVersion(ke.contractCreate,arguments[0]),{fee:u,ttl:h,nonce:p}=await this.prepareTxParams(ke.contractCreate,{senderId:t,...arguments[0],ctVersion:d,gasPrice:c});return this.nativeMode?{tx:qa({params:{...arguments[0],nonce:p,ttl:h,fee:u,ctVersion:d,gasPrice:c},type:ke.contractCreate}).encodedTx,contractId:Lt(t,p)}:this.api.postContractCreate({...arguments[0],nonce:p,ttl:h,fee:parseInt(u),gas:parseInt(i),gasPrice:c,vmVersion:d.vmVersion,abiVersion:d.abiVersion})},contractCallTx:async function(e){let{callerId:t,contractId:n,abiVersion:r,amount:a,gas:o,gasPrice:s=z,callData:i}=e;const c=this.getVmVersion(ke.contractCall,arguments[0]),{fee:l,ttl:d,nonce:u}=await this.prepareTxParams(ke.contractCall,{senderId:t,...arguments[0],gasPrice:s,abiVersion:c.abiVersion}),{tx:h}=this.nativeMode?{tx:qa({params:{...arguments[0],nonce:u,ttl:d,fee:l,abiVersion:c.abiVersion,gasPrice:s},type:ke.contractCall}).encodedTx}:await this.api.postContractCall({...arguments[0],nonce:u,ttl:d,fee:parseInt(l),gas:parseInt(o),gasPrice:s,abiVersion:c.abiVersion});return h},prepareTxParams:async function(e,t){let{senderId:n,nonce:r,ttl:a,fee:o,gas:s,absoluteTtl:i,vsn:c,strategy:l}=t;r=r||(await this.api.getAccountNextNonce(n,{strategy:l}).catch((e=>({nextNonce:1})))).nextNonce;const d=await Fa.call(this,a,!i),u=mr(o,e,{showWarning:this.showWarning,gas:s,params:{...arguments[1],nonce:r,ttl:d},vsn:c});return{fee:u,ttl:d,nonce:r}},oracleRegisterTx:async function(e){let{accountId:t,queryFormat:n,responseFormat:r,queryFee:a,oracleTtl:o,abiVersion:s=Se.NO_ABI}=e;const{fee:i,ttl:c,nonce:l}=await this.prepareTxParams(ke.oracleRegister,{senderId:t,...arguments[0],abiVersion:s}),{tx:d}=this.nativeMode?{tx:qa({params:{accountId:t,queryFee:a,abiVersion:s,fee:i,oracleTtl:o,nonce:l,ttl:c,queryFormat:n,responseFormat:r},type:ke.oracleRegister}).encodedTx}:await this.api.postOracleRegister({accountId:t,queryFee:a,abiVersion:s,fee:parseInt(i),oracleTtl:o,nonce:l,ttl:c,queryFormat:n,responseFormat:r});return d},oracleExtendTx:async function(e){let{oracleId:t,callerId:n,oracleTtl:r}=e;const{fee:a,ttl:o,nonce:s}=await this.prepareTxParams(ke.oracleExtend,{senderId:n,...arguments[0]}),{tx:i}=this.nativeMode?{tx:qa({params:{oracleId:t,fee:a,oracleTtl:r,nonce:s,ttl:o},type:ke.oracleExtend}).encodedTx}:await this.api.postOracleExtend({oracleId:t,fee:parseInt(a),oracleTtl:r,nonce:s,ttl:o});return i},oraclePostQueryTx:async function(e){let{oracleId:t,responseTtl:n,query:r,queryTtl:a,queryFee:o,senderId:s}=e;const{fee:i,ttl:c,nonce:l}=await this.prepareTxParams(ke.oracleQuery,{senderId:s,...arguments[0]}),{tx:d}=this.nativeMode?{tx:qa({params:{oracleId:t,responseTtl:n,query:r,queryTtl:a,fee:i,queryFee:o,ttl:c,nonce:l,senderId:s},type:ke.oracleQuery}).encodedTx}:await this.api.postOracleQuery({oracleId:t,responseTtl:n,query:r,queryTtl:a,fee:parseInt(i),queryFee:o,ttl:c,nonce:l,senderId:s});return d},oracleRespondTx:async function(e){let{oracleId:t,callerId:n,responseTtl:r,queryId:a,response:o}=e;const{fee:s,ttl:i,nonce:c}=await this.prepareTxParams(ke.oracleResponse,{senderId:n,...arguments[0]}),{tx:l}=this.nativeMode?{tx:qa({params:{oracleId:t,responseTtl:r,queryId:a,response:o,fee:s,ttl:i,nonce:c},type:ke.oracleResponse}).encodedTx}:await this.api.postOracleRespond({oracleId:t,responseTtl:r,queryId:a,response:o,fee:parseInt(s),ttl:i,nonce:c});return l},channelCloseSoloTx:async function(e){let{channelId:t,fromId:n,payload:r,poi:a}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(ke.channelCloseSolo,{senderId:n,...arguments[0],payload:r}),{tx:c}=this.nativeMode?vr({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:o,nonce:i},ke.channelCloseSolo):await this.api.postChannelCloseSolo({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:parseInt(o),nonce:i});return c},channelSlashTx:async function(e){let{channelId:t,fromId:n,payload:r,poi:a}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(ke.channelSlash,{senderId:n,...arguments[0],payload:r}),{tx:c}=this.nativeMode?vr({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:o,nonce:i},ke.channelSlash):await this.api.postChannelSlash({...arguments[0],channelId:t,fromId:n,payload:r,poi:a,ttl:s,fee:parseInt(o),nonce:i});return c},channelSettleTx:async function(e){let{channelId:t,fromId:n,initiatorAmountFinal:r,responderAmountFinal:a}=e;const{fee:o,ttl:s,nonce:i}=await this.prepareTxParams(ke.channelSettle,{senderId:n,...arguments[0]}),{tx:c}=this.nativeMode?vr({...arguments[0],channelId:t,fromId:n,initiatorAmountFinal:r,responderAmountFinal:a,ttl:s,fee:o,nonce:i},ke.channelSettle):await this.api.postChannelSettle({...arguments[0],channelId:t,fromId:n,initiatorAmountFinal:parseInt(r),responderAmountFinal:parseInt(a),ttl:s,fee:parseInt(o),nonce:i});return c},channelSnapshotSoloTx:async function(e){let{channelId:t,fromId:n,payload:r}=e;const{fee:a,ttl:o,nonce:s}=await this.prepareTxParams(ke.channelSnapshotSolo,{senderId:n,...arguments[0],payload:r}),{tx:i}=this.nativeMode?vr({...arguments[0],channelId:t,fromId:n,payload:r,ttl:o,fee:a,nonce:s},ke.channelSnapshotSolo):await this.api.postChannelSnapshotSolo({...arguments[0],channelId:t,fromId:n,payload:r,ttl:o,fee:parseInt(a),nonce:s});return i},gaAttachTx:async function(e){let{ownerId:t,code:n,vmVersion:r,abiVersion:a,authFun:o,gas:s,gasPrice:i=z,callData:c}=e;const l=this.getVmVersion(ke.contractCreate,arguments[0]),{fee:d,ttl:u,nonce:h}=await this.prepareTxParams(ke.gaAttach,{senderId:t,...arguments[0],ctVersion:l,gasPrice:i});return{tx:qa({params:{...arguments[0],nonce:h,ttl:u,fee:d,ctVersion:l,gasPrice:i},type:ke.gaAttach}).encodedTx,contractId:Lt(t,h)}},payingForTx:async function(e){let{tx:t,payerId:n,...r}=e;const a={tx:xr(t),payerId:n},{fee:o,nonce:s}=await this.prepareTxParams(ke.payingFor,{...a,...r,senderId:n});return vr({...a,...r,fee:o,nonce:s},ke.payingFor).tx},getAccountNonce:async function(e,t){if(t)return t;const{nonce:n}=await this.api.getAccountByPubkey(e).catch((()=>({nonce:0})));return n+1},getVmVersion:function(e){let{vmVersion:t,abiVersion:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{consensusProtocolVersion:r}=this.getNodeInfo(),a=je[r];if(!a)throw new Error("Not supported consensus protocol version");const o=a[e];if(!o)throw new Error("Not supported tx type");if(n=n||o.abiVersion[0],t=t||o.vmVersion[0],!o.vmVersion.includes(t))throw new Error(`VM VERSION ${t} do not support by this node. Supported: [${o.vmVersion}]`);if(!o.abiVersion.includes(n))throw new Error(`ABI VERSION ${n} do not support by this node. Supported: [${o.abiVersion}]`);return{vmVersion:t,abiVersion:n}}}}),Da=$a,Ua=new WeakMap,Ha=Ea.compose({init(e){let{keypair:t,gaId:n}=e;if(this.isGa=!!n,n){if(!mn(n))throw new Error("Invalid GA address");return void Ua.set(this,{publicKey:n})}if(!t||"object"!=typeof t)throw new Error("KeyPair must be an object");if(!t.secretKey||!t.publicKey)throw new Error('KeyPair must must have "secretKey", "publicKey" properties');if("string"!=typeof t.publicKey||-1===t.publicKey.indexOf("ak_"))throw new Error('Public Key must be a base58c string with "ak_" prefix');if(!Buffer.isBuffer(t.secretKey)&&"string"==typeof t.secretKey&&!I(t.secretKey))throw new Error("Secret key must be hex string or Buffer");const r=Buffer.from(Xt(t.publicKey,"ak"));if(!Rn(Buffer.from(t.secretKey,"hex"),r))throw new Error("Invalid Key Pair");Ua.set(this,{secretKey:Buffer.isBuffer(t.secretKey)?t.secretKey:Buffer.from(t.secretKey,"hex"),publicKey:t.publicKey})},props:{isGa:!1},methods:{sign(e){if(this.isGa)throw new Error("You are trying to sign data using GA account without keypair");return Promise.resolve(Sn(e,Ua.get(this).secretKey))},address(){return Promise.resolve(Ua.get(this).publicKey)}}}),Ka=Ea.compose(na,{async init(e){let{accounts:t=[],address:n}=e;this.accounts=Object.fromEntries(await Promise.all(t.map((async e=>[await e.address(),e])))),n=n||Object.keys(this.accounts)[0],n&&this.selectAccount(n)},props:{accounts:{}},deepProps:{selectedAddress:null},methods:{async address(){let{onAccount:e=this.selectedAddress}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._resolveAccount(e).address()},async sign(e){let{onAccount:t=this.selectedAddress}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._resolveAccount(t).sign(e)},addresses(){return Object.keys(this.accounts)},async addAccount(e){let{select:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=await e.address();this.accounts[n]=e,t&&this.selectAccount(n)},removeAccount(e){this.accounts[e]?(delete this.accounts[e],this.selectedAddress===e&&(this.selectedAddress=null)):console.warn(`removeAccount: Account for ${e} not available`)},selectAccount(e){if(Xt(e,"ak"),!this.accounts[e])throw new Error(`Account for ${e} not available`);this.selectedAddress=e},_resolveAccount(e){if(null===e)throw new Error("No account or wallet configured");switch(typeof e){case"string":if(Xt(e,"ak"),!this.accounts[e])throw new Error(`Account for ${e} not available`);return this.accounts[e];case"object":return Aa(e)?e:Ha({keypair:e});default:throw new Error(`Unknown account type: ${typeof e} (account: ${e})`)}}}}),Wa=ka.compose({methods:{aensQuery:async function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};on(e);const r=await this.getName(e);return Object.freeze(Object.assign(r,{pointers:r.pointers||[],update:async function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...await t.aensUpdate(e,r,{...n,...a}),...await t.aensQuery(e)}},transfer:async function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...await t.aensTransfer(e,r,{...n,...a}),...await t.aensQuery(e)}},revoke:async function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.aensRevoke(e,{...n,...r})},extendTtl:async function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Z,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r||"number"!=typeof r||r>Z)throw new Error("Ttl must be an number and less then 180000 blocks");return{...await t.aensUpdate(e,{},{...n,...a,nameTtl:r,extendPointers:!0}),...await t.aensQuery(e)}}}))},aensPreclaim:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};on(e);const n={...this.Ae.defaults,...t},r=wn(),a=await this.height(),o=zt(e,r),s=await this.namePreclaimTx({...n,accountId:await this.address(n),commitmentId:o}),i=await this.send(s,n);return Object.freeze({...i,height:a,claim:t=>this.aensClaim(e,r,{...t,onAccount:n.onAccount}),salt:r,commitmentId:o})},aensClaim:async function(e,t,n){on(e);const r={...this.Ae.defaults,...n},a=ln(e);if(r.nameFee!==this.Ae.defaults.nameFee&&a.gt(r.nameFee))throw new Error(`the provided fee ${r.nameFee} is not enough to execute the claim, required: ${a}`);r.nameFee=r.nameFee!==this.Ae.defaults.nameFee?r.nameFee:a;const o=await this.nameClaimTx({...r,accountId:await this.address(r),nameSalt:t,name:Jt(e,"nm")}),s=await this.send(o,r);if(!hn(e)){const t=r.waitMined?await this.aensQuery(e,r):{};return Object.assign(s,t)}return{...s,nameFee:r.nameFee}},aensUpdate:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};on(e);const r={...this.Ae.defaults,...n},a={...n.extendPointers&&Object.fromEntries((await this.getName(e)).pointers.map((e=>{let{key:t,id:n}=e;return[t,n]}))),...t},o=await this.nameUpdateTx({...r,nameId:Yt(e),accountId:await this.address(r),pointers:Object.entries(a).map((e=>{let[t,n]=e;return{key:t,id:n}}))});return this.send(o,r)},aensTransfer:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};on(e);const r={...this.Ae.defaults,...n},a=await this.nameTransferTx({...r,nameId:Yt(e),accountId:await this.address(r),recipientId:t});return this.send(a,r)},aensRevoke:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};on(e);const n={...this.Ae.defaults,...t},r=await this.nameRevokeTx({...n,nameId:Yt(e),accountId:await this.address(n)});return this.send(r,n)},aensBid:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:re,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.aensClaim(e,0,{...n,nameFee:t,vsn:2})}},deepProps:{Ae:{defaults:{clientTtl:ne,nameTtl:Z,nameFee:re}}}}),La=Wa,Ga=Dr()((0,Ur.required)({methods:{contractEncodeCallDataAPI:Ur.required,compileContractAPI:Ur.required,contractGetACI:Ur.required,setCompilerUrl:Ur.required,getCompilerVersion:Ur.required,contractDecodeCallResultAPI:Ur.required,validateByteCodeAPI:Ur.required,getFateAssembler:Ur.required,getBytecodeCompilerVersion:Ur.required}})),Qa=na.compose(Ga,{async init(e){let{compilerUrl:t,ignoreVersion:n}=e;t&&await this.setCompilerUrl(t,{ignoreVersion:n})},methods:{async setCompilerUrl(e){let{ignoreVersion:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error('"compilerUrl" required');e=e.replace(/\/$/,"");const n=await wa(`${e}/api`,{disableBigNumbers:!0,disableCaseConversion:!0,responseInterceptor:e=>{if(e.ok)return;let t=`${new URL(e.url).pathname.slice(1)} error`;return e.body.reason&&(t+=": "+e.body.reason+(e.body.parameter?` in ${e.body.parameter}`:"")+(e.body.info?` (${JSON.stringify(e.body.info)})`:"")),Array.isArray(e.body)&&(t+=":\n"+e.body.map((e=>`${e.type}:${e.pos.line}:${e.pos.col}: ${e.message}${e.context?`(${e.context})`:""}`)).map((e=>e.trim())).join("\n")),e.statusText=t,e}});if(this.compilerVersion=n.spec.info.version,this._compilerApi=n.api,!t&&!ba(this.compilerVersion,Ya,za))throw new Error(`Unsupported compiler version ${this.compilerVersion}. Supported: >= ${Ya} < ${za}`)},_ensureCompilerReady(){if(!this._compilerApi)throw new Error("Compiler is not ready")},_prepareCompilerOptions(){let{filesystem:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{file_system:e}},getCompilerVersion(){return this._ensureCompilerReady(),Promise.resolve(this.compilerVersion)},async contractEncodeCallDataAPI(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0;this._ensureCompilerReady();const{calldata:a}=await this._compilerApi.encodeCalldata({source:e,function:t,arguments:n,options:this._prepareCompilerOptions(r)});return a},async compileContractAPI(e,t){this._ensureCompilerReady();const{bytecode:n}=await this._compilerApi.compileContract({code:e,options:this._prepareCompilerOptions(t)});return n},contractGetACI(e,t){return this._ensureCompilerReady(),this._compilerApi.generateACI({code:e,options:this._prepareCompilerOptions(t)})},contractDecodeCallDataByCodeAPI(e,t){return this._ensureCompilerReady(),this._compilerApi.decodeCalldataBytecode({bytecode:e,calldata:t})},contractDecodeCallDataBySourceAPI(e,t,n,r){return this._ensureCompilerReady(),this._compilerApi.decodeCalldataSource({function:t,source:e,calldata:n,options:this._prepareCompilerOptions(r)})},contractDecodeCallResultAPI(e,t,n,r,a){return this._ensureCompilerReady(),this._compilerApi.decodeCallResult({function:t,source:e,"call-result":r,"call-value":n,options:this._prepareCompilerOptions(a)})},async validateByteCodeAPI(e,t,n){this._ensureCompilerReady();const r=await this._compilerApi.validateByteCode({bytecode:e,source:t,options:this._prepareCompilerOptions(n)});return"object"==typeof r||r},getFateAssembler(e,t){return this._ensureCompilerReady(),this._compilerApi.getFateAssemblerCode({bytecode:e,options:this._prepareCompilerOptions(t)})},getBytecodeCompilerVersion(e,t){return this._ensureCompilerReady(),this._compilerApi.getCompilerVersion({bytecode:e,options:this._prepareCompilerOptions(t)})}},props:{compilerVersion:null}}),Ya="6.0.0",za="7.0.0";var Xa=T(2478),Ja=T.n(Xa),Za=T(2892),eo=T.n(Za),to=T(5206),no=T.n(to),ro=T(590);function ao(e,t,n){const r=e.functions.find((e=>e.name===t));if(!r&&"init"!==t)throw new Error(`Function ${t} doesn't exist in contract`);return{...r,bindings:[{state:e.state,type_defs:e.type_defs,name:e.name},...n.map(no()(["state","type_defs","name"]))],event:e.event?e.event.variant:[]}}const oo=ka.compose(Ga,{methods:{getContractInstance:async function(){var e=this;let{source:t,bytecode:n,aci:r,contractAddress:a,filesystem:o={},validateBytecode:s,...i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(r=r||t&&await this.contractGetACI(t,{filesystem:o}),!r)throw new Error("Either ACI or source code is required");if(a=a&&await this.resolveName(a,"contract_pubkey",{resolveByNode:!0}),!a&&!t&&!n)throw new Error("Can't create instance by ACI without address");if(a){const e=await this.getContract(a).catch((()=>null));if(!e)throw new Error(`Contract with address ${a} not found on-chain`);if(!e.active)throw new Error(`Contract with address ${a} not active`)}const c={interface:eo()(null,Ja()("interface",r)),aci:eo()(null,Lr()(["encoded_aci","contract"],r)),calldata:new ro.Encoder([r.encoded_aci,...r.external_encoded_aci]),externalAci:(r.external_encoded_aci??[]).map((e=>e.contract||e.namespace)),source:t,bytecode:n,deployInfo:{address:a},options:{...this.Ae.defaults,callStatic:!1,filesystem:o,...i},compilerVersion:this.compilerVersion};if(s){if(!a)throw new Error("Can't validate bytecode without contract address");const e=(await this.getContractByteCode(a)).bytecode;if(!(t&&await this.validateByteCodeAPI(e,t,c.options).catch((()=>!1))||n===e))throw new Error(`Contract ${t?"source":"bytecode"} do not correspond to the bytecode deployed on the chain`)}c.compile=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(c.bytecode)throw new Error("Contract already compiled");if(!c.source)throw new Error("Can't compile without source code");const{bytecode:n}=await e.contractCompile(c.source,{...c.options,...t});return c.bytecode=n,c.bytecode};const l=async(e,t)=>{const n=await this.send(e,t),r={hash:n.hash,tx:Va({tx:n.rawTx}),txData:n,rawTx:n.rawTx};if(!1===t.waitMined)return r;const a=await this.getTxInfo(n.hash);return await d(a),{...r,result:a}},d=e=>{let t,{returnType:n,returnValue:r}=e;switch(n){case"ok":return;case"revert":t=c.calldata.decodeFateString(r);break;case"error":t=Xt(r).toString();break;default:throw new Error(`Unknown returnType: ${n}`)}throw new Error("Invocation failed"+(t?`: "${t}"`:""))};return c.deploy=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;const r={...c.options,...n,deposit:G};if(c.bytecode||await c.compile(r),r.callStatic)return c.call("init",t,r);if(c.deployInfo.address)throw new Error("Contract already deployed");const a=await e.address(r),{tx:o,contractId:s}=await e.contractCreateTx({...r,callData:c.calldata.encode(c.aci.name,"init",t),code:c.bytecode,ownerId:a}),{hash:i,rawTx:d,result:u,txData:h}=await l(o,r);return c.deployInfo=Object.freeze({result:u,owner:a,transaction:i,rawTx:d,txData:h,address:s,call:(t,n,a)=>e.contractCall(c.source,s,t,n,{...r,...a}),callStatic:(t,n,a)=>e.contractCallStatic(c.source,s,t,n,{...r,...a}),createdAt:new Date}),c.deployInfo},c.call=async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a={...c.options,...r},o=ao(c.aci,t,c.externalAci),s=c.deployInfo.address;if(!t)throw new Error("Function name is required");if("init"===t&&!a.callStatic)throw new Error('"init" can be called only via dryRun');if(!s&&"init"!==t)throw new Error("You need to deploy contract before calling!");if(b()(a.amount).gt(0)&&Object.prototype.hasOwnProperty.call(o,"payable")&&!o.payable)throw new Error(`You try to pay "${a.amount}" to function "${t}" which is not payable. Only payable function can accept tokens`);const i=await e.address(a).catch((e=>{if(a.callStatic)return J.pub;throw e})),u=c.calldata.encode(c.aci.name,t,n);let h;if(a.callStatic){"number"==typeof a.top&&(a.top=(await e.getKeyBlock(a.top)).hash);const n={...a,callData:u,nonce:a.top&&(await e.getAccount(i,{hash:a.top})).nonce+1},r="init"===t?(await e.contractCreateTx({...n,code:c.bytecode,ownerId:i})).tx:await e.contractCallTx({...n,callerId:i,contractId:s}),{callObj:o,...l}=await e.txDryRun(r,i,a);await d(o),h={...l,tx:Va({tx:r}),result:o}}else{const t=await e.contractCallTx({...a,callerId:i,contractId:s,callData:u});h=await l(t,a)}return(a.waitMined||a.callStatic)&&(h.decodedResult=o.returns&&"unit"!==o.returns&&"init"!==t&&c.calldata.decode(c.aci.name,t,h.result.returnValue),h.decodedEvents=c.decodeEvents(h.result.log)),h},c.decodeEvents=e=>{const t=(c.aci.event?c.aci.event.variant:[]).map((e=>{const t=Object.keys(e)[0];return{name:t,types:e[t]}}));return Ar(e,t)},c.methods=Object.fromEntries(c.aci.functions.map((e=>{let{name:t,arguments:n,stateful:r}=e;const a=e=>function(){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];const s=a.length===n.length+1?a.pop():{};if("object"!=typeof s)throw new Error(`Options should be an object: ${s}`);return"init"===t?c.deploy(a,{callStatic:e,...s}):c.call(t,a,{callStatic:e,...s})};return[t,Object.assign(a("init"!==t&&!r),{get:a(!0),send:a(!1),decodeEvents:e=>c.decodeEvents(e)})]}))),c},contractCompile:async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={...this.Ae.defaults,...t},r=await this.compileContractAPI(e,t);return Object.freeze({encodeCall:(t,r)=>this.contractEncodeCallDataAPI(e,t,r,n),deploy:(t,a)=>this.contractDeploy(r,e,t,{...n,...a}),deployStatic:(t,a)=>this.contractCallStatic(e,null,"init",t,{...n,...a,bytecode:r}),bytecode:r})},contractCallStatic:async function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4?arguments[4]:void 0;const o=await this.getContractInstance({...a,source:e,contractAddress:t});return o.call(n,r,{...a,callStatic:!0})},contractDeploy:async function(e,t,n,r){const a=await this.getContractInstance({...r,source:t});return a.bytecode=e,a.deploy(n,r)},contractCall:async function(e,t,n,r,a){return(await this.getContractInstance({...a,source:e,contractAddress:t})).call(n,r,a)},delegateSignatureCommon:async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=await this.sign(Buffer.concat([Buffer.from(this.getNetworkId(t)),...Object.prototype.hasOwnProperty.call(t,"onAccount")?[Xt(await this.address(t))]:[],...e.map((e=>Xt(e)))]),t);return Buffer.from(n).toString("hex")},createAensDelegationSignature:async function(e){let{contractId:t,name:n}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.delegateSignatureCommon([...n?[Yt(n)]:[],t],r)},createOracleDelegationSignature:async function(e){let{contractId:t,queryId:n}=e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.delegateSignatureCommon([...n?[n]:[],t],r)}},deepProps:{Ae:{defaults:{deposit:G,gasPrice:z,amount:Q,gas:Y}}}}),so=oo.compose(ja).compose(Qa),io=so,co=e=>async(t,n)=>{if("object"!=typeof t)throw new Error("AuthData must be an object");if(t.gas&&b()(t.gas).gt(X))throw new Error(`the maximum gas value for ga authFun is ${X}, got ${t.gas}`);const r=t.gas||X;if(t.callData){if("cb"!==t.callData.split("_")[0])throw new Error('Auth data must be a string with "cb" prefix.');return{authCallData:t.callData,gas:r}}if(!t.source||!t.args)throw new Error("Auth data must contain source code and arguments.");return{authCallData:await e.contractEncodeCallDataAPI(t.source,n,t.args),gas:r}},lo=oo.compose({methods:{createGeneralizeAccount:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a={...this.Ae.defaults,...r},o=await this.address(a);if(await this.isGA(o))throw new Error(`Account ${o} is already GA`);const{tx:s,contractId:i}=await this.gaAttachTx({...a,ownerId:o,code:(await this.contractCompile(t)).bytecode,callData:await this.contractEncodeCallDataAPI(t,"init",n),authFun:F(e)}),{hash:c,rawTx:l}=await this.send(s,a);return Object.freeze({owner:o,transaction:c,rawTx:l,gaContractId:i})},createMetaTx:async function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!t)throw new Error("authData is required");const{authCallData:a,gas:o}=await co(this)(t,n),s={...this.Ae.defaults,...r},{abiVersion:i}=await this.getVmVersion(ke.contractCall),c=ho(xr(e)),l={...s,tx:{...c,tx:c.txObject},gaId:await this.address(s),abiVersion:i,authData:a,gas:o,vsn:2},{fee:d}=await this.prepareTxParams(ke.gaMeta,l),{rlpEncoded:u}=vr({...l,fee:`${d}`},ke.gaMeta,{vsn:2});return ho(u).tx},isGA:async function(e){const{contractId:t}=await this.getAccount(e);return!!t}}}),uo=lo,ho=e=>vr({encodedTx:e,signatures:[]},ke.signed),po=e=>Object.fromEntries(e.map((e=>[e,e]))),fo=1,mo=po(["to_waellet","to_aepp"]),go=po(["window","extension"]),yo=po(["readyToConnect","closeConnection","updateNetwork","updateAddress"]),wo=po(["connect","subscribeAddress","sign","address","signMessage"]),bo=po(["current","connected"]),vo=po(["subscribe","unsubscribe"]),xo={wallet:{[yo.readyToConnect]:"connection.announcePresence",[yo.updateAddress]:"address.update"},aepp:{[wo.address]:"address.get",[wo.connect]:"connection.open",[wo.sign]:"transaction.sign",[wo.signMessage]:"message.sign",[wo.subscribeAddress]:"address.subscribe"},[yo.updateNetwork]:"networkId.update",[yo.closeConnection]:"connection.close"},To={CONNECTED:"CONNECTED",DISCONNECTED:"DISCONNECTED",CONNECTION_REJECTED:"CONNECTION_REJECTED",WAITING_FOR_CONNECTION_APPROVE:"WAITING_FOR_CONNECTION_APPROVE",WAITING_FOR_CONNECTION_REQUEST:"WAITING_FOR_CONNECTION_REQUEST",WAITING_FOR_SUBSCRIPTION:"WAITING_FOR_SUBSCRIPTION"},Co={broadcastFailed:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:3,data:e,message:"Broadcast failed"}},invalidTransaction:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:2,data:e,message:"Invalid transaction"}},rejectedByUser:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:4,data:e,message:"Operation rejected by user"}},connectionDeny:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:9,data:e,message:"Wallet deny your connection request"}},permissionDeny:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:11,data:e,message:`You are not subscribed for account ${e.account}`}},internalError:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:12,data:e,message:e.msg}},notAuthorize:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:10,data:e,message:"You are not connected to the wallet"}},unsupportedProtocol:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:5,data:e,message:"Unsupported Protocol Version"}},unsupportedNetwork:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{code:8,data:e,message:"Unsupported Network"}}},Io=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const{chrome:t,browser:n}=window;if(void 0!==t&&t===Object(t))return t;if(void 0!==n&&n===Object(n))return n;if(!e)throw new Error("Browser is not detected");return{}},Ao=()=>window!==window.parent,Eo=e=>{let t=0;return function(n){let{id:r,method:a,params:o,result:s,error:i}=n,c=arguments.length>1&&void 0!==arguments[1]&&arguments[1];c||(t+=1),r=c?r||null:t;const l=o?{params:o}:s?{result:s}:{error:i};return e.sendMessage({jsonrpc:"2.0",...r?{id:r}:{},method:a,...l}),r}},_o=function(e,t){let{debug:n=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=e[t.method];return r&&"function"==typeof r?r:(n&&console.log(`Unknown message method ${t.method}`),()=>async()=>!0)},ko=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{method:e,params:t}},Oo=function(e,t){let{error:n,result:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{id:e,method:t,...n?{error:n}:{result:r}}},So=e=>(t,n,r)=>e.sendMessage(Oo(t,n,r),!0),No=()=>{},jo=e=>3===["","connected","current"].filter((t=>"object"==typeof(t?e[t]:e))).length,Po=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e.find((e=>e===t))){if("object"!=typeof n.onAccount||!Aa(n.onAccount))throw new Error("Provided onAccount should be an AccountBase");t=n.onAccount}return t},Bo=Dr()({init(e){let{id:t,name:n,networkId:r,icons:a,connection:o,handlers:[s,i]}=e;this.id=t,this.connection=o,this.info={name:n,networkId:r,icons:a},this.callbacks={},this.addressSubscription=[],this.accounts={},this.sendMessage=Eo(this.connection),o.connect(((e,t)=>{if(!e||!e.jsonrpc||"2.0"!==e.jsonrpc||!e.method)throw new Error(`Received invalid message: ${e}`);s(e,t)}),((e,t)=>{this.disconnect(!0),"function"==typeof i&&i(t,this)}))},propertyDescriptors:{currentAccount:{enumerable:!0,configurable:!1,get(){return this.isHasAccounts()?Object.keys(this.accounts.current)[0]:void 0}},addresses:{enumerable:!0,configurable:!1,get(){return this.isHasAccounts()?[...Object.keys(this.accounts.current),...Object.keys(this.accounts.connected)]:[]}},origin:{enumerable:!0,configurable:!1,get(){return this.connection}}},methods:{updateInfo(e){Object.assign(this.info,e)},isHasAccounts(){return"object"==typeof this.accounts&&"object"==typeof this.accounts.connected&&"object"==typeof this.accounts.current},isSubscribed(){return this.addressSubscription.length&&this.isHasAccounts()},hasAccessToAccount(e){return!!e&&this.addresses.find((t=>t===e))},isConnected(){return this.connection.isConnected()&&this.info.status===To.CONNECTED},getCurrentAccount(){let{onAccount:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e||Object.keys(this.accounts.current)[0]},disconnect(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.info.status=To.DISCONNECTED,this.addressSubscription=[],this.accounts={},e||this.connection.disconnect()},setAccounts(e){let{forceNotification:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!jo(e))throw new Error("Invalid accounts object. Should be object like: `{ connected: {}, selected: {} }`");this.accounts=e,t||this.sendMessage(ko(xo.wallet.updateAddress,this.accounts),!0)},updateSubscription(e,t){return e!==vo.subscribe||this.addressSubscription.includes(t)||this.addressSubscription.push(t),e===vo.unsubscribe&&this.addressSubscription.includes(t)&&(this.addressSubscription=this.addressSubscription.filter((e=>e!==t))),this.addressSubscription},request(e,t){const n=this.sendMessage(ko(e,t));if(Object.prototype.hasOwnProperty.call(this.callbacks,n))throw new Error("Callback Already exist");return new Promise(((e,t)=>{this.callbacks[n]={resolve:e,reject:t}}))},processResponse(e,t){let{id:n,error:r,result:a}=e;if(!this.callbacks[n])throw new Error(`Can't find callback for this messageId ${n}`);a?this.callbacks[n].resolve(..."function"==typeof t?t({id:n,result:a}):[a]):this.callbacks[n].reject(r),delete this.callbacks[n]}}}),Mo={[xo.wallet.updateAddress]:e=>t=>{let{params:n}=t;e.rpcClient.accounts=n,e.onAddressChange(n)},[xo.updateNetwork]:e=>t=>{e.rpcClient.info.networkId=t.params.networkId,e.onNetworkChange(t.params)},[xo.closeConnection]:e=>t=>{e.disconnectWallet(),e.onDisconnect(t.params)}},Ro={[xo.aepp.address]:e=>t=>e.rpcClient.processResponse(t),[xo.aepp.connect]:e=>t=>{t.result&&(e.rpcClient.info.status=To.CONNECTED),e.rpcClient.processResponse(t)},[xo.aepp.subscribeAddress]:e=>t=>{t.result&&(t.result.address&&(e.rpcClient.accounts=t.result.address),t.result.subscription&&(e.rpcClient.addressSubscription=t.result.subscription)),e.rpcClient.processResponse(t,(e=>{let{id:t,result:n}=e;return[n]}))},[xo.aepp.sign]:e=>t=>{e.rpcClient.processResponse(t,(e=>{let{id:t,result:n}=e;return[n.signedTransaction||n.transactionHash]}))},[xo.aepp.signMessage]:e=>t=>{e.rpcClient.processResponse(t,(e=>{let{id:t,result:n}=e;return[n.signature]}))}},qo={},Vo=ka.compose({async init(e){let{name:t,onAddressChange:n=No,onDisconnect:r=No,onNetworkChange:a=No,connection:o,forceValidation:s=!1,debug:i=!1}=e;this.connection=o,this.name=t,this.debug=i,o&&await this.connectToWallet(o),this.onDisconnect=r,this.onAddressChange=n,this.onNetworkChange=a,["onDisconnect","onAddressChange","onNetworkChange"].forEach((e=>{if(!s&&"function"!=typeof this[e])throw new Error(`Call-back for ${e} must be an function!`)}))},deepProps:{Ae:{defaults:{walletBroadcast:!0}}},methods:{sign(){},addresses(){if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");return[this.rpcClient.currentAccount,...Object.keys(this.rpcClient.accounts.connected)]},async connectToWallet(e){if(this.rpcClient&&this.rpcClient.isConnected())throw new Error("You are already connected to wallet "+this.rpcClient);var t;return this.rpcClient=Bo({connection:e,networkId:this.getNetworkId({force:!0}),...e.connectionInfo,id:(0,qn.v4)(),handlers:[(t=this,async e=>e.id?Object.prototype.hasOwnProperty.call(t.rpcClient.callbacks,e.id)?_o(Ro,e,{debug:t.debug})(t)(e):_o(qo,e,{debug:t.debug})(t)(e):_o(Mo,e,{debug:t.debug})(t)(e)),this.onDisconnect]}),this.sendConnectRequest()},async disconnectWallet(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");e&&this.rpcClient.sendMessage(ko(xo.closeConnection,{reason:"bye"}),!0),this.rpcClient.disconnect(),this.rpcClient=null},async address(){let{onAccount:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");const t=this.rpcClient.currentAccount;if(!t)throw new Error("You are not subscribed for an account.");if(e&&!this.rpcClient.hasAccessToAccount(e))throw new Error(`You do not have access to account ${e}`);return e||t},async askAddresses(){if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");return this.rpcClient.request(xo.aepp.address)},async subscribeAddress(e,t){if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");return this.rpcClient.request(xo.aepp.subscribeAddress,{type:e,value:t})},async signTransaction(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");if(t.onAccount&&!this.rpcClient.hasAccessToAccount(t.onAccount))throw new Error(`You do not have access to account ${t.onAccount}`);return this.rpcClient.request(xo.aepp.sign,{...t,tx:e,returnSigned:!0,networkId:this.getNetworkId()})},async signMessage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");if(t.onAccount&&!this.rpcClient.hasAccessToAccount(t.onAccount))throw new Error(`You do not have access to account ${t.onAccount}`);return this.rpcClient.request(xo.aepp.signMessage,{...t,message:e})},async sendConnectRequest(){return this.rpcClient.request(xo.aepp.connect,{name:this.name,version:fo,networkId:this.getNetworkId({force:!0})})},async send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.rpcClient||!this.rpcClient.isConnected())throw new Error("You are not connected to Wallet");if(!this.rpcClient.currentAccount)throw new Error("You are not subscribed for an account.");if(t.onAccount&&!this.rpcClient.hasAccessToAccount(t.onAccount))throw new Error(`You do not have access to account ${t.onAccount}`);const n={...this.Ae.defaults,...t};if(!n.walletBroadcast){const t=await this.signTransaction(e,{onAccount:n.onAccount});return this.sendTransaction(t,n)}return this.rpcClient.request(xo.aepp.sign,{onAccount:n.onAccount,tx:e,returnSigned:!1,networkId:this.getNetworkId()})}}}),Fo=ka.compose({methods:{registerOracle:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r={...this.Ae.defaults,...n},a=await this.address(r),o=await this.oracleRegisterTx({...r,accountId:a,queryFormat:e,responseFormat:t});return{...await this.send(o,r),...await this.getOracleObject(`ok_${a.slice(3)}`)}},respondToQuery:async function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a={...this.Ae.defaults,...r},o=await this.address(a),s=await this.oracleRespondTx({...a,oracleId:e,queryId:t,callerId:o,response:n});return{...await this.send(s,a),...await this.getOracleObject(e)}},extendOracleTtl:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r={...this.Ae.defaults,...n},a=await this.address(r),o=await this.oracleExtendTx({...r,oracleId:e,callerId:a,oracleTtl:t});return{...await this.send(o,r),...await this.getOracleObject(e)}},postQueryToOracle:async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n.queryFee||(await this.api.getOracleByPubkey(e)).queryFee,a={...this.Ae.defaults,queryFee:r,...n},o=await this.address(a),s=await this.oraclePostQueryTx({...a,oracleId:e,senderId:o,query:t}),i=Gt(o,xr(s).tx.nonce,e);return{...await this.send(s,a),...await this.getQueryObject(e,i)}},pollForQueryResponse:async function(e,t){let{attempts:n=20,interval:r=5e3}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};for(let a=0;a<n;a++){a&&await ua(r);const{response:n}=await this.api.getOracleQueryByPubkeyAndQueryId(e,t),o=Xt(n,"or");if(o.length)return String(o)}throw new Error(`Giving up after ${(n-1)*r}ms`)},pollForQueries:function(e,t){let{interval:n=5e3}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=new Set,a=async()=>{const n=((await this.api.getOracleQueriesByPubkey(e)).oracleQueries||[]).filter((e=>{let{id:t}=e;return!r.has(t)}));n.forEach((e=>{let{id:t}=e;return r.add(t)})),n.length&&t(n)};a();const o=setInterval(a,n);return()=>clearInterval(o)},getOracleObject:async function(e){const t=await this.api.getOracleByPubkey(e),{oracleQueries:n}=await this.api.getOracleQueriesByPubkey(e);return{...t,queries:n,pollQueries:this.pollForQueries.bind(this,e),postQuery:this.postQueryToOracle.bind(this,e),respondToQuery:this.respondToQuery.bind(this,e),extendOracle:this.extendOracleTtl.bind(this,e),getQuery:this.getQueryObject.bind(this,e)}},getQueryObject:async function(e,t){const n=await this.api.getOracleQueryByPubkeyAndQueryId(e,t);return{...n,decodedQuery:xn(n.query.slice(3)).toString(),decodedResponse:xn(n.response.slice(3)).toString(),respond:this.respondToQuery.bind(this,e,t),pollForResponse:this.pollForQueryResponse.bind(this,e,t),decode:e=>xn(e.slice(3))}}},deepProps:{Ae:{defaults:{queryFee:H,oracleTtl:K,queryTtl:W,responseTtl:L}}}}),$o=Fo,Do=ka.compose(Da,$o,so,La,Ba,Vo),Uo={[xo.closeConnection]:(e,t)=>{let{client:n}=t;return async t=>{n.disconnect(!0),e.onDisconnect(t.params,n)}}},Ho={},Ko={[xo.aepp.connect](e,t,n,r){let{name:a,networkId:o,version:s,icons:i}=r;return s!==fo?{error:Co.unsupportedProtocol()}:(n.updateInfo({status:To.WAITING_FOR_CONNECTION_APPROVE,name:a,networkId:o,icons:i,version:s}),e("onConnection",{name:a,networkId:o,version:s},(()=>(n.updateInfo({status:To.CONNECTED}),{result:t.getWalletInfo()})),(e=>(n.updateInfo({status:To.CONNECTION_REJECTED}),{error:Co.connectionDeny(e)}))))},[xo.aepp.subscribeAddress](e,t,n,r){let{type:a,value:o}=r;return n.isConnected()?e("onSubscription",{type:a,value:o},(async function(){let{accounts:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{const r=e||t.getAccounts();if(!jo(r))throw new Error("Invalid provided accounts object");const s=n.updateSubscription(a,o);return n.setAccounts(r,{forceNotification:!0}),{result:{subscription:s,address:r}}}catch(e){return t.debug&&console.error(e),{error:Co.internalError({msg:e.message})}}}),(e=>({error:Co.rejectedByUser(e)}))):{error:Co.notAuthorize()}},[xo.aepp.address]:(e,t,n)=>n.isConnected()&&n.isSubscribed()?e("onAskAccounts",{},(function(){let{accounts:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{result:e||[...Object.keys(n.accounts.current),...Object.keys(n.accounts.connected)]}}),(e=>({error:Co.rejectedByUser(e)}))):{error:Co.notAuthorize()},[xo.aepp.sign](e,t,n,r){const{tx:a,onAccount:o,networkId:s,returnSigned:i=!1}=r,c=o||n.currentAccount;return s&&n.updateInfo({networkId:s}),n.isConnected()?n.hasAccessToAccount(c)?s&&s===t.getNetworkId()?e("onSign",{tx:a,returnSigned:i,onAccount:c,txObject:Va.fromString(a)},(async function(e){let n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{n=Po(t.addresses(),c,r)}catch(e){return t.debug&&console.error(e),{error:Co.internalError({msg:e.message})}}try{const r=e||a;return{result:i?{signedTransaction:await t.signTransaction(r,{onAccount:n})}:{transactionHash:await t.send(r,{onAccount:n,verify:!1})}}}catch(n){if(!i){const r=await Na(e||a,t.selectedNode.instance);return r.length?{error:Co.invalidTransaction(r)}:{error:Co.broadcastFailed(n.message)}}throw n}}),(e=>({error:Co.rejectedByUser(e)}))):{error:Co.unsupportedNetwork()}:{error:Co.permissionDeny({account:c})}:{error:Co.notAuthorize()}},[xo.aepp.signMessage](e,t,n,r){let{message:a,onAccount:o}=r;if(!n.isConnected())return{error:Co.notAuthorize()};const s=o||n.currentAccount;return n.hasAccessToAccount(s)?e("onMessageSign",{message:a,onAccount:s},(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{const n=Po(t.addresses(),s,e);return{result:{signature:await t.signMessage(a,{onAccount:n,returnHex:!0})}}}catch(e){return t.debug&&console.error(e),{error:Co.internalError({msg:e.message})}}}),(e=>({error:Co.rejectedByUser(e)}))):{error:Co.permissionDeny({account:s})}}},Wo=(e,t)=>async(n,r)=>{const a=e.rpcClients[t];if(!n.id)return _o(Uo,n,{debug:e.debug})(e,{client:a})(n,r);if(Object.prototype.hasOwnProperty.call(a.callbacks,n.id))return _o(Ho,n,{debug:e.debug})(e,{client:a})(n,r);{const{id:t,method:o}=n,s=(n,s,i,c)=>()=>new Promise((l=>{e[n](a,{id:t,method:o,params:s,accept:function(){return l(i(...arguments))},deny:function(){return l(c(...arguments))}},r)})),i=_o(Ko,n,{debug:e.debug})(s,e,a,n.params),c="function"==typeof i?await i():i;So(a)(t,o,c)}},Lo=ka.compose(Ka,{init(){var e=this;let{name:t,onConnection:n,onSubscription:r,onSign:a,onDisconnect:o,onAskAccounts:s,onMessageSign:i,forceValidation:c=!1,debug:l=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.debug=l,this.onConnection=n,this.onSubscription=r,this.onSign=a,this.onDisconnect=o,this.onAskAccounts=s,this.onMessageSign=i,this.rpcClients={},["onConnection","onSubscription","onSign","onDisconnect","onMessageSign"].forEach((e=>{if(!c&&"function"!=typeof this[e])throw new Error(`Call-back for ${e} must be an function!`)})),this.name=t,this.id=(0,qn.v4)();const d=this.selectAccount.bind(this),u=this.addAccount.bind(this),h=this.selectNode.bind(this);this.selectAccount=function(t){let{condition:n=(()=>!0)}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};d(t),Object.values(e.rpcClients).filter((e=>e.isConnected()&&e.isSubscribed()&&e.hasAccessToAccount(t)&&n(e))).forEach((e=>e.setAccounts({current:{[t]:{}},connected:{...e.accounts.current,...Object.entries(e.accounts.connected).filter((e=>{let[n,r]=e;return n!==t})).reduce(((e,t)=>{let[n,r]=t;return{...e,[n]:r}}),{})}})))},this.addAccount=async function(t){let{select:n,meta:r={},condition:a=(()=>!0)}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};await u(t,{select:n});const o=await t.address();Object.values(e.rpcClients).filter((e=>e.isConnected()&&e.isSubscribed()&&a(e))).forEach((e=>e.setAccounts({current:{...n?{[o]:r}:e.accounts.current},connected:{...n?e.accounts.current:{[o]:r},...e.accounts.connected}})))},this.selectNode=e=>{h(e),Object.values(this.rpcClients).filter((e=>e.isConnected())).forEach((e=>e.sendMessage(ko(xo.updateNetwork,{networkId:this.getNetworkId()}),!0)))}},methods:{removeRpcClient(e){let{forceConnectionClose:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.rpcClients[e];if(!n)throw new Error(`RpcClient with id ${e} do not exist`);n.disconnect(t),delete this.rpcClients[e]},addRpcClient(e){const t=(0,qn.v4)();return this.rpcClients[t]=Bo({id:t,info:{status:To.WAITING_FOR_CONNECTION_REQUEST},connection:e,handlers:[Wo(this,t),this.onDisconnect]}),t},shareWalletInfo(e){e({jsonrpc:"2.0",...ko(xo.wallet.readyToConnect,this.getWalletInfo())})},getWalletInfo(){const e=Io(!0).runtime;return{id:e&&e.id?e.id:this.id,name:this.name,networkId:this.getNetworkId(),origin:window.location.origin,type:e&&e.id?go.extension:go.window}},getAccounts(){return{current:this.selectedAddress?{[this.selectedAddress]:{}}:{},connected:this.addresses().filter((e=>e!==this.selectedAddress)).reduce(((e,t)=>({...e,[t]:{}})),{})}}}}),Go=ka.compose(Lo,Da,io,$o,La,uo,Ba);var Qo=T(3752),Yo=T(3205);const zo=new WeakMap,Xo=new WeakMap,Jo=new WeakMap,Zo=new WeakMap,es=new WeakMap,ts=new WeakMap,ns=new WeakMap,rs=new WeakMap,as=new WeakMap,os=new WeakMap,ss=new WeakMap,is=new WeakMap,cs=new WeakMap,ls=new WeakMap,ds=new WeakMap,us=new WeakMap;function hs(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];ts.get(e).emit(...n)}function ps(e,t){if(!t)throw new Error("State Channels FSM entered unknown state");Zo.set(e,t),t.handler.enter&&t.handler.enter(e),ws(e)}function fs(e,t){t!==Xo.get(e)&&(Xo.set(e,t),hs(e,"statusChanged",t))}function ms(e,t){Jo.set(e,t),hs(e,"stateChanged",t)}function gs(e,t){const{debug:n=!1}=zo.get(e);n&&console.log("Send message: ",t),es.get(e).send(da.stringify(t))}function ys(e,t,n){as.set(e,[...as.get(e)||[],{guard:t,action:n}]),ws(e)}async function ws(e){const t=os.get(e),n=as.get(e)||[];if(t||!n.length)return;const r=Zo.get(e),a=n.findIndex((t=>t.guard(e,r)));if(-1===a)return;as.set(e,n.filter(((e,t)=>a!==t))),os.set(e,!0);const o=await Promise.resolve(n[a].action(e,r));os.set(e,!1),ps(e,o)}async function bs(e){const t=ns.get(e);if(rs.get(e)||!t.length)return;const[n,...r]=t;ns.set(e,r||[]),rs.set(e,!0),await async function(e,t){const{handler:n,state:r}=Zo.get(e);ps(e,await Promise.resolve(n(e,t,r)))}(e,n),rs.set(e,!1),bs(e)}function vs(e){clearTimeout(ls.get(e)),clearTimeout(ds.get(e)),ls.set(e,setTimeout((()=>{gs(e,{jsonrpc:"2.0",method:"channels.system",params:{action:"ping"}}),ds.set(e,setTimeout((()=>{Ts(e),hs(e,"error",new Error("Server pong timed out"))}),5e3))}),1e4))}function xs(e,t,n){return new Promise(((r,a)=>{const o=ss.set(e,ss.get(e)+1).get(e);cs.get(e).set(o,(e=>e.result?r(e.result):e.error?a(function(e){const[{message:t}={}]=e.error.data||[];return t?new Error(`${e.error.message}: ${t}`):new Error(e.error.message)}(e)):void 0)),gs(e,{jsonrpc:"2.0",method:t,id:o,params:n})}))}function Ts(e){es.get(e).close(),clearTimeout(ls.get(e)),clearTimeout(ds.get(e))}async function Cs(e,t){let{url:n,...r}=t;zo.set(e,r),Zo.set(e,{handler:r.existingFsmId?ks:_s}),ts.set(e,new Yo.EventEmitter),ss.set(e,0),cs.set(e,new Map);const a=new URL(n);Object.entries(r).filter((e=>{let[t]=e;return!["sign","debug"].includes(t)})).forEach((e=>{let[t,n]=e;return a.searchParams.set(x(t),n)})),a.searchParams.set("protocol","json-rpc"),fs(e,"connecting");const o=new Qo.w3cwebsocket(a.toString());await new Promise(((t,n)=>Object.assign(o,{onerror:n,onopen:()=>{t(),fs(e,"connected"),r.reconnectTx&&(ps(e,{handler:Bs}),setTimeout((async()=>ms(e,(await xs(e,"channels.get.offchain_state",{})).signed_tx)))),vs(e)},onclose:()=>{fs(e,"disconnected"),clearTimeout(ls.get(e)),clearTimeout(ds.get(e))},onmessage:t=>{let{data:n}=t;return function(e,t){const n=da.parse(t),{debug:r=!1}=zo.get(e);if(r&&console.log("Receive message: ",n),n.id){const t=cs.get(e).get(n.id);try{t(n)}finally{cs.get(e).delete(n.id)}}else"channels.message"===n.method?hs(e,"message",n.params.data.message):"channels.system.pong"===n.method?n.params.channel_id!==is.get(e)&&null!=is.get(e)||vs(e):(ns.set(e,[...ns.get(e)||[],n]),bs(e))}(e,n)}}))),es.set(e,o)}function Is(e){return`tx_${bn(e)}`}async function As(e,t){const{signatures:n,encodedTx:r}=xr(e).tx,a=await t(Is(r.rlpEncoded));if("string"==typeof a){const{tx:e,txType:t}=xr(a);return Is(vr({signatures:n.concat(e.signatures),encodedTx:e.encodedTx.rlpEncoded},t).rlpEncoded)}return a}function Es(e,t,n){return n&&n.reject&&n.reject(Object.assign(new Error(`Unexpected message received:\n\n${JSON.stringify(t)}`),{wsMessage:t})),{handler:Bs}}function _s(e,t,n){return"channels.info"===t.method?["channel_accept","funding_created"].includes(t.params.data.event)?(fs(e,{channel_accept:"accepted",funding_created:"halfSigned"}[t.params.data.event]),{handler:Os}):"channel_reestablished"===t.params.data.event?{handler:js}:"fsm_up"===t.params.data.event?(us.set(e,t.params.data.fsm_id),{handler:_s}):{handler:_s}:"channels.error"===t.method?(hs(e,"error",new Error(t.payload.message)),{handler:Zs}):void 0}async function ks(e,t,n){return"channels.info"===t.method&&"fsm_up"===t.params.data.event?(us.set(e,t.params.data.fsm_id),ms(e,(await xs(e,"channels.get.offchain_state",{})).signed_tx),{handler:Bs}):Es(0,t,n)}async function Os(e,t,n){const r={initiator:"initiator_sign",responder:"responder_sign"}[zo.get(e).role];if(t.method===`channels.sign.${r}`){if(t.params.data.tx){const n=await zo.get(e).sign(r,t.params.data.tx);return gs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{tx:n}}),{handler:Ss}}const n=await As(t.params.data.signed_tx,(t=>zo.get(e).sign(r,t)));return gs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{signed_tx:n}}),{handler:Ss}}}function Ss(e,t,n){if("channels.on_chain_tx"===t.method){if("funding_signed"===t.params.data.info&&"initiator"===zo.get(e).role)return{handler:Ns};if("funding_created"===t.params.data.info&&"responder"===zo.get(e).role)return{handler:Ns}}if("channels.info"===t.method&&"funding_signed"===t.params.data.event&&"initiator"===zo.get(e).role)return is.set(e,t.params.channel_id),fs(e,"signed"),{handler:Ss}}function Ns(e,t,n){if("channels.info"===t.method){const e={funding_created:Ns,own_funding_locked:Ns,funding_locked:js}[t.params.data.event];if(e)return{handler:e}}if("channels.on_chain_tx"===t.method)return hs(e,"onChainTx",t.params.data.tx,{info:t.params.data.info,type:t.params.data.type}),{handler:Ns}}function js(e,t,n){if("channels.info"===t.method&&"open"===t.params.data.event)return is.set(e,t.params.channel_id),{handler:Ps}}function Ps(e,t,n){if("channels.update"===t.method)return ms(e,t.params.data.state),{handler:Bs}}async function Bs(e,t,n){switch(t.method){case"channels.info":switch(t.params.data.event){case"update":case"withdraw_created":case"deposit_created":return{handler:qs};case"own_withdraw_locked":case"withdraw_locked":case"own_deposit_locked":case"deposit_locked":case"peer_disconnected":case"channel_reestablished":case"open":return hs(e,t.params.data.event),{handler:Bs};case"fsm_up":return us.set(e,t.params.data.fsm_id),{handler:Bs};case"timeout":case"close_mutual":case"shutdown":return{handler:Bs};case"closing":return fs(e,"closing"),{handler:Bs};case"closed_confirmed":return fs(e,"closed"),{handler:Zs};case"died":return fs(e,"died"),{handler:Zs}}break;case"channels.on_chain_tx":return hs(e,"onChainTx",t.params.data.tx,{info:t.params.data.info,type:t.params.data.type}),{handler:Bs};case"channels.leave":return{handler:Bs};case"channels.update":return ms(e,t.params.data.state),{handler:Bs};case"channels.sign.shutdown_sign_ack":return qs(e,t,n)}}async function Ms(e,t,n){if("channels.sign.update"===t.method){const{sign:r}=n;if(t.params.data.tx)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{tx:await r(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:Rs,state:n};const a=await As(t.params.data.signed_tx,(e=>r(e,{updates:t.params.data.updates})));if("string"==typeof a)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{signed_tx:a}}),{handler:Rs,state:n};if("number"==typeof a)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{error:a}}),{handler:Ms,state:n}}if("channels.error"===t.method)return n.reject(new Error(t.data.message)),{handler:Bs};if(t.error){const{data:e=[]}=t.error;return e.find((e=>1001===e.code))?n.reject(new Error("Insufficient balance")):e.find((e=>1002===e.code))?n.reject(new Error("Amount cannot be negative")):n.reject(new Error(t.error.message)),{handler:Bs}}return"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Bs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Bs}):Es(0,t,n)}function Rs(e,t,n){return"channels.update"===t.method?(ms(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Bs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Bs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Bs}):t.error?(n.reject(new Error(t.error.message)),{handler:Bs}):Es(0,t,n)}async function qs(e,t,n){const[,r]=t.method.match(/^channels\.sign\.([^.]+)$/)||[];if(r){if(t.params.data.tx){const n=await zo.get(e).sign(r,t.params.data.tx,{updates:t.params.data.updates});if(n)return gs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{tx:n}}),{handler:Bs}}else{const a=await As(t.params.data.signed_tx,(n=>zo.get(e).sign(r,n,{updates:t.params.data.updates})));if("string"==typeof a)return gs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{signed_tx:a}}),{handler:Bs};if("number"==typeof a)return gs(e,{jsonrpc:"2.0",method:`channels.${r}`,params:{error:a}}),{handler:Vs,state:n}}return gs(e,{jsonrpc:"2.0",method:"channels.update.new",params:{from:_n().publicKey,to:_n().publicKey,amount:1}}),{handler:Vs,state:n}}return Es(0,t,n)}function Vs(e,t,n){return t.error?{handler:Vs,state:n}:"channels.conflict"===t.method?{handler:Bs}:Es(0,t,n)}async function Fs(e,t,n){if("channels.sign.shutdown_sign"===t.method){if(t.params.data.tx)return gs(e,{jsonrpc:"2.0",method:"channels.shutdown_sign",params:{tx:await n.sign(t.params.data.tx)}}),{handler:$s,state:n};const r=await As(t.params.data.signed_tx,(e=>n.sign(e)));return gs(e,{jsonrpc:"2.0",method:"channels.shutdown_sign",params:{signed_tx:r}}),{handler:$s,state:n}}return Es(0,t,n)}function $s(e,t,n){return"channels.on_chain_tx"===t.method?{handler:Zs,state:n}:Es(0,t,n)}function Ds(e,t,n){return"channels.leave"===t.method?(n.resolve({channelId:t.params.channel_id,signedTx:t.params.data.state}),Ts(e),{handler:Zs}):"channels.error"===t.method?(n.reject(new Error(t.data.message)),{handler:Bs}):Es(0,t,n)}async function Us(e,t,n){if("channels.sign.withdraw_tx"===t.method){const{sign:r}=n;if(t.params.data.tx)return gs(e,{jsonrpc:"2.0",method:"channels.withdraw_tx",params:{tx:await r(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:Hs,state:n};const a=await As(t.params.data.signed_tx,(e=>r(e,{updates:t.params.data.updates})));if("string"==typeof a)return gs(e,{jsonrpc:"2.0",method:"channels.withdraw_tx",params:{signed_tx:a}}),{handler:Hs,state:n};if("number"==typeof a)return gs(e,{jsonrpc:"2.0",method:"channels.withdraw_tx",params:{error:a}}),{handler:Hs,state:n}}return Es(0,t,n)}function Hs(e,t,n){if("channels.on_chain_tx"===t.method)return n.onOnChainTx&&n.onOnChainTx(t.params.data.tx),{handler:Hs,state:n};if("channels.info"===t.method&&["own_withdraw_locked","withdraw_locked"].includes(t.params.data.event)){const e={own_withdraw_locked:n.onOwnWithdrawLocked,withdraw_locked:n.onWithdrawLocked}[t.params.data.event];return e&&e(),{handler:Hs,state:n}}return"channels.update"===t.method?(ms(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Bs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Bs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Bs}):Es(0,t,n)}async function Ks(e,t,n){if("channels.sign.deposit_tx"===t.method){const{sign:r}=n;if(t.params.data.tx)return gs(e,{jsonrpc:"2.0",method:"channels.deposit_tx",params:{tx:await r(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:Ws,state:n};const a=await As(t.params.data.signed_tx,(e=>r(e,{updates:t.params.data.updates})));if("string"==typeof a)return gs(e,{jsonrpc:"2.0",method:"channels.deposit_tx",params:{signed_tx:a}}),{handler:Ws,state:n};if("number"==typeof a)return gs(e,{jsonrpc:"2.0",method:"channels.deposit_tx",params:{error:a}}),{handler:Ws,state:n}}return Es(0,t,n)}function Ws(e,t,n){if("channels.on_chain_tx"===t.method)return n.onOnChainTx&&n.onOnChainTx(t.params.data.tx),{handler:Ws,state:n};if("channels.info"===t.method&&["own_deposit_locked","deposit_locked"].includes(t.params.data.event)){const e={own_deposit_locked:n.onOwnDepositLocked,deposit_locked:n.onDepositLocked}[t.params.data.event];return e&&e(),{handler:Ws,state:n}}return"channels.update"===t.method?(ms(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Bs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Bs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Bs}):Es(0,t,n)}async function Ls(e,t,n){if("channels.sign.update"===t.method){if(t.params.data.tx)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{tx:await n.sign(t.params.data.tx)}}),{handler:Gs,state:n};const r=await As(t.params.data.signed_tx,(e=>n.sign(e)));if("string"==typeof r)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{signed_tx:r}}),{handler:Gs,state:n};if("number"==typeof r)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{error:r}}),{handler:Gs,state:n}}return Es(0,t,n)}function Gs(e,t,n){if("channels.update"===t.method){const{round:r}=xr(t.params.data.state).tx.encodedTx.tx,a=zo.get(e)[{initiator:"initiatorId",responder:"responderId"}[zo.get(e).role]];return ms(e,t.params.data.state),n.resolve({accepted:!0,address:An(a,r),signedTx:t.params.data.state}),{handler:Bs}}return"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Bs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Bs}):Es(0,t,n)}async function Qs(e,t,n){if("channels.sign.update"===t.method){if(t.params.data.tx)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{tx:await n.sign(t.params.data.tx,{updates:t.params.data.updates})}}),{handler:Xs,state:n};const r=await As(t.params.data.signed_tx,(e=>n.sign(e,{updates:t.params.data.updates})));if("string"==typeof r)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{signed_tx:r}}),{handler:Xs,state:n};if("number"==typeof r)return gs(e,{jsonrpc:"2.0",method:"channels.update",params:{error:r}}),{handler:Xs,state:n}}return Es(0,t,n)}async function Ys(e,t,n){if("channels.sign.force_progress_tx"===t.method){const r=await As(t.params.data.signed_tx,(e=>n.sign(e,{updates:t.params.data.updates})));return gs(e,{jsonrpc:"2.0",method:"channels.force_progress_sign",params:{signed_tx:r}}),{handler:zs,state:n}}return Es(0,t,n)}function zs(e,t,n){return"channels.on_chain_tx"===t.method&&(n.onOnChainTx&&n.onOnChainTx(t.params.data),hs(e,"onChainTx",t.params.data.tx,{info:t.params.data.info,type:t.params.data.type}),n.resolve({accepted:!0,tx:t.params.data.tx})),Es(0,t,n)}function Xs(e,t,n){return"channels.update"===t.method?(ms(e,t.params.data.state),n.resolve({accepted:!0,signedTx:t.params.data.state}),{handler:Bs}):"channels.conflict"===t.method?(n.resolve({accepted:!1,errorCode:t.params.data.error_code,errorMessage:t.params.data.error_msg}),{handler:Bs}):"channels.info"===t.method&&"aborted_update"===t.params.data.event?(n.resolve({accepted:!1}),{handler:Bs}):Es(0,t,n)}function Js(e,t,n){return"channels.calls_pruned.reply"===t.method?(n.resolve(),{handler:Bs}):(n.reject(new Error("Unexpected message received")),{handler:Zs})}function Zs(e,t,n){return n?"closing"===t.params.data.event?{handler:Zs,state:n}:"channel_closed"===t.params.data.info?(n.closeTx=t.params.data.tx,{handler:Zs,state:n}):"closed_confirmed"===t.params.data.event?(n.resolve(n.closeTx),{handler:Zs}):{handler:Zs,state:n}:{handler:Zs}}function ei(e){return Object.entries(e).reduce(((e,t)=>{let[n,r]=t;return{...e,[v(n)]:r}}),{})}Bs.enter=e=>{fs(e,"open")};const ti=na.compose({async init(e){Cs(this,e)},methods:{on:function(e,t){ts.get(this).on(e,t)},off:function(e,t){ts.get(this).removeListener(e,t)},status:function(){return Xo.get(this)},state:async function(){return ei(await xs(this,"channels.get.offchain_state",{}))},round:function(){if(!Jo.get(this))return null;const{txType:e,tx:t}=xr(Jo.get(this)).tx.encodedTx;switch(e){case ke.channelCreate:return 1;case ke.channelOffChain:case ke.channelWithdraw:case ke.channelDeposit:return parseInt(t.round,10);default:return null}},id:function(){return is.get(this)},fsmId:function(){return us.get(this)},update:function(e,t,n,r,a){return new Promise(((o,s)=>{ys(this,((e,t)=>t.handler===Bs),((i,c)=>(gs(i,{jsonrpc:"2.0",method:"channels.update.new",params:{from:e,to:t,amount:n,meta:a}}),{handler:Ms,state:{resolve:o,reject:s,sign:r}})))}))},poi:async function(e){let{accounts:t,contracts:n}=e;return(await xs(this,"channels.get.poi",{accounts:t,contracts:n})).poi},balances:async function(e){return Object.fromEntries((await xs(this,"channels.get.balances",{accounts:e})).map((e=>[e.account,e.balance])))},leave:function(){return new Promise(((e,t)=>{ys(this,((e,t)=>t.handler===Bs),((n,r)=>(gs(n,{jsonrpc:"2.0",method:"channels.leave",params:{}}),{handler:Ds,state:{resolve:e,reject:t}})))}))},shutdown:function(e){return new Promise(((t,n)=>{ys(this,((e,t)=>t.handler===Bs),((r,a)=>(gs(r,{jsonrpc:"2.0",method:"channels.shutdown",params:{}}),{handler:Fs,state:{sign:e,resolve:t,reject:n}})))}))},sendMessage:function(e,t){let n=e;"object"==typeof e&&(n=JSON.stringify(e));const r=e=>gs(e,{jsonrpc:"2.0",method:"channels.message",params:{info:n,to:t}});if("connecting"===this.status()){const e=t=>{"connecting"!==t&&(setTimeout((()=>r(this)),500),this.off("statusChanged",e))};this.on("statusChanged",e)}else r(this)},withdraw:function(e,t){let{onOnChainTx:n,onOwnWithdrawLocked:r,onWithdrawLocked:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((o,s)=>{ys(this,((e,t)=>t.handler===Bs),((i,c)=>(gs(i,{jsonrpc:"2.0",method:"channels.withdraw",params:{amount:e}}),{handler:Us,state:{sign:t,resolve:o,reject:s,onOnChainTx:n,onOwnWithdrawLocked:r,onWithdrawLocked:a}})))}))},deposit:function(e,t){let{onOnChainTx:n,onOwnDepositLocked:r,onDepositLocked:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((o,s)=>{ys(this,((e,t)=>t.handler===Bs),((i,c)=>(gs(i,{jsonrpc:"2.0",method:"channels.deposit",params:{amount:e}}),{handler:Ks,state:{sign:t,resolve:o,reject:s,onOnChainTx:n,onOwnDepositLocked:r,onDepositLocked:a}})))}))},createContract:function(e,t){let{code:n,callData:r,deposit:a,vmVersion:o,abiVersion:s}=e;return new Promise(((e,i)=>{ys(this,((e,t)=>t.handler===Bs),((c,l)=>(gs(c,{jsonrpc:"2.0",method:"channels.update.new_contract",params:{code:n,call_data:r,deposit:a,vm_version:o,abi_version:s}}),{handler:Ls,state:{sign:t,resolve:e,reject:i}})))}))},callContract:function(e,t){let{amount:n,callData:r,contract:a,abiVersion:o}=e;return new Promise(((e,s)=>{ys(this,((e,t)=>t.handler===Bs),((i,c)=>(gs(i,{jsonrpc:"2.0",method:"channels.update.call_contract",params:{amount:n,call_data:r,contract_id:a,abi_version:o}}),{handler:Qs,state:{resolve:e,reject:s,sign:t}})))}))},callContractStatic:async function(e){let{amount:t,callData:n,contract:r,abiVersion:a}=e;return ei(await xs(this,"channels.dry_run.call_contract",{amount:t,call_data:n,contract_id:r,abi_version:a}))},getContractCall:async function(e){let{caller:t,contract:n,round:r}=e;return ei(await xs(this,"channels.get.contract_call",{caller_id:t,contract_id:n,round:r}))},getContractState:async function(e){const t=await xs(this,"channels.get.contract",{pubkey:e});return ei({...t,contract:ei(t.contract)})},disconnect:function(){return Ts(this)},cleanContractCalls:function(){return new Promise(((e,t)=>{ys(this,((e,t)=>t.handler===Bs),((n,r)=>(gs(n,{jsonrpc:"2.0",method:"channels.clean_contract_calls",params:{}}),{handler:Js,state:{resolve:e,reject:t}})))}))},forceProgress:function(e,t){let{amount:n,callData:r,contract:a,abiVersion:o,gas:s=1e6,gasPrice:i=1e9,nonce:c}=e,{onOnChainTx:l}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((e,c)=>{ys(this,((e,t)=>t.handler===Bs),((d,u)=>(gs(d,{jsonrpc:"2.0",method:"channels.force_progress",params:{amount:n,call_data:r,contract_id:a,abi_version:o,gas_price:i,gas:s}}),{handler:Ys,state:{resolve:e,reject:c,sign:t,onOnChainTx:l}})))}))}},statics:{reconnect:async function(e,t){const{sign:n}=e;return ti({...e,reconnectTx:await n("reconnect",vr(t,ke.channelReconnect).tx)})}}}),ni=ti,ri=ka.compose(Ka,Ba,Da,La,io,$o,uo),ai=Dr()({init(e){let{pageConnection:t,extConnection:n,allowCrossOrigin:r=!1}=e;if(!window)throw new Error("Window object not found, you can run bridge only in browser");if(!t)throw new Error("pageConnection required");if(!n)throw new Error("extConnection required");this.allowCrossOrigin=r,this.pageConnection=t,this.extConnection=n},methods:{run:function(){const e=this.allowCrossOrigin;this.extConnection.connect((e=>{this.pageConnection.sendMessage(e)})),this.pageConnection.connect(((t,n,r)=>{(e||r===window)&&this.extConnection.sendMessage(t)}))},stop:function(){this.extConnection.disconnect(),this.pageConnection.disconnect()}}}),oi=(0,Ur.required)({methods:{connect:Ur.required,disconnect:Ur.required,sendMessage:Ur.required,isConnected:Ur.required}}),si=()=>{const e="object"==typeof Io(!0).extension,t=window&&window.location&&window.location.protocol.startsWith("http");return e&&t?window:Ao()?window.parent:void 0},ii=Dr()({init(){let{connectionInfo:e={},target:t=si(),self:n=window,origin:r,sendDirection:a,receiveDirection:o=mo.to_aepp,debug:s=!1,forceOrigin:i=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a&&!Object.keys(mo).includes(a))throw new Error(`sendDirection must be one of [${Object.keys(mo)}]`);if(!Object.keys(mo).includes(o))throw new Error(`receiveDirection must be one of [${Object.keys(mo)}]`);this.connectionInfo={id:(0,qn.v4)(),...e};const c=n,l=t;if(this.origin=r,this.debug=s,this.forceOrigin=i,this.sendDirection=a,this.receiveDirection=o,this.subscribeFn=e=>c.addEventListener("message",e,!1),this.unsubscribeFn=e=>c.removeEventListener("message",e,!1),this.postFn=e=>l.postMessage(e,this.origin||"*"),!this.connectionInfo.id)throw new Error("ID required.")},methods:{connect:function(e){const t=this.origin,n=this.receiveDirection,r=this.debug,a=this.forceOrigin;if(this.listener)throw new Error("You already connected");this.listener=(o,s)=>{if(o&&"object"==typeof o.data&&(a||!t||t===o.origin))if(r&&console.log("Receive message: ",o),o.data.type){if(o.data.type!==n)return;e(o.data.data,o.origin,o.source)}else e(o.data,o.origin,o.source)},this.subscribeFn(this.listener)},sendMessage:function(e){const t=this.sendDirection?{type:this.sendDirection,data:e}:e;this.debug&&console.log("Send message: ",t),this.postFn(t)},disconnect:function(){if(!this.listener)throw new Error("You dont have connection. Please connect before");this.unsubscribeFn(this.listener),this.listener=null},isConnected:function(){return this.listener}}},oi),ci=Dr()({init(){let{connection:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!window)throw new Error("Window object not found, you can run wallet detector only in browser");this.connection=e||ii({connectionInfo:{id:"spy"}}),this.wallets={}},methods:{scan(e){const{wallets:t}=this;this.connection.connect(((n,r,a)=>{let{method:o,params:s}=n;if(!o||!s||o!==xo.wallet.readyToConnect||t[s.id])return;const i={...s,async getConnection(){const e="extension"===this.type,t=e?window.origin:this.origin;return ii({connectionInfo:this,sendDirection:e?mo.to_waellet:void 0,receiveDirection:e?mo.to_aepp:void 0,target:a,origin:t})}};t[i.id]=i,e({wallets:t,newWallet:i})})),Object.keys(t).length&&e({wallets:t})},stopScan(){this.connection.disconnect()}}}),li=Dr()({init(e){let{connectionInfo:t={},port:n,debug:r=!1}=e;if(!Io().runtime)throw new Error("Runtime is not accessible in your environment");this.debug=r,this.connectionInfo=t,this.port=n||Io().runtime.connect(t.id||void 0)},methods:{connect:function(e,t){if(this.isConnected())throw new Error("You already connected");this.handler=(t,n)=>{this.debug&&console.log("Receive message: ",t),e(t,n)},this.port.onMessage.addListener(this.handler),this.port.onDisconnect.addListener((()=>{"function"==typeof t&&t({},this),this.port.disconnect()}))},sendMessage:function(e){if(!this.port)throw new Error("You dont have connection. Please connect before");this.debug&&console.log("Send message: ",e),this.port.postMessage(e)},disconnect:function(){try{this.port.disconnect()}catch(e){console.warning("From BrowserRuntimeConnection: ",e)}},isConnected:function(){return"function"==typeof this.port.onMessage.hasListeners?this.port.onMessage.hasListeners():this.port.onMessage.hasListener(this.handler)}}},oi),di=cn})(),C})()}));
2
2
  //# sourceMappingURL=aepp-sdk.js.map