@arkade-os/sdk 0.5.1 → 0.5.3
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.
- package/README.md +9 -5
- package/dist/adapters/expo.cjs +5 -5
- package/dist/adapters/expo.d.cts +2 -2
- package/dist/adapters/expo.d.ts +2 -2
- package/dist/adapters/expo.js +3 -3
- package/dist/{asyncStorageTaskQueue-CdWheMqT.d.ts → asyncStorageTaskQueue-B3U5gQ-i.d.ts} +1 -1
- package/dist/{asyncStorageTaskQueue-DFt5LgW5.d.cts → asyncStorageTaskQueue-C9PkPcW_.d.cts} +1 -1
- package/dist/{chunk-JJ6QKTFZ.cjs → chunk-5WRA66RV.cjs} +10 -10
- package/dist/{chunk-JJ6QKTFZ.cjs.map → chunk-5WRA66RV.cjs.map} +1 -1
- package/dist/{chunk-6MIGYYWB.js → chunk-6FL4N4S2.js} +3 -3
- package/dist/{chunk-6MIGYYWB.js.map → chunk-6FL4N4S2.js.map} +1 -1
- package/dist/{chunk-GW42FS2X.cjs → chunk-BYPBVHVA.cjs} +48 -48
- package/dist/{chunk-GW42FS2X.cjs.map → chunk-BYPBVHVA.cjs.map} +1 -1
- package/dist/{chunk-NKKJEA3Z.js → chunk-HAQAWBYG.js} +739 -392
- package/dist/chunk-HAQAWBYG.js.map +1 -0
- package/dist/{chunk-XLHUGP3G.cjs → chunk-KW7ZEWYS.cjs} +6 -3
- package/dist/chunk-KW7ZEWYS.cjs.map +1 -0
- package/dist/{chunk-QFB55EOZ.js → chunk-OPX2HRWM.js} +6 -3
- package/dist/chunk-OPX2HRWM.js.map +1 -0
- package/dist/{chunk-QKNSMVBW.cjs → chunk-OUTWUYJ4.cjs} +1222 -875
- package/dist/chunk-OUTWUYJ4.cjs.map +1 -0
- package/dist/{chunk-3M22PJVB.js → chunk-P7B4LQ3H.js} +3 -3
- package/dist/{chunk-3M22PJVB.js.map → chunk-P7B4LQ3H.js.map} +1 -1
- package/dist/{chunk-FXVEOEYB.js → chunk-T7C3E2HL.js} +4 -4
- package/dist/{chunk-FXVEOEYB.js.map → chunk-T7C3E2HL.js.map} +1 -1
- package/dist/{chunk-XQRIY5K5.js → chunk-Y4BL3YYX.js} +4 -4
- package/dist/{chunk-XQRIY5K5.js.map → chunk-Y4BL3YYX.js.map} +1 -1
- package/dist/{chunk-HQNQ3CLQ.cjs → chunk-ZMSM3NOH.cjs} +18 -18
- package/dist/{chunk-HQNQ3CLQ.cjs.map → chunk-ZMSM3NOH.cjs.map} +1 -1
- package/dist/{chunk-GQUFPTN7.cjs → chunk-ZPF4I3K2.cjs} +16 -16
- package/dist/{chunk-GQUFPTN7.cjs.map → chunk-ZPF4I3K2.cjs.map} +1 -1
- package/dist/contracts/handlers/index.cjs +9 -9
- package/dist/contracts/handlers/index.d.cts +3 -3
- package/dist/contracts/handlers/index.d.ts +3 -3
- package/dist/contracts/handlers/index.js +2 -2
- package/dist/{delegate-CFCfrReG.d.cts → delegate-ByfKszb6.d.cts} +1 -1
- package/dist/{delegate-BSbGQabI.d.ts → delegate-Cd28gxpM.d.ts} +1 -1
- package/dist/{index-CzUVvIxA.d.ts → index-B6X2E7W_.d.ts} +2 -2
- package/dist/{index-B3fRWO5i.d.cts → index-BURzbRup.d.cts} +38 -16
- package/dist/{index-B3fRWO5i.d.ts → index-BURzbRup.d.ts} +38 -16
- package/dist/{index-Fpf4mQZr.d.cts → index-DgH_0j14.d.cts} +2 -2
- package/dist/index.cjs +313 -313
- package/dist/index.d.cts +107 -27
- package/dist/index.d.ts +107 -27
- package/dist/index.js +4 -4
- package/dist/repositories/realm/index.cjs +35 -35
- package/dist/repositories/realm/index.d.cts +2 -2
- package/dist/repositories/realm/index.d.ts +2 -2
- package/dist/repositories/realm/index.js +5 -5
- package/dist/repositories/sqlite/index.cjs +33 -33
- package/dist/repositories/sqlite/index.d.cts +2 -2
- package/dist/repositories/sqlite/index.d.ts +2 -2
- package/dist/repositories/sqlite/index.js +5 -5
- package/dist/{taskRunner-CdfoCMaw.d.ts → taskRunner-BaNCSxqK.d.ts} +1 -1
- package/dist/{taskRunner-Dk6oDAtd.d.cts → taskRunner-i56-drQV.d.cts} +1 -1
- package/dist/wallet/expo/background.cjs +14 -14
- package/dist/wallet/expo/background.d.cts +3 -3
- package/dist/wallet/expo/background.d.ts +3 -3
- package/dist/wallet/expo/background.js +6 -6
- package/dist/wallet/expo/index.cjs +18 -15
- package/dist/wallet/expo/index.cjs.map +1 -1
- package/dist/wallet/expo/index.d.cts +5 -4
- package/dist/wallet/expo/index.d.ts +5 -4
- package/dist/wallet/expo/index.js +8 -5
- package/dist/wallet/expo/index.js.map +1 -1
- package/dist/{wallet-D9dvXu-K.d.cts → wallet-BjQugVUt.d.cts} +11 -6
- package/dist/{wallet-BQHNgc_v.d.ts → wallet-BnmhohgZ.d.ts} +11 -6
- package/dist/worker/expo/index.cjs +9 -9
- package/dist/worker/expo/index.d.cts +4 -4
- package/dist/worker/expo/index.d.ts +4 -4
- package/dist/worker/expo/index.js +5 -5
- package/package.json +1 -1
- package/dist/chunk-NKKJEA3Z.js.map +0 -1
- package/dist/chunk-QFB55EOZ.js.map +0 -1
- package/dist/chunk-QKNSMVBW.cjs.map +0 -1
- package/dist/chunk-XLHUGP3G.cjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { H as HDWalletCapable, a as HDAllocationCapable, A as AddressAllocationCapable, W as Wallet, P as ProviderConnectionState } from '../../wallet-
|
|
2
|
-
import { I as IWallet, a as Identity, b as WalletConfig, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, d as ArkadeBroadcaster, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, E as ExtendedCoin, h as ArkTransaction, i as ActivityRegistry, j as Activity, k as IContractManager, l as GetNewAddressesOptions, m as NewAddress, n as IDelegateManager, S as SettleParams, o as SettlementEvent, p as SendParams, R as Recipient, q as IAssetManager } from '../../index-
|
|
3
|
-
import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-
|
|
1
|
+
import { H as HDWalletCapable, a as HDAllocationCapable, A as AddressAllocationCapable, W as Wallet, P as ProviderConnectionState } from '../../wallet-BnmhohgZ.js';
|
|
2
|
+
import { I as IWallet, a as Identity, b as WalletConfig, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, d as ArkadeBroadcaster, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, E as ExtendedCoin, h as ArkTransaction, i as ActivityRegistry, j as Activity, k as IContractManager, l as GetNewAddressesOptions, m as NewAddress, n as IDelegateManager, S as SettleParams, o as SettlementEvent, p as SendParams, R as Recipient, q as IAssetManager } from '../../index-BURzbRup.js';
|
|
3
|
+
import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-BaNCSxqK.js';
|
|
4
4
|
import '@scure/btc-signer/psbt.js';
|
|
5
5
|
import '@scure/btc-signer/utils.js';
|
|
6
|
-
import '../../delegate-
|
|
6
|
+
import '../../delegate-Cd28gxpM.js';
|
|
7
7
|
import '@scure/btc-signer';
|
|
8
8
|
import '@scure/btc-signer/transaction.js';
|
|
9
9
|
|
|
@@ -118,6 +118,7 @@ declare class ExpoWallet implements IWallet, HDWalletCapable, HDAllocationCapabl
|
|
|
118
118
|
getArkadeInfo(opts?: GetArkadeInfoOptions): Promise<ArkadeInfo>;
|
|
119
119
|
getArkadeReader(): Promise<ArkadeReader>;
|
|
120
120
|
getArkadeBroadcaster(): Promise<ArkadeBroadcaster>;
|
|
121
|
+
get oneShotSubmit(): boolean;
|
|
121
122
|
getBalance(): Promise<WalletBalance>;
|
|
122
123
|
getVtxos(filter?: GetVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]>;
|
|
123
124
|
getSpendableVtxos(filter?: GetSpendableVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { contractPollProcessor, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-
|
|
2
|
-
import { Wallet, extractArkProviderUrl, getRandomId, extendVirtualCoinForContract } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
5
|
-
import { assertTimerMs } from '../../chunk-
|
|
1
|
+
import { contractPollProcessor, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-Y4BL3YYX.js';
|
|
2
|
+
import { Wallet, extractArkProviderUrl, getRandomId, extendVirtualCoinForContract } from '../../chunk-HAQAWBYG.js';
|
|
3
|
+
import '../../chunk-6FL4N4S2.js';
|
|
4
|
+
import '../../chunk-P7B4LQ3H.js';
|
|
5
|
+
import { assertTimerMs } from '../../chunk-OPX2HRWM.js';
|
|
6
6
|
import { hex } from '@scure/base';
|
|
7
7
|
|
|
8
8
|
function warnOnRemovedBackgroundFields(bg) {
|
|
@@ -169,6 +169,9 @@ var ExpoWallet = class _ExpoWallet {
|
|
|
169
169
|
getArkadeBroadcaster() {
|
|
170
170
|
return this.wallet.getArkadeBroadcaster();
|
|
171
171
|
}
|
|
172
|
+
get oneShotSubmit() {
|
|
173
|
+
return this.wallet.oneShotSubmit;
|
|
174
|
+
}
|
|
172
175
|
getBalance() {
|
|
173
176
|
return this.wallet.getBalance();
|
|
174
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/wallet/expo/wallet.ts"],"names":[],"mappings":";;;;;;;AA0EO,SAAS,8BAA8B,EAAA,EAAmB;AAC7D,EAAA,IAAI,CAAC,EAAA,IAAM,OAAO,EAAA,KAAO,QAAA,EAAU;AACnC,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,IAAI,UAAA,IAAc,EAAA,EAAI,OAAA,CAAQ,IAAA,CAAK,UAAU,CAAA;AAC7C,EAAA,IAAI,+BAA+B,EAAA,EAAI;AACnC,IAAA,OAAA,CAAQ,KAAK,2BAA2B,CAAA;AAAA,EAC5C;AACA,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC1B,EAAA,OAAA,CAAQ,IAAA;AAAA,IACJ,CAAA,kEAAA,EAAqE,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,2HAAA;AAAA,GAG3F;AACJ;AAuCO,IAAM,UAAA,GAAN,MAAM,WAAA,CAEb;AAAA,EASY,WAAA,CACa,MAAA,EACA,SAAA,EACA,UAAA,EACA,MACjB,oBAAA,EACF;AALmB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AACA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAGjB,IAAA,IAAA,CAAK,WAAW,MAAA,CAAO,QAAA;AACvB,IAAA,IAAA,CAAK,cAAc,MAAA,CAAO,WAAA;AAC1B,IAAA,IAAA,CAAK,kBAAkB,MAAA,CAAO,eAAA;AAE9B,IAAA,IAAI,oBAAA,IAAwB,uBAAuB,CAAA,EAAG;AAClD,MAAA,IAAA,CAAK,uBAAuB,oBAAoB,CAAA;AAAA,IACpD;AAAA,EACJ;AAAA,EAbqB,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAA;AAAA,EAZZ,QAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EAED,oBAAA;AAAA,EACA,mBAAA,GAAqC,QAAQ,OAAA,EAAQ;AAAA,EACrD,OAAA,GAAU,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BlB,aAAa,MAAM,MAAA,EAA+C;AAC9D,IAAA,aAAA,CAAc,sBAAA,EAAwB,MAAA,CAAO,UAAA,CAAW,oBAAoB,CAAA;AAC5E,IAAA,6BAAA,CAA8B,OAAO,UAAU,CAAA;AAE/C,IAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AAEzC,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,UAAA,CAAW,UAAA,IAAc,CAAC,qBAAqB,CAAA;AAEzE,IAAA,MAAM,IAAA,GAAyB;AAAA,MAC3B,kBAAkB,MAAA,CAAO,gBAAA;AAAA,MACzB,oBAAoB,MAAA,CAAO,kBAAA;AAAA,MAC3B,iBAAiB,MAAA,CAAO,eAAA;AAAA,MACxB,aAAa,MAAA,CAAO,WAAA;AAAA,MACpB,YAAY,CAAC,IAAA,EAAM,QAAA,KAAa,4BAAA,CAA6B,MAAM,QAAQ;AAAA,KAC/E;AAEA,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAA,CAAO,UAAA;AAI7B,IAAA,IAAI,mBAAmB,SAAA,EAAW;AAC9B,MAAA,MAAM,YAAA,GAAe,qBAAA,CAAsB,MAAA,CAAO,WAAW,CAAA;AAE7D,MAAA,IAAI,OAAO,YAAA,KAAiB,QAAA,IAAY,YAAA,CAAa,SAAS,CAAA,EAAG;AAC7D,QAAA,MAAM,QAAA,GAAW,MAAA,CAAO,iBAAA,CAAkB,OAAA,CAAQ,WAAA;AAElD,QAAA,MAAM,QAAA,GAAsC;AAAA,UACxC,YAAA;AAAA,UACA,WAAW,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,iBAAA,CAAkB,QAAQ,MAAM,CAAA;AAAA,UAC7D,iBAAiB,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,iBAAA,CAAkB,QAAQ,YAAY,CAAA;AAAA,UACzE,iBAAA,EAAmB,QAAA,CAAS,KAAA,CAAM,QAAA,EAAS;AAAA,UAC3C,kBAAkB,QAAA,CAAS;AAAA,SAC/B;AAEA,QAAA,MAAO,SAAA,CAAoC,cAAc,QAAQ,CAAA;AAAA,MACrE;AAAA,IACJ;AAEA,IAAA,MAAM,aAAa,IAAI,WAAA;AAAA,MACnB,MAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAO,UAAA,CAAW;AAAA,KACtB;AAGA,IAAA,MAAM,WAAW,oBAAA,EAAqB;AAEtC,IAAA,OAAO,UAAA;AAAA,EACX;AAAA;AAAA,EAIQ,uBAAuB,UAAA,EAA0B;AACrD,IAAA,IAAA,CAAK,oBAAA,GAAuB,YAAY,MAAM;AAE1C,MAAA,IAAA,CAAK,mBAAA,GAAsB,IAAA,CAAK,mBAAA,CAC3B,IAAA,CAAK,MAAM,IAAA,CAAK,iBAAA,EAAmB,CAAA,CACnC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,IAC5B,GAAG,UAAU,CAAA;AAAA,EACjB;AAAA,EAEA,MAAc,iBAAA,GAAmC;AAC7C,IAAA,IAAI,KAAK,OAAA,EAAS;AAElB,IAAA,MAAM,SAAS,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,UAAA,EAAY,KAAK,IAAI,CAAA;AAGzD,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,SAAA,CAAU,UAAA,EAAW;AAChD,IAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACpB,MAAA,MAAM,IAAA,CAAK,UAAU,kBAAA,CAAmB,OAAA,CAAQ,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,IACpE;AAEA,IAAA,IAAI,KAAK,OAAA,EAAS;AAGlB,IAAA,MAAM,KAAK,oBAAA,EAAqB;AAAA,EACpC;AAAA,EAEA,MAAc,oBAAA,GAAsC;AAChD,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,SAAA,CAAU,SAAS,uBAAuB,CAAA;AACtE,IAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AAEzB,IAAA,MAAM,IAAA,GAAiB;AAAA,MACnB,IAAI,WAAA,EAAY;AAAA,MAChB,IAAA,EAAM,uBAAA;AAAA,MACN,MAAM,EAAC;AAAA,MACP,SAAA,EAAW,KAAK,GAAA;AAAI,KACxB;AACA,IAAA,MAAM,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,IAAI,CAAA;AAAA,EACrC;AAAA,EAEA,MAAc,uBAAA,GAAyC;AACnD,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,SAAA,CAAU,SAAS,uBAAuB,CAAA;AACnE,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,MAAA,MAAM,IAAA,CAAK,SAAA,CAAU,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA;AAAA,IAC3C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,OAAA,GAAyB;AAC3B,IAAA,IAAI,KAAK,oBAAA,EAAsB;AAC3B,MAAA,aAAA,CAAc,KAAK,oBAAoB,CAAA;AACvC,MAAA,IAAA,CAAK,oBAAA,GAAuB,MAAA;AAAA,IAChC;AAEA,IAAA,MAAM,IAAA,CAAK,OAAO,OAAA,EAAQ;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAA,GAAuB;AACzB,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAEf,IAAA,IAAI,KAAK,oBAAA,EAAsB;AAC3B,MAAA,aAAA,CAAc,KAAK,oBAAoB,CAAA;AACvC,MAAA,IAAA,CAAK,oBAAA,GAAuB,MAAA;AAAA,IAChC;AAEA,IAAA,MAAM,IAAA,CAAK,mBAAA;AACX,IAAA,MAAM,IAAA,CAAK,OAAO,KAAA,EAAM;AACxB,IAAA,MAAM,KAAK,uBAAA,EAAwB;AAAA,EACvC;AAAA;AAAA,EAIA,UAAA,GAA8B;AAC1B,IAAA,OAAO,IAAA,CAAK,OAAO,UAAA,EAAW;AAAA,EAClC;AAAA,EAEA,kBAAA,GAAsC;AAClC,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA,EAEA,cAAc,IAAA,EAAkD;AAC5D,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,aAAA,CAAc,IAAI,CAAA;AAAA,EACzC;AAAA,EAEA,eAAA,GAAyC;AACrC,IAAA,OAAO,IAAA,CAAK,OAAO,eAAA,EAAgB;AAAA,EACvC;AAAA,EAEA,oBAAA,GAAmD;AAC/C,IAAA,OAAO,IAAA,CAAK,OAAO,oBAAA,EAAqB;AAAA,EAC5C;AAAA,EAEA,UAAA,GAAqC;AACjC,IAAA,OAAO,IAAA,CAAK,OAAO,UAAA,EAAW;AAAA,EAClC;AAAA,EAEA,SAAS,MAAA,EAAmE;AACxE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,EACtC;AAAA,EAEA,kBAAkB,MAAA,EAA4E;AAC1F,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,iBAAA,CAAkB,MAAM,CAAA;AAAA,EAC/C;AAAA,EAEA,gBAAA,GAA4C;AACxC,IAAA,OAAO,IAAA,CAAK,OAAO,gBAAA,EAAiB;AAAA,EACxC;AAAA,EAEA,qBAAA,GAAmD;AAC/C,IAAA,OAAO,IAAA,CAAK,OAAO,qBAAA,EAAsB;AAAA,EAC7C;AAAA,EAEA,IAAI,QAAA,GAA6B;AAC7B,IAAA,OAAO,KAAK,MAAA,CAAO,QAAA;AAAA,EACvB;AAAA,EAEA,kBAAA,GAA0C;AACtC,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA,EAEA,kBAAA,GAAgD;AAC5C,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,2BAAA,GAA2D;AACvD,IAAA,OAAO,IAAA,CAAK,OAAO,2BAAA,EAA4B;AAAA,EACnD;AAAA,EAEA,wBAAA,GAAwD;AACpD,IAAA,OAAO,IAAA,CAAK,OAAO,wBAAA,EAAyB;AAAA,EAChD;AAAA;AAAA,EAGA,gBAAgB,IAAA,EAAsD;AAClE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,eAAA,CAAgB,IAAI,CAAA;AAAA,EAC3C;AAAA,EAEA,0BAA0B,IAAA,EAAkD;AACxE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,yBAAA,CAA0B,IAAI,CAAA;AAAA,EACrD;AAAA,EAEA,kCAAkC,UAAA,EAAmC;AACjE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,iCAAA,CAAkC,UAAU,CAAA;AAAA,EACnE;AAAA,EAEA,oBAAoB,UAAA,EAAuC;AACvD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,mBAAA,CAAoB,UAAU,CAAA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,0BAAA,GAAsD;AAClD,IAAA,OAAO,IAAA,CAAK,OAAO,0BAAA,EAA2B;AAAA,EAClD;AAAA,EAEA,kBAAA,GAA4D;AACxD,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA,EAEA,MAAA,CACI,QACA,aAAA,EACe;AACf,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,aAAa,CAAA;AAAA,EACnD;AAAA,EAEA,QAAQ,IAAA,EAAmE;AACvE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,GAAG,IAAI,CAAA;AAAA,EACnC;AAAA,EAEA,IAAI,YAAA,GAA8B;AAC9B,IAAA,OAAO,KAAK,MAAA,CAAO,YAAA;AAAA,EACvB;AAAA;AAAA,EAGA,IAAI,kBAAA,GAA8B;AAC9B,IAAA,OAAO,KAAK,MAAA,CAAO,kBAAA;AAAA,EACvB;AACJ","file":"index.js","sourcesContent":["import { hex } from \"@scure/base\";\nimport { assertTimerMs } from \"../../utils/time\";\nimport { Wallet, extractArkProviderUrl, type ProviderConnectionState } from \"../wallet\";\nimport type { Activity, ActivityRegistry } from \"../activity\";\nimport type {\n ArkadeBroadcaster,\n ArkadeReader,\n GetArkadeInfoOptions,\n IWallet,\n IAssetManager,\n WalletBalance,\n WalletConfig,\n SettleParams,\n GetVtxosFilter,\n GetSpendableVtxosFilter,\n GetNewAddressesOptions,\n NewAddress,\n ArkTransaction,\n ExtendedCoin,\n Recipient,\n SendParams,\n} from \"..\";\nimport type { ArkadeInfo, SettlementEvent } from \"../../providers/ark\";\nimport type { Identity } from \"../../identity\";\nimport type {\n AddressAllocationCapable,\n HDAllocationCapable,\n HDWalletCapable,\n} from \"../hdWalletCapable\";\nimport type { IContractManager } from \"../../contracts/contractManager\";\nimport type { IDelegateManager } from \"../delegate\";\nimport type { TaskQueue, TaskItem } from \"../../worker/expo/taskQueue\";\nimport type { TaskProcessor, TaskDependencies } from \"../../worker/expo/taskRunner\";\nimport { runTasks } from \"../../worker/expo/taskRunner\";\nimport { contractPollProcessor, CONTRACT_POLL_TASK_TYPE } from \"../../worker/expo/processors\";\nimport { extendVirtualCoinForContract, getRandomId } from \"../utils\";\nimport type { PersistedBackgroundConfig } from \"./background\";\nimport type { AsyncStorageTaskQueue } from \"../../worker/expo/asyncStorageTaskQueue\";\nimport type { NormalizedExtendedVirtualCoin } from \"../vtxo\";\n\n/**\n * Background processing configuration for @see ExpoWallet.\n *\n * OS-level task registration is **not** part of this config — call\n * `registerExpoBackgroundTask` from `@arkade-os/sdk/wallet/expo/background`\n * explicitly. Splitting that step out keeps `/wallet/expo` free of the\n * `expo-task-manager` / `expo-background-task` dependencies, so\n * react-native-web and Node consumers can use `ExpoWallet` without\n * those native packages. See\n * https://github.com/arkade-os/ts-sdk/issues/486 for details.\n */\nexport interface ExpoBackgroundConfig {\n /** Persistence layer for foreground ↔ background handoff. */\n taskQueue: TaskQueue;\n /** Processors to run on each tick. Defaults to `[contractPollProcessor]`. */\n processors?: TaskProcessor[];\n /** If set, automatically polls at this interval (ms) while the app is in the foreground. */\n foregroundIntervalMs?: number;\n}\n\n/**\n * Configuration for @see ExpoWallet.setup.\n */\nexport interface ExpoWalletConfig extends WalletConfig {\n background: ExpoBackgroundConfig;\n}\n\n/**\n * Catches JS callers still passing the pre-fix-#486 fields: TypeScript\n * blocks these at compile time, but compiled JS silently dropped them\n * and consumers would never realize the OS task wasn't scheduled.\n *\n * @internal Exported for tests; not part of the public API surface.\n */\nexport function warnOnRemovedBackgroundFields(bg: unknown): void {\n if (!bg || typeof bg !== \"object\") return;\n const removed: string[] = [];\n if (\"taskName\" in bg) removed.push(\"taskName\");\n if (\"minimumBackgroundInterval\" in bg) {\n removed.push(\"minimumBackgroundInterval\");\n }\n if (removed.length === 0) return;\n console.warn(\n `[ark-sdk] ExpoWallet.setup: ignoring removed background field(s): ${removed.join(\", \")}. ` +\n 'OS-task registration moved to \"@arkade-os/sdk/wallet/expo/background\". ' +\n \"See https://github.com/arkade-os/ts-sdk/issues/486\",\n );\n}\n\n/**\n * Expo/React Native wallet with built-in background task processing.\n *\n * Wraps a standard @see Wallet and adds a lightweight task queue\n * for keeping contract/VTXO state fresh while the app is active and\n * across Expo BackgroundTask wakes.\n *\n * OS-level task registration is the consumer's responsibility — call\n * `registerExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` after `setup()`. Keeping\n * registration out of `setup()` lets this entrypoint avoid pulling\n * `expo-task-manager` / `expo-background-task` into the `/wallet/expo`\n * bundle.\n *\n * @example\n * ```ts\n * import { ExpoWallet } from \"@arkade-os/sdk/wallet/expo\";\n * import { registerExpoBackgroundTask } from \"@arkade-os/sdk/wallet/expo/background\";\n * import { AsyncStorageTaskQueue } from \"@arkade-os/sdk/worker/expo\";\n *\n * const wallet = await ExpoWallet.setup({\n * identity: MnemonicIdentity.fromMnemonic('abandon abandon...'),\n * arkProvider: new RestArkProvider(),\n * onchainProvider: new EsploraProvider(),\n * storage: { ... },\n * background: {\n * taskQueue: new AsyncStorageTaskQueue(AsyncStorage),\n * foregroundIntervalMs: 20_000,\n * },\n * });\n *\n * // Activate the OS scheduler (Expo Android/iOS only)\n * await registerExpoBackgroundTask(\"ark-background-poll\", { minimumInterval: 15 });\n *\n * const balance = await wallet.getBalance();\n * ```\n */\nexport class ExpoWallet\n implements IWallet, HDWalletCapable, HDAllocationCapable, AddressAllocationCapable\n{\n readonly identity: Identity;\n readonly arkProvider: Wallet[\"arkProvider\"];\n readonly indexerProvider: Wallet[\"indexerProvider\"];\n\n private foregroundIntervalId?: ReturnType<typeof setInterval>;\n private foregroundPollChain: Promise<void> = Promise.resolve();\n private cleared = false;\n\n private constructor(\n private readonly wallet: Wallet,\n private readonly taskQueue: TaskQueue,\n private readonly processors: TaskProcessor[],\n private readonly deps: TaskDependencies,\n foregroundIntervalMs?: number,\n ) {\n this.identity = wallet.identity;\n this.arkProvider = wallet.arkProvider;\n this.indexerProvider = wallet.indexerProvider;\n\n if (foregroundIntervalMs && foregroundIntervalMs > 0) {\n this.startForegroundPolling(foregroundIntervalMs);\n }\n }\n\n /**\n * Create an ExpoWallet with foreground/background queue handoff.\n *\n * 1. Creates the inner @see Wallet via `Wallet.create()`.\n * 2. Wires up processors (defaults to @see contractPollProcessor).\n * 3. Persists background config for the background handler (if the queue supports it).\n * 4. Seeds the task queue with a `contract-poll` task.\n * 5. Starts the foreground interval if `foregroundIntervalMs` is set.\n *\n * OS-level scheduling lives in\n * `@arkade-os/sdk/wallet/expo/background` and is invoked separately\n * by the consumer.\n */\n static async setup(config: ExpoWalletConfig): Promise<ExpoWallet> {\n assertTimerMs(\"foregroundIntervalMs\", config.background.foregroundIntervalMs);\n warnOnRemovedBackgroundFields(config.background);\n\n const wallet = await Wallet.create(config);\n\n const processors = config.background.processors ?? [contractPollProcessor];\n\n const deps: TaskDependencies = {\n walletRepository: wallet.walletRepository,\n contractRepository: wallet.contractRepository,\n indexerProvider: wallet.indexerProvider,\n arkProvider: wallet.arkProvider,\n extendVtxo: (vtxo, contract) => extendVirtualCoinForContract(vtxo, contract),\n };\n\n const { taskQueue } = config.background;\n\n // Persist wallet params so the background handler can rehydrate\n // without a network call. Only works with AsyncStorageTaskQueue.\n if (\"persistConfig\" in taskQueue) {\n const arkServerUrl = extractArkProviderUrl(wallet.arkProvider);\n\n if (typeof arkServerUrl === \"string\" && arkServerUrl.length > 0) {\n const timelock = wallet.offchainTapscript.options.csvTimelock;\n\n const bgConfig: PersistedBackgroundConfig = {\n arkServerUrl,\n pubkeyHex: hex.encode(wallet.offchainTapscript.options.pubKey),\n serverPubKeyHex: hex.encode(wallet.offchainTapscript.options.serverPubKey),\n exitTimelockValue: timelock.value.toString(),\n exitTimelockType: timelock.type,\n };\n\n await (taskQueue as AsyncStorageTaskQueue).persistConfig(bgConfig);\n }\n }\n\n const expoWallet = new ExpoWallet(\n wallet,\n taskQueue,\n processors,\n deps,\n config.background.foregroundIntervalMs,\n );\n\n // Seed the queue so the first tick (or background wake) has work to do\n await expoWallet.seedContractPollTask();\n\n return expoWallet;\n }\n\n // ── Foreground polling ───────────────────────────────────────────\n\n private startForegroundPolling(intervalMs: number): void {\n this.foregroundIntervalId = setInterval(() => {\n // Serialize polls so clear() can await the in-flight one before wiping.\n this.foregroundPollChain = this.foregroundPollChain\n .then(() => this.runForegroundPoll())\n .catch(console.error);\n }, intervalMs);\n }\n\n private async runForegroundPoll(): Promise<void> {\n if (this.cleared) return;\n\n await runTasks(this.taskQueue, this.processors, this.deps);\n\n // Consume results immediately (no background handoff needed)\n const results = await this.taskQueue.getResults();\n if (results.length > 0) {\n await this.taskQueue.acknowledgeResults(results.map((r) => r.id));\n }\n\n if (this.cleared) return;\n\n // Re-seed for the next tick\n await this.seedContractPollTask();\n }\n\n private async seedContractPollTask(): Promise<void> {\n const existing = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n if (existing.length > 0) return;\n\n const task: TaskItem = {\n id: getRandomId(),\n type: CONTRACT_POLL_TASK_TYPE,\n data: {},\n createdAt: Date.now(),\n };\n await this.taskQueue.addTask(task);\n }\n\n private async removeContractPollTasks(): Promise<void> {\n const tasks = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n for (const task of tasks) {\n await this.taskQueue.removeTask(task.id);\n }\n }\n\n // ── Lifecycle ────────────────────────────────────────────────────\n\n /**\n * Stop foreground polling and dispose the inner wallet.\n *\n * Does **not** unregister the OS background task — call\n * `unregisterExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` yourself, matching the\n * explicit `register` step.\n */\n async dispose(): Promise<void> {\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.wallet.dispose();\n }\n\n /**\n * Stop foreground polling and wipe all locally persisted wallet data.\n * Does not unregister the OS background task or persisted queue config.\n */\n async clear(): Promise<void> {\n this.cleared = true;\n\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.foregroundPollChain;\n await this.wallet.clear();\n await this.removeContractPollTasks();\n }\n\n // ── IWallet delegation ───────────────────────────────────────────\n\n getAddress(): Promise<string> {\n return this.wallet.getAddress();\n }\n\n getBoardingAddress(): Promise<string> {\n return this.wallet.getBoardingAddress();\n }\n\n getArkadeInfo(opts?: GetArkadeInfoOptions): Promise<ArkadeInfo> {\n return this.wallet.getArkadeInfo(opts);\n }\n\n getArkadeReader(): Promise<ArkadeReader> {\n return this.wallet.getArkadeReader();\n }\n\n getArkadeBroadcaster(): Promise<ArkadeBroadcaster> {\n return this.wallet.getArkadeBroadcaster();\n }\n\n getBalance(): Promise<WalletBalance> {\n return this.wallet.getBalance();\n }\n\n getVtxos(filter?: GetVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getVtxos(filter);\n }\n\n getSpendableVtxos(filter?: GetSpendableVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getSpendableVtxos(filter);\n }\n\n getBoardingUtxos(): Promise<ExtendedCoin[]> {\n return this.wallet.getBoardingUtxos();\n }\n\n getTransactionHistory(): Promise<ArkTransaction[]> {\n return this.wallet.getTransactionHistory();\n }\n\n get activity(): ActivityRegistry {\n return this.wallet.activity;\n }\n\n getActivityHistory(): Promise<Activity[]> {\n return this.wallet.getActivityHistory();\n }\n\n getContractManager(): Promise<IContractManager> {\n return this.wallet.getContractManager();\n }\n\n // Descriptor surface, delegated like everything else here. Without these\n // the structural probes see a wallet with no HD state, so an Expo wallet\n // running `walletMode: 'hd'` would bind every artifact to its baseline\n // identity key — reusing one key across swaps while its receive addresses\n // rotate, and never allocating the indices a restore scan looks for.\n\n getCurrentSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getCurrentSigningDescriptor();\n }\n\n getNextSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getNextSigningDescriptor();\n }\n\n /** @see Wallet.getNewAddresses */\n getNewAddresses(opts?: GetNewAddressesOptions): Promise<NewAddress[]> {\n return this.wallet.getNewAddresses(opts);\n }\n\n getUsedSigningDescriptors(opts?: { lookAhead?: number }): Promise<string[]> {\n return this.wallet.getUsedSigningDescriptors(opts);\n }\n\n advanceSigningDescriptorWatermark(descriptor: string): Promise<void> {\n return this.wallet.advanceSigningDescriptorWatermark(descriptor);\n }\n\n signerForDescriptor(descriptor: string): Promise<Identity> {\n return this.wallet.signerForDescriptor(descriptor);\n }\n\n /**\n * Wallet-level provider-connection freshness, delegated to the wrapped\n * in-process wallet. Synchronous because the Expo foreground wallet is\n * in-process (no worker boundary). Foreground-only: it does not imply any\n * background task can read live foreground state.\n */\n getProviderConnectionState(): ProviderConnectionState {\n return this.wallet.getProviderConnectionState();\n }\n\n getDelegateManager(): Promise<IDelegateManager | undefined> {\n return this.wallet.getDelegateManager();\n }\n\n settle(\n params?: SettleParams,\n eventCallback?: (event: SettlementEvent) => void,\n ): Promise<string> {\n return this.wallet.settle(params, eventCallback);\n }\n\n send(...args: [SendParams] | [Recipient, ...Recipient[]]): Promise<string> {\n return this.wallet.send(...args);\n }\n\n get assetManager(): IAssetManager {\n return this.wallet.assetManager;\n }\n\n /** @see WalletConfig.concurrentSpending */\n get concurrentSpending(): boolean {\n return this.wallet.concurrentSpending;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/wallet/expo/wallet.ts"],"names":[],"mappings":";;;;;;;AA0EO,SAAS,8BAA8B,EAAA,EAAmB;AAC7D,EAAA,IAAI,CAAC,EAAA,IAAM,OAAO,EAAA,KAAO,QAAA,EAAU;AACnC,EAAA,MAAM,UAAoB,EAAC;AAC3B,EAAA,IAAI,UAAA,IAAc,EAAA,EAAI,OAAA,CAAQ,IAAA,CAAK,UAAU,CAAA;AAC7C,EAAA,IAAI,+BAA+B,EAAA,EAAI;AACnC,IAAA,OAAA,CAAQ,KAAK,2BAA2B,CAAA;AAAA,EAC5C;AACA,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC1B,EAAA,OAAA,CAAQ,IAAA;AAAA,IACJ,CAAA,kEAAA,EAAqE,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,2HAAA;AAAA,GAG3F;AACJ;AAuCO,IAAM,UAAA,GAAN,MAAM,WAAA,CAEb;AAAA,EASY,WAAA,CACa,MAAA,EACA,SAAA,EACA,UAAA,EACA,MACjB,oBAAA,EACF;AALmB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AACA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAGjB,IAAA,IAAA,CAAK,WAAW,MAAA,CAAO,QAAA;AACvB,IAAA,IAAA,CAAK,cAAc,MAAA,CAAO,WAAA;AAC1B,IAAA,IAAA,CAAK,kBAAkB,MAAA,CAAO,eAAA;AAE9B,IAAA,IAAI,oBAAA,IAAwB,uBAAuB,CAAA,EAAG;AAClD,MAAA,IAAA,CAAK,uBAAuB,oBAAoB,CAAA;AAAA,IACpD;AAAA,EACJ;AAAA,EAbqB,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAA;AAAA,EAZZ,QAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EAED,oBAAA;AAAA,EACA,mBAAA,GAAqC,QAAQ,OAAA,EAAQ;AAAA,EACrD,OAAA,GAAU,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BlB,aAAa,MAAM,MAAA,EAA+C;AAC9D,IAAA,aAAA,CAAc,sBAAA,EAAwB,MAAA,CAAO,UAAA,CAAW,oBAAoB,CAAA;AAC5E,IAAA,6BAAA,CAA8B,OAAO,UAAU,CAAA;AAE/C,IAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AAEzC,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,UAAA,CAAW,UAAA,IAAc,CAAC,qBAAqB,CAAA;AAEzE,IAAA,MAAM,IAAA,GAAyB;AAAA,MAC3B,kBAAkB,MAAA,CAAO,gBAAA;AAAA,MACzB,oBAAoB,MAAA,CAAO,kBAAA;AAAA,MAC3B,iBAAiB,MAAA,CAAO,eAAA;AAAA,MACxB,aAAa,MAAA,CAAO,WAAA;AAAA,MACpB,YAAY,CAAC,IAAA,EAAM,QAAA,KAAa,4BAAA,CAA6B,MAAM,QAAQ;AAAA,KAC/E;AAEA,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAA,CAAO,UAAA;AAI7B,IAAA,IAAI,mBAAmB,SAAA,EAAW;AAC9B,MAAA,MAAM,YAAA,GAAe,qBAAA,CAAsB,MAAA,CAAO,WAAW,CAAA;AAE7D,MAAA,IAAI,OAAO,YAAA,KAAiB,QAAA,IAAY,YAAA,CAAa,SAAS,CAAA,EAAG;AAC7D,QAAA,MAAM,QAAA,GAAW,MAAA,CAAO,iBAAA,CAAkB,OAAA,CAAQ,WAAA;AAElD,QAAA,MAAM,QAAA,GAAsC;AAAA,UACxC,YAAA;AAAA,UACA,WAAW,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,iBAAA,CAAkB,QAAQ,MAAM,CAAA;AAAA,UAC7D,iBAAiB,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,iBAAA,CAAkB,QAAQ,YAAY,CAAA;AAAA,UACzE,iBAAA,EAAmB,QAAA,CAAS,KAAA,CAAM,QAAA,EAAS;AAAA,UAC3C,kBAAkB,QAAA,CAAS;AAAA,SAC/B;AAEA,QAAA,MAAO,SAAA,CAAoC,cAAc,QAAQ,CAAA;AAAA,MACrE;AAAA,IACJ;AAEA,IAAA,MAAM,aAAa,IAAI,WAAA;AAAA,MACnB,MAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAO,UAAA,CAAW;AAAA,KACtB;AAGA,IAAA,MAAM,WAAW,oBAAA,EAAqB;AAEtC,IAAA,OAAO,UAAA;AAAA,EACX;AAAA;AAAA,EAIQ,uBAAuB,UAAA,EAA0B;AACrD,IAAA,IAAA,CAAK,oBAAA,GAAuB,YAAY,MAAM;AAE1C,MAAA,IAAA,CAAK,mBAAA,GAAsB,IAAA,CAAK,mBAAA,CAC3B,IAAA,CAAK,MAAM,IAAA,CAAK,iBAAA,EAAmB,CAAA,CACnC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,IAC5B,GAAG,UAAU,CAAA;AAAA,EACjB;AAAA,EAEA,MAAc,iBAAA,GAAmC;AAC7C,IAAA,IAAI,KAAK,OAAA,EAAS;AAElB,IAAA,MAAM,SAAS,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,UAAA,EAAY,KAAK,IAAI,CAAA;AAGzD,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,SAAA,CAAU,UAAA,EAAW;AAChD,IAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACpB,MAAA,MAAM,IAAA,CAAK,UAAU,kBAAA,CAAmB,OAAA,CAAQ,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,IACpE;AAEA,IAAA,IAAI,KAAK,OAAA,EAAS;AAGlB,IAAA,MAAM,KAAK,oBAAA,EAAqB;AAAA,EACpC;AAAA,EAEA,MAAc,oBAAA,GAAsC;AAChD,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,SAAA,CAAU,SAAS,uBAAuB,CAAA;AACtE,IAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AAEzB,IAAA,MAAM,IAAA,GAAiB;AAAA,MACnB,IAAI,WAAA,EAAY;AAAA,MAChB,IAAA,EAAM,uBAAA;AAAA,MACN,MAAM,EAAC;AAAA,MACP,SAAA,EAAW,KAAK,GAAA;AAAI,KACxB;AACA,IAAA,MAAM,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,IAAI,CAAA;AAAA,EACrC;AAAA,EAEA,MAAc,uBAAA,GAAyC;AACnD,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,SAAA,CAAU,SAAS,uBAAuB,CAAA;AACnE,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,MAAA,MAAM,IAAA,CAAK,SAAA,CAAU,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA;AAAA,IAC3C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,OAAA,GAAyB;AAC3B,IAAA,IAAI,KAAK,oBAAA,EAAsB;AAC3B,MAAA,aAAA,CAAc,KAAK,oBAAoB,CAAA;AACvC,MAAA,IAAA,CAAK,oBAAA,GAAuB,MAAA;AAAA,IAChC;AAEA,IAAA,MAAM,IAAA,CAAK,OAAO,OAAA,EAAQ;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAA,GAAuB;AACzB,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAEf,IAAA,IAAI,KAAK,oBAAA,EAAsB;AAC3B,MAAA,aAAA,CAAc,KAAK,oBAAoB,CAAA;AACvC,MAAA,IAAA,CAAK,oBAAA,GAAuB,MAAA;AAAA,IAChC;AAEA,IAAA,MAAM,IAAA,CAAK,mBAAA;AACX,IAAA,MAAM,IAAA,CAAK,OAAO,KAAA,EAAM;AACxB,IAAA,MAAM,KAAK,uBAAA,EAAwB;AAAA,EACvC;AAAA;AAAA,EAIA,UAAA,GAA8B;AAC1B,IAAA,OAAO,IAAA,CAAK,OAAO,UAAA,EAAW;AAAA,EAClC;AAAA,EAEA,kBAAA,GAAsC;AAClC,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA,EAEA,cAAc,IAAA,EAAkD;AAC5D,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,aAAA,CAAc,IAAI,CAAA;AAAA,EACzC;AAAA,EAEA,eAAA,GAAyC;AACrC,IAAA,OAAO,IAAA,CAAK,OAAO,eAAA,EAAgB;AAAA,EACvC;AAAA,EAEA,oBAAA,GAAmD;AAC/C,IAAA,OAAO,IAAA,CAAK,OAAO,oBAAA,EAAqB;AAAA,EAC5C;AAAA,EAEA,IAAI,aAAA,GAAyB;AACzB,IAAA,OAAO,KAAK,MAAA,CAAO,aAAA;AAAA,EACvB;AAAA,EAEA,UAAA,GAAqC;AACjC,IAAA,OAAO,IAAA,CAAK,OAAO,UAAA,EAAW;AAAA,EAClC;AAAA,EAEA,SAAS,MAAA,EAAmE;AACxE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,EACtC;AAAA,EAEA,kBAAkB,MAAA,EAA4E;AAC1F,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,iBAAA,CAAkB,MAAM,CAAA;AAAA,EAC/C;AAAA,EAEA,gBAAA,GAA4C;AACxC,IAAA,OAAO,IAAA,CAAK,OAAO,gBAAA,EAAiB;AAAA,EACxC;AAAA,EAEA,qBAAA,GAAmD;AAC/C,IAAA,OAAO,IAAA,CAAK,OAAO,qBAAA,EAAsB;AAAA,EAC7C;AAAA,EAEA,IAAI,QAAA,GAA6B;AAC7B,IAAA,OAAO,KAAK,MAAA,CAAO,QAAA;AAAA,EACvB;AAAA,EAEA,kBAAA,GAA0C;AACtC,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA,EAEA,kBAAA,GAAgD;AAC5C,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,2BAAA,GAA2D;AACvD,IAAA,OAAO,IAAA,CAAK,OAAO,2BAAA,EAA4B;AAAA,EACnD;AAAA,EAEA,wBAAA,GAAwD;AACpD,IAAA,OAAO,IAAA,CAAK,OAAO,wBAAA,EAAyB;AAAA,EAChD;AAAA;AAAA,EAGA,gBAAgB,IAAA,EAAsD;AAClE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,eAAA,CAAgB,IAAI,CAAA;AAAA,EAC3C;AAAA,EAEA,0BAA0B,IAAA,EAAkD;AACxE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,yBAAA,CAA0B,IAAI,CAAA;AAAA,EACrD;AAAA,EAEA,kCAAkC,UAAA,EAAmC;AACjE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,iCAAA,CAAkC,UAAU,CAAA;AAAA,EACnE;AAAA,EAEA,oBAAoB,UAAA,EAAuC;AACvD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,mBAAA,CAAoB,UAAU,CAAA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,0BAAA,GAAsD;AAClD,IAAA,OAAO,IAAA,CAAK,OAAO,0BAAA,EAA2B;AAAA,EAClD;AAAA,EAEA,kBAAA,GAA4D;AACxD,IAAA,OAAO,IAAA,CAAK,OAAO,kBAAA,EAAmB;AAAA,EAC1C;AAAA,EAEA,MAAA,CACI,QACA,aAAA,EACe;AACf,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,aAAa,CAAA;AAAA,EACnD;AAAA,EAEA,QAAQ,IAAA,EAAmE;AACvE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,GAAG,IAAI,CAAA;AAAA,EACnC;AAAA,EAEA,IAAI,YAAA,GAA8B;AAC9B,IAAA,OAAO,KAAK,MAAA,CAAO,YAAA;AAAA,EACvB;AAAA;AAAA,EAGA,IAAI,kBAAA,GAA8B;AAC9B,IAAA,OAAO,KAAK,MAAA,CAAO,kBAAA;AAAA,EACvB;AACJ","file":"index.js","sourcesContent":["import { hex } from \"@scure/base\";\nimport { assertTimerMs } from \"../../utils/time\";\nimport { Wallet, extractArkProviderUrl, type ProviderConnectionState } from \"../wallet\";\nimport type { Activity, ActivityRegistry } from \"../activity\";\nimport type {\n ArkadeBroadcaster,\n ArkadeReader,\n GetArkadeInfoOptions,\n IWallet,\n IAssetManager,\n WalletBalance,\n WalletConfig,\n SettleParams,\n GetVtxosFilter,\n GetSpendableVtxosFilter,\n GetNewAddressesOptions,\n NewAddress,\n ArkTransaction,\n ExtendedCoin,\n Recipient,\n SendParams,\n} from \"..\";\nimport type { ArkadeInfo, SettlementEvent } from \"../../providers/ark\";\nimport type { Identity } from \"../../identity\";\nimport type {\n AddressAllocationCapable,\n HDAllocationCapable,\n HDWalletCapable,\n} from \"../hdWalletCapable\";\nimport type { IContractManager } from \"../../contracts/contractManager\";\nimport type { IDelegateManager } from \"../delegate\";\nimport type { TaskQueue, TaskItem } from \"../../worker/expo/taskQueue\";\nimport type { TaskProcessor, TaskDependencies } from \"../../worker/expo/taskRunner\";\nimport { runTasks } from \"../../worker/expo/taskRunner\";\nimport { contractPollProcessor, CONTRACT_POLL_TASK_TYPE } from \"../../worker/expo/processors\";\nimport { extendVirtualCoinForContract, getRandomId } from \"../utils\";\nimport type { PersistedBackgroundConfig } from \"./background\";\nimport type { AsyncStorageTaskQueue } from \"../../worker/expo/asyncStorageTaskQueue\";\nimport type { NormalizedExtendedVirtualCoin } from \"../vtxo\";\n\n/**\n * Background processing configuration for @see ExpoWallet.\n *\n * OS-level task registration is **not** part of this config — call\n * `registerExpoBackgroundTask` from `@arkade-os/sdk/wallet/expo/background`\n * explicitly. Splitting that step out keeps `/wallet/expo` free of the\n * `expo-task-manager` / `expo-background-task` dependencies, so\n * react-native-web and Node consumers can use `ExpoWallet` without\n * those native packages. See\n * https://github.com/arkade-os/ts-sdk/issues/486 for details.\n */\nexport interface ExpoBackgroundConfig {\n /** Persistence layer for foreground ↔ background handoff. */\n taskQueue: TaskQueue;\n /** Processors to run on each tick. Defaults to `[contractPollProcessor]`. */\n processors?: TaskProcessor[];\n /** If set, automatically polls at this interval (ms) while the app is in the foreground. */\n foregroundIntervalMs?: number;\n}\n\n/**\n * Configuration for @see ExpoWallet.setup.\n */\nexport interface ExpoWalletConfig extends WalletConfig {\n background: ExpoBackgroundConfig;\n}\n\n/**\n * Catches JS callers still passing the pre-fix-#486 fields: TypeScript\n * blocks these at compile time, but compiled JS silently dropped them\n * and consumers would never realize the OS task wasn't scheduled.\n *\n * @internal Exported for tests; not part of the public API surface.\n */\nexport function warnOnRemovedBackgroundFields(bg: unknown): void {\n if (!bg || typeof bg !== \"object\") return;\n const removed: string[] = [];\n if (\"taskName\" in bg) removed.push(\"taskName\");\n if (\"minimumBackgroundInterval\" in bg) {\n removed.push(\"minimumBackgroundInterval\");\n }\n if (removed.length === 0) return;\n console.warn(\n `[ark-sdk] ExpoWallet.setup: ignoring removed background field(s): ${removed.join(\", \")}. ` +\n 'OS-task registration moved to \"@arkade-os/sdk/wallet/expo/background\". ' +\n \"See https://github.com/arkade-os/ts-sdk/issues/486\",\n );\n}\n\n/**\n * Expo/React Native wallet with built-in background task processing.\n *\n * Wraps a standard @see Wallet and adds a lightweight task queue\n * for keeping contract/VTXO state fresh while the app is active and\n * across Expo BackgroundTask wakes.\n *\n * OS-level task registration is the consumer's responsibility — call\n * `registerExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` after `setup()`. Keeping\n * registration out of `setup()` lets this entrypoint avoid pulling\n * `expo-task-manager` / `expo-background-task` into the `/wallet/expo`\n * bundle.\n *\n * @example\n * ```ts\n * import { ExpoWallet } from \"@arkade-os/sdk/wallet/expo\";\n * import { registerExpoBackgroundTask } from \"@arkade-os/sdk/wallet/expo/background\";\n * import { AsyncStorageTaskQueue } from \"@arkade-os/sdk/worker/expo\";\n *\n * const wallet = await ExpoWallet.setup({\n * identity: MnemonicIdentity.fromMnemonic('abandon abandon...'),\n * arkProvider: new RestArkProvider(),\n * onchainProvider: new EsploraProvider(),\n * storage: { ... },\n * background: {\n * taskQueue: new AsyncStorageTaskQueue(AsyncStorage),\n * foregroundIntervalMs: 20_000,\n * },\n * });\n *\n * // Activate the OS scheduler (Expo Android/iOS only)\n * await registerExpoBackgroundTask(\"ark-background-poll\", { minimumInterval: 15 });\n *\n * const balance = await wallet.getBalance();\n * ```\n */\nexport class ExpoWallet\n implements IWallet, HDWalletCapable, HDAllocationCapable, AddressAllocationCapable\n{\n readonly identity: Identity;\n readonly arkProvider: Wallet[\"arkProvider\"];\n readonly indexerProvider: Wallet[\"indexerProvider\"];\n\n private foregroundIntervalId?: ReturnType<typeof setInterval>;\n private foregroundPollChain: Promise<void> = Promise.resolve();\n private cleared = false;\n\n private constructor(\n private readonly wallet: Wallet,\n private readonly taskQueue: TaskQueue,\n private readonly processors: TaskProcessor[],\n private readonly deps: TaskDependencies,\n foregroundIntervalMs?: number,\n ) {\n this.identity = wallet.identity;\n this.arkProvider = wallet.arkProvider;\n this.indexerProvider = wallet.indexerProvider;\n\n if (foregroundIntervalMs && foregroundIntervalMs > 0) {\n this.startForegroundPolling(foregroundIntervalMs);\n }\n }\n\n /**\n * Create an ExpoWallet with foreground/background queue handoff.\n *\n * 1. Creates the inner @see Wallet via `Wallet.create()`.\n * 2. Wires up processors (defaults to @see contractPollProcessor).\n * 3. Persists background config for the background handler (if the queue supports it).\n * 4. Seeds the task queue with a `contract-poll` task.\n * 5. Starts the foreground interval if `foregroundIntervalMs` is set.\n *\n * OS-level scheduling lives in\n * `@arkade-os/sdk/wallet/expo/background` and is invoked separately\n * by the consumer.\n */\n static async setup(config: ExpoWalletConfig): Promise<ExpoWallet> {\n assertTimerMs(\"foregroundIntervalMs\", config.background.foregroundIntervalMs);\n warnOnRemovedBackgroundFields(config.background);\n\n const wallet = await Wallet.create(config);\n\n const processors = config.background.processors ?? [contractPollProcessor];\n\n const deps: TaskDependencies = {\n walletRepository: wallet.walletRepository,\n contractRepository: wallet.contractRepository,\n indexerProvider: wallet.indexerProvider,\n arkProvider: wallet.arkProvider,\n extendVtxo: (vtxo, contract) => extendVirtualCoinForContract(vtxo, contract),\n };\n\n const { taskQueue } = config.background;\n\n // Persist wallet params so the background handler can rehydrate\n // without a network call. Only works with AsyncStorageTaskQueue.\n if (\"persistConfig\" in taskQueue) {\n const arkServerUrl = extractArkProviderUrl(wallet.arkProvider);\n\n if (typeof arkServerUrl === \"string\" && arkServerUrl.length > 0) {\n const timelock = wallet.offchainTapscript.options.csvTimelock;\n\n const bgConfig: PersistedBackgroundConfig = {\n arkServerUrl,\n pubkeyHex: hex.encode(wallet.offchainTapscript.options.pubKey),\n serverPubKeyHex: hex.encode(wallet.offchainTapscript.options.serverPubKey),\n exitTimelockValue: timelock.value.toString(),\n exitTimelockType: timelock.type,\n };\n\n await (taskQueue as AsyncStorageTaskQueue).persistConfig(bgConfig);\n }\n }\n\n const expoWallet = new ExpoWallet(\n wallet,\n taskQueue,\n processors,\n deps,\n config.background.foregroundIntervalMs,\n );\n\n // Seed the queue so the first tick (or background wake) has work to do\n await expoWallet.seedContractPollTask();\n\n return expoWallet;\n }\n\n // ── Foreground polling ───────────────────────────────────────────\n\n private startForegroundPolling(intervalMs: number): void {\n this.foregroundIntervalId = setInterval(() => {\n // Serialize polls so clear() can await the in-flight one before wiping.\n this.foregroundPollChain = this.foregroundPollChain\n .then(() => this.runForegroundPoll())\n .catch(console.error);\n }, intervalMs);\n }\n\n private async runForegroundPoll(): Promise<void> {\n if (this.cleared) return;\n\n await runTasks(this.taskQueue, this.processors, this.deps);\n\n // Consume results immediately (no background handoff needed)\n const results = await this.taskQueue.getResults();\n if (results.length > 0) {\n await this.taskQueue.acknowledgeResults(results.map((r) => r.id));\n }\n\n if (this.cleared) return;\n\n // Re-seed for the next tick\n await this.seedContractPollTask();\n }\n\n private async seedContractPollTask(): Promise<void> {\n const existing = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n if (existing.length > 0) return;\n\n const task: TaskItem = {\n id: getRandomId(),\n type: CONTRACT_POLL_TASK_TYPE,\n data: {},\n createdAt: Date.now(),\n };\n await this.taskQueue.addTask(task);\n }\n\n private async removeContractPollTasks(): Promise<void> {\n const tasks = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n for (const task of tasks) {\n await this.taskQueue.removeTask(task.id);\n }\n }\n\n // ── Lifecycle ────────────────────────────────────────────────────\n\n /**\n * Stop foreground polling and dispose the inner wallet.\n *\n * Does **not** unregister the OS background task — call\n * `unregisterExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` yourself, matching the\n * explicit `register` step.\n */\n async dispose(): Promise<void> {\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.wallet.dispose();\n }\n\n /**\n * Stop foreground polling and wipe all locally persisted wallet data.\n * Does not unregister the OS background task or persisted queue config.\n */\n async clear(): Promise<void> {\n this.cleared = true;\n\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.foregroundPollChain;\n await this.wallet.clear();\n await this.removeContractPollTasks();\n }\n\n // ── IWallet delegation ───────────────────────────────────────────\n\n getAddress(): Promise<string> {\n return this.wallet.getAddress();\n }\n\n getBoardingAddress(): Promise<string> {\n return this.wallet.getBoardingAddress();\n }\n\n getArkadeInfo(opts?: GetArkadeInfoOptions): Promise<ArkadeInfo> {\n return this.wallet.getArkadeInfo(opts);\n }\n\n getArkadeReader(): Promise<ArkadeReader> {\n return this.wallet.getArkadeReader();\n }\n\n getArkadeBroadcaster(): Promise<ArkadeBroadcaster> {\n return this.wallet.getArkadeBroadcaster();\n }\n\n get oneShotSubmit(): boolean {\n return this.wallet.oneShotSubmit;\n }\n\n getBalance(): Promise<WalletBalance> {\n return this.wallet.getBalance();\n }\n\n getVtxos(filter?: GetVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getVtxos(filter);\n }\n\n getSpendableVtxos(filter?: GetSpendableVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getSpendableVtxos(filter);\n }\n\n getBoardingUtxos(): Promise<ExtendedCoin[]> {\n return this.wallet.getBoardingUtxos();\n }\n\n getTransactionHistory(): Promise<ArkTransaction[]> {\n return this.wallet.getTransactionHistory();\n }\n\n get activity(): ActivityRegistry {\n return this.wallet.activity;\n }\n\n getActivityHistory(): Promise<Activity[]> {\n return this.wallet.getActivityHistory();\n }\n\n getContractManager(): Promise<IContractManager> {\n return this.wallet.getContractManager();\n }\n\n // Descriptor surface, delegated like everything else here. Without these\n // the structural probes see a wallet with no HD state, so an Expo wallet\n // running `walletMode: 'hd'` would bind every artifact to its baseline\n // identity key — reusing one key across swaps while its receive addresses\n // rotate, and never allocating the indices a restore scan looks for.\n\n getCurrentSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getCurrentSigningDescriptor();\n }\n\n getNextSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getNextSigningDescriptor();\n }\n\n /** @see Wallet.getNewAddresses */\n getNewAddresses(opts?: GetNewAddressesOptions): Promise<NewAddress[]> {\n return this.wallet.getNewAddresses(opts);\n }\n\n getUsedSigningDescriptors(opts?: { lookAhead?: number }): Promise<string[]> {\n return this.wallet.getUsedSigningDescriptors(opts);\n }\n\n advanceSigningDescriptorWatermark(descriptor: string): Promise<void> {\n return this.wallet.advanceSigningDescriptorWatermark(descriptor);\n }\n\n signerForDescriptor(descriptor: string): Promise<Identity> {\n return this.wallet.signerForDescriptor(descriptor);\n }\n\n /**\n * Wallet-level provider-connection freshness, delegated to the wrapped\n * in-process wallet. Synchronous because the Expo foreground wallet is\n * in-process (no worker boundary). Foreground-only: it does not imply any\n * background task can read live foreground state.\n */\n getProviderConnectionState(): ProviderConnectionState {\n return this.wallet.getProviderConnectionState();\n }\n\n getDelegateManager(): Promise<IDelegateManager | undefined> {\n return this.wallet.getDelegateManager();\n }\n\n settle(\n params?: SettleParams,\n eventCallback?: (event: SettlementEvent) => void,\n ): Promise<string> {\n return this.wallet.settle(params, eventCallback);\n }\n\n send(...args: [SendParams] | [Recipient, ...Recipient[]]): Promise<string> {\n return this.wallet.send(...args);\n }\n\n get assetManager(): IAssetManager {\n return this.wallet.assetManager;\n }\n\n /** @see WalletConfig.concurrentSpending */\n get concurrentSpending(): boolean {\n return this.wallet.concurrentSpending;\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, a3 as DescriptorProvider, a4 as DescriptorSigningRequest, a5 as Transaction, l as GetNewAddressesOptions, m as NewAddress, a as Identity, x as RelativeTimelock, a6 as Network, a7 as BatchStartedEvent, a8 as TreeSigningStartedEvent, a9 as TxTree, aa as TreeNoncesEvent, ab as BatchFinalizationEvent, ac as BatchFinalizedEvent, ad as BatchFailedEvent, ae as TreeTxEvent, af as TreeSignatureEvent, o as SettlementEvent, b as WalletConfig, C as ContractRepository, k as IContractManager, ag as IReadonlyWallet, ah as ReadonlyIdentity, ai as OnchainProvider, v as ArkProvider, w as IndexerProvider, aj as DelegateProvider, ak as ReadonlyWalletConfig, Y as IntentRepository, $ as VirtualTxRepository, al as ExitCaptureMode, am as ExitDataSource, i as ActivityRegistry, an as IReadonlyAssetManager, ao as ContractSyncState, ap as RecipientArkadeAddressContext, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, aq as EsploraProvider, ar as NetworkName, as as ArkAddress, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, at as ContractWithVtxos, au as selectPendingRecoveryOutpoints, j as Activity, av as Coin, aw as ContractManager, ax as ContractManagerConfig, I as IWallet, ay as CSVMultisigTapscript, az as SettlementConfig, d as ArkadeBroadcaster, q as IAssetManager, aA as VtxoManager, n as IDelegateManager, S as SettleParams, R as Recipient, aB as SignerSession, aC as SignedIntent, aD as Intent, p as SendParams, aE as TimeHeight } from './index-
|
|
1
|
+
import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, a3 as DescriptorProvider, a4 as DescriptorSigningRequest, a5 as Transaction, l as GetNewAddressesOptions, m as NewAddress, a as Identity, x as RelativeTimelock, a6 as Network, a7 as BatchStartedEvent, a8 as TreeSigningStartedEvent, a9 as TxTree, aa as TreeNoncesEvent, ab as BatchFinalizationEvent, ac as BatchFinalizedEvent, ad as BatchFailedEvent, ae as TreeTxEvent, af as TreeSignatureEvent, o as SettlementEvent, b as WalletConfig, C as ContractRepository, k as IContractManager, ag as IReadonlyWallet, ah as ReadonlyIdentity, ai as OnchainProvider, v as ArkProvider, w as IndexerProvider, aj as DelegateProvider, ak as ReadonlyWalletConfig, Y as IntentRepository, $ as VirtualTxRepository, al as ExitCaptureMode, am as ExitDataSource, i as ActivityRegistry, an as IReadonlyAssetManager, ao as ContractSyncState, ap as RecipientArkadeAddressContext, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, aq as EsploraProvider, ar as NetworkName, as as ArkAddress, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, at as ContractWithVtxos, au as selectPendingRecoveryOutpoints, j as Activity, av as Coin, aw as ContractManager, ax as ContractManagerConfig, I as IWallet, ay as CSVMultisigTapscript, az as SettlementConfig, d as ArkadeBroadcaster, q as IAssetManager, aA as VtxoManager, n as IDelegateManager, S as SettleParams, R as Recipient, aB as SignerSession, aC as SignedIntent, aD as Intent, p as SendParams, aE as TimeHeight } from './index-BURzbRup.cjs';
|
|
2
2
|
import { TransactionOutput } from '@scure/btc-signer/psbt.js';
|
|
3
3
|
import { Bytes } from '@scure/btc-signer/utils.js';
|
|
4
|
-
import { D as DefaultVtxo, a as DelegateVtxo } from './delegate-
|
|
4
|
+
import { D as DefaultVtxo, a as DelegateVtxo } from './delegate-ByfKszb6.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* IndexedDB-based implementation of WalletRepository.
|
|
@@ -1138,9 +1138,10 @@ declare class ReadonlyWallet implements IReadonlyWallet {
|
|
|
1138
1138
|
*/
|
|
1139
1139
|
getBoardingUtxos(): Promise<ExtendedCoin[]>;
|
|
1140
1140
|
/**
|
|
1141
|
-
* @internal {@link getBoardingUtxos} minus those an in-flight settle is spending
|
|
1142
|
-
* picks. The getter itself lists them: callers that mirror it
|
|
1143
|
-
* broadcasts, balances) must not see a settle's inputs vanish, and then
|
|
1141
|
+
* @internal {@link getBoardingUtxos} minus those an in-flight settle is spending or an
|
|
1142
|
+
* unresolved intent locks, for SDK picks. The getter itself lists them: callers that mirror it
|
|
1143
|
+
* (the worker's cache and broadcasts, balances) must not see a settle's inputs vanish, and then
|
|
1144
|
+
* stay gone if it fails.
|
|
1144
1145
|
*/
|
|
1145
1146
|
getSelectableBoardingUtxos(): Promise<ExtendedCoin[]>;
|
|
1146
1147
|
getStoredBoardingUtxos(): Promise<ExtendedCoin[]>;
|
|
@@ -1241,6 +1242,8 @@ declare class Wallet extends ReadonlyWallet implements IWallet, HDWalletCapable,
|
|
|
1241
1242
|
readonly forfeitPubkey: Bytes;
|
|
1242
1243
|
/** Overrides for the `batchExpiry` bounds; defaults derive from `network`. */
|
|
1243
1244
|
protected readonly batchExpiryPolicy?: Partial<BatchExpiryPolicy> | undefined;
|
|
1245
|
+
/** @see WalletConfig.oneShotSubmit */
|
|
1246
|
+
readonly oneShotSubmit: boolean;
|
|
1244
1247
|
static MIN_FEE_RATE: number;
|
|
1245
1248
|
readonly identity: Identity;
|
|
1246
1249
|
private readonly _delegateManager?;
|
|
@@ -1526,7 +1529,9 @@ declare class Wallet extends ReadonlyWallet implements IWallet, HDWalletCapable,
|
|
|
1526
1529
|
getArkadeBroadcaster(): Promise<ArkadeBroadcaster>;
|
|
1527
1530
|
protected constructor(identity: Identity, network: Network, onchainProvider: OnchainProvider, arkProvider: ArkProvider, indexerProvider: IndexerProvider, arkServerPublicKey: Bytes, offchainTapscript: DefaultVtxo.Script | DelegateVtxo.Script, boardingTapscript: DefaultVtxo.Script, serverUnrollScript: CSVMultisigTapscript.Type, forfeitOutputScript: Bytes, forfeitPubkey: Bytes, dustAmount: bigint, walletRepository: WalletRepository, contractRepository: ContractRepository, delegateProvider?: DelegateProvider, watcherConfig?: WalletConfig["watcherConfig"], settlementConfig?: WalletConfig["settlementConfig"], walletContractTimelocks?: RelativeTimelock[], receiveRotator?: WalletReceiveRotator, descriptorProvider?: DescriptorProvider, keyring?: KeyringDescriptorProvider, lookAheadWindow?: number,
|
|
1528
1531
|
/** Overrides for the `batchExpiry` bounds; defaults derive from `network`. */
|
|
1529
|
-
batchExpiryPolicy?: Partial<BatchExpiryPolicy> | undefined
|
|
1532
|
+
batchExpiryPolicy?: Partial<BatchExpiryPolicy> | undefined,
|
|
1533
|
+
/** @see WalletConfig.oneShotSubmit */
|
|
1534
|
+
oneShotSubmit?: boolean);
|
|
1530
1535
|
get assetManager(): IAssetManager;
|
|
1531
1536
|
getVtxoManager(): Promise<VtxoManager>;
|
|
1532
1537
|
dispose(): Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, a3 as DescriptorProvider, a4 as DescriptorSigningRequest, a5 as Transaction, l as GetNewAddressesOptions, m as NewAddress, a as Identity, x as RelativeTimelock, a6 as Network, a7 as BatchStartedEvent, a8 as TreeSigningStartedEvent, a9 as TxTree, aa as TreeNoncesEvent, ab as BatchFinalizationEvent, ac as BatchFinalizedEvent, ad as BatchFailedEvent, ae as TreeTxEvent, af as TreeSignatureEvent, o as SettlementEvent, b as WalletConfig, C as ContractRepository, k as IContractManager, ag as IReadonlyWallet, ah as ReadonlyIdentity, ai as OnchainProvider, v as ArkProvider, w as IndexerProvider, aj as DelegateProvider, ak as ReadonlyWalletConfig, Y as IntentRepository, $ as VirtualTxRepository, al as ExitCaptureMode, am as ExitDataSource, i as ActivityRegistry, an as IReadonlyAssetManager, ao as ContractSyncState, ap as RecipientArkadeAddressContext, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, aq as EsploraProvider, ar as NetworkName, as as ArkAddress, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, at as ContractWithVtxos, au as selectPendingRecoveryOutpoints, j as Activity, av as Coin, aw as ContractManager, ax as ContractManagerConfig, I as IWallet, ay as CSVMultisigTapscript, az as SettlementConfig, d as ArkadeBroadcaster, q as IAssetManager, aA as VtxoManager, n as IDelegateManager, S as SettleParams, R as Recipient, aB as SignerSession, aC as SignedIntent, aD as Intent, p as SendParams, aE as TimeHeight } from './index-
|
|
1
|
+
import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, a3 as DescriptorProvider, a4 as DescriptorSigningRequest, a5 as Transaction, l as GetNewAddressesOptions, m as NewAddress, a as Identity, x as RelativeTimelock, a6 as Network, a7 as BatchStartedEvent, a8 as TreeSigningStartedEvent, a9 as TxTree, aa as TreeNoncesEvent, ab as BatchFinalizationEvent, ac as BatchFinalizedEvent, ad as BatchFailedEvent, ae as TreeTxEvent, af as TreeSignatureEvent, o as SettlementEvent, b as WalletConfig, C as ContractRepository, k as IContractManager, ag as IReadonlyWallet, ah as ReadonlyIdentity, ai as OnchainProvider, v as ArkProvider, w as IndexerProvider, aj as DelegateProvider, ak as ReadonlyWalletConfig, Y as IntentRepository, $ as VirtualTxRepository, al as ExitCaptureMode, am as ExitDataSource, i as ActivityRegistry, an as IReadonlyAssetManager, ao as ContractSyncState, ap as RecipientArkadeAddressContext, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, aq as EsploraProvider, ar as NetworkName, as as ArkAddress, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, at as ContractWithVtxos, au as selectPendingRecoveryOutpoints, j as Activity, av as Coin, aw as ContractManager, ax as ContractManagerConfig, I as IWallet, ay as CSVMultisigTapscript, az as SettlementConfig, d as ArkadeBroadcaster, q as IAssetManager, aA as VtxoManager, n as IDelegateManager, S as SettleParams, R as Recipient, aB as SignerSession, aC as SignedIntent, aD as Intent, p as SendParams, aE as TimeHeight } from './index-BURzbRup.js';
|
|
2
2
|
import { TransactionOutput } from '@scure/btc-signer/psbt.js';
|
|
3
3
|
import { Bytes } from '@scure/btc-signer/utils.js';
|
|
4
|
-
import { D as DefaultVtxo, a as DelegateVtxo } from './delegate-
|
|
4
|
+
import { D as DefaultVtxo, a as DelegateVtxo } from './delegate-Cd28gxpM.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* IndexedDB-based implementation of WalletRepository.
|
|
@@ -1138,9 +1138,10 @@ declare class ReadonlyWallet implements IReadonlyWallet {
|
|
|
1138
1138
|
*/
|
|
1139
1139
|
getBoardingUtxos(): Promise<ExtendedCoin[]>;
|
|
1140
1140
|
/**
|
|
1141
|
-
* @internal {@link getBoardingUtxos} minus those an in-flight settle is spending
|
|
1142
|
-
* picks. The getter itself lists them: callers that mirror it
|
|
1143
|
-
* broadcasts, balances) must not see a settle's inputs vanish, and then
|
|
1141
|
+
* @internal {@link getBoardingUtxos} minus those an in-flight settle is spending or an
|
|
1142
|
+
* unresolved intent locks, for SDK picks. The getter itself lists them: callers that mirror it
|
|
1143
|
+
* (the worker's cache and broadcasts, balances) must not see a settle's inputs vanish, and then
|
|
1144
|
+
* stay gone if it fails.
|
|
1144
1145
|
*/
|
|
1145
1146
|
getSelectableBoardingUtxos(): Promise<ExtendedCoin[]>;
|
|
1146
1147
|
getStoredBoardingUtxos(): Promise<ExtendedCoin[]>;
|
|
@@ -1241,6 +1242,8 @@ declare class Wallet extends ReadonlyWallet implements IWallet, HDWalletCapable,
|
|
|
1241
1242
|
readonly forfeitPubkey: Bytes;
|
|
1242
1243
|
/** Overrides for the `batchExpiry` bounds; defaults derive from `network`. */
|
|
1243
1244
|
protected readonly batchExpiryPolicy?: Partial<BatchExpiryPolicy> | undefined;
|
|
1245
|
+
/** @see WalletConfig.oneShotSubmit */
|
|
1246
|
+
readonly oneShotSubmit: boolean;
|
|
1244
1247
|
static MIN_FEE_RATE: number;
|
|
1245
1248
|
readonly identity: Identity;
|
|
1246
1249
|
private readonly _delegateManager?;
|
|
@@ -1526,7 +1529,9 @@ declare class Wallet extends ReadonlyWallet implements IWallet, HDWalletCapable,
|
|
|
1526
1529
|
getArkadeBroadcaster(): Promise<ArkadeBroadcaster>;
|
|
1527
1530
|
protected constructor(identity: Identity, network: Network, onchainProvider: OnchainProvider, arkProvider: ArkProvider, indexerProvider: IndexerProvider, arkServerPublicKey: Bytes, offchainTapscript: DefaultVtxo.Script | DelegateVtxo.Script, boardingTapscript: DefaultVtxo.Script, serverUnrollScript: CSVMultisigTapscript.Type, forfeitOutputScript: Bytes, forfeitPubkey: Bytes, dustAmount: bigint, walletRepository: WalletRepository, contractRepository: ContractRepository, delegateProvider?: DelegateProvider, watcherConfig?: WalletConfig["watcherConfig"], settlementConfig?: WalletConfig["settlementConfig"], walletContractTimelocks?: RelativeTimelock[], receiveRotator?: WalletReceiveRotator, descriptorProvider?: DescriptorProvider, keyring?: KeyringDescriptorProvider, lookAheadWindow?: number,
|
|
1528
1531
|
/** Overrides for the `batchExpiry` bounds; defaults derive from `network`. */
|
|
1529
|
-
batchExpiryPolicy?: Partial<BatchExpiryPolicy> | undefined
|
|
1532
|
+
batchExpiryPolicy?: Partial<BatchExpiryPolicy> | undefined,
|
|
1533
|
+
/** @see WalletConfig.oneShotSubmit */
|
|
1534
|
+
oneShotSubmit?: boolean);
|
|
1530
1535
|
get assetManager(): IAssetManager;
|
|
1531
1536
|
getVtxoManager(): Promise<VtxoManager>;
|
|
1532
1537
|
dispose(): Promise<void>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../../chunk-
|
|
5
|
-
require('../../chunk-
|
|
6
|
-
require('../../chunk-
|
|
7
|
-
require('../../chunk-
|
|
3
|
+
var chunk5WRA66RV_cjs = require('../../chunk-5WRA66RV.cjs');
|
|
4
|
+
require('../../chunk-OUTWUYJ4.cjs');
|
|
5
|
+
require('../../chunk-ZMSM3NOH.cjs');
|
|
6
|
+
require('../../chunk-BYPBVHVA.cjs');
|
|
7
|
+
require('../../chunk-KW7ZEWYS.cjs');
|
|
8
8
|
|
|
9
9
|
// src/worker/expo/taskQueue.ts
|
|
10
10
|
var InMemoryTaskQueue = class {
|
|
@@ -120,19 +120,19 @@ var AsyncStorageTaskQueue = class {
|
|
|
120
120
|
|
|
121
121
|
Object.defineProperty(exports, "CONTRACT_POLL_TASK_TYPE", {
|
|
122
122
|
enumerable: true,
|
|
123
|
-
get: function () { return
|
|
123
|
+
get: function () { return chunk5WRA66RV_cjs.CONTRACT_POLL_TASK_TYPE; }
|
|
124
124
|
});
|
|
125
125
|
Object.defineProperty(exports, "contractPollProcessor", {
|
|
126
126
|
enumerable: true,
|
|
127
|
-
get: function () { return
|
|
127
|
+
get: function () { return chunk5WRA66RV_cjs.contractPollProcessor; }
|
|
128
128
|
});
|
|
129
129
|
Object.defineProperty(exports, "createTaskDependencies", {
|
|
130
130
|
enumerable: true,
|
|
131
|
-
get: function () { return
|
|
131
|
+
get: function () { return chunk5WRA66RV_cjs.createTaskDependencies; }
|
|
132
132
|
});
|
|
133
133
|
Object.defineProperty(exports, "runTasks", {
|
|
134
134
|
enumerable: true,
|
|
135
|
-
get: function () { return
|
|
135
|
+
get: function () { return chunk5WRA66RV_cjs.runTasks; }
|
|
136
136
|
});
|
|
137
137
|
exports.AsyncStorageTaskQueue = AsyncStorageTaskQueue;
|
|
138
138
|
exports.InMemoryTaskQueue = InMemoryTaskQueue;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { T as TaskProcessor } from '../../taskRunner-
|
|
2
|
-
export { C as CreateTaskDependenciesOptions, I as InMemoryTaskQueue, b as TaskDependencies, c as TaskItem, a as TaskQueue, d as TaskResult, e as createTaskDependencies, r as runTasks } from '../../taskRunner-
|
|
3
|
-
export { a as AsyncStorageLike, A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-
|
|
4
|
-
import '../../index-
|
|
1
|
+
import { T as TaskProcessor } from '../../taskRunner-i56-drQV.cjs';
|
|
2
|
+
export { C as CreateTaskDependenciesOptions, I as InMemoryTaskQueue, b as TaskDependencies, c as TaskItem, a as TaskQueue, d as TaskResult, e as createTaskDependencies, r as runTasks } from '../../taskRunner-i56-drQV.cjs';
|
|
3
|
+
export { a as AsyncStorageLike, A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-C9PkPcW_.cjs';
|
|
4
|
+
import '../../index-BURzbRup.cjs';
|
|
5
5
|
import '@scure/btc-signer/utils.js';
|
|
6
6
|
import '@scure/btc-signer/psbt.js';
|
|
7
7
|
import '@scure/btc-signer';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { T as TaskProcessor } from '../../taskRunner-
|
|
2
|
-
export { C as CreateTaskDependenciesOptions, I as InMemoryTaskQueue, b as TaskDependencies, c as TaskItem, a as TaskQueue, d as TaskResult, e as createTaskDependencies, r as runTasks } from '../../taskRunner-
|
|
3
|
-
export { a as AsyncStorageLike, A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-
|
|
4
|
-
import '../../index-
|
|
1
|
+
import { T as TaskProcessor } from '../../taskRunner-BaNCSxqK.js';
|
|
2
|
+
export { C as CreateTaskDependenciesOptions, I as InMemoryTaskQueue, b as TaskDependencies, c as TaskItem, a as TaskQueue, d as TaskResult, e as createTaskDependencies, r as runTasks } from '../../taskRunner-BaNCSxqK.js';
|
|
3
|
+
export { a as AsyncStorageLike, A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-B3U5gQ-i.js';
|
|
4
|
+
import '../../index-BURzbRup.js';
|
|
5
5
|
import '@scure/btc-signer/utils.js';
|
|
6
6
|
import '@scure/btc-signer/psbt.js';
|
|
7
7
|
import '@scure/btc-signer';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { CONTRACT_POLL_TASK_TYPE, contractPollProcessor, createTaskDependencies, runTasks } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
1
|
+
export { CONTRACT_POLL_TASK_TYPE, contractPollProcessor, createTaskDependencies, runTasks } from '../../chunk-Y4BL3YYX.js';
|
|
2
|
+
import '../../chunk-HAQAWBYG.js';
|
|
3
|
+
import '../../chunk-6FL4N4S2.js';
|
|
4
|
+
import '../../chunk-P7B4LQ3H.js';
|
|
5
|
+
import '../../chunk-OPX2HRWM.js';
|
|
6
6
|
|
|
7
7
|
// src/worker/expo/taskQueue.ts
|
|
8
8
|
var InMemoryTaskQueue = class {
|