@metamask/snaps-simulation 4.3.1 → 4.3.2
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/CHANGELOG.md +10 -1
- package/dist/controllers.cjs +3 -4
- package/dist/controllers.cjs.map +1 -1
- package/dist/controllers.mjs +1 -1
- package/dist/controllers.mjs.map +1 -1
- package/dist/files.cjs +4 -5
- package/dist/files.cjs.map +1 -1
- package/dist/helpers.cjs +1 -2
- package/dist/helpers.cjs.map +1 -1
- package/dist/interface.cjs +18 -19
- package/dist/interface.cjs.map +1 -1
- package/dist/interface.d.cts +2 -2
- package/dist/interface.d.cts.map +1 -1
- package/dist/interface.d.mts +2 -2
- package/dist/interface.d.mts.map +1 -1
- package/dist/interface.mjs +2 -2
- package/dist/interface.mjs.map +1 -1
- package/dist/logger.d.cts +0 -1
- package/dist/logger.d.cts.map +1 -1
- package/dist/logger.d.mts +0 -1
- package/dist/logger.d.mts.map +1 -1
- package/dist/methods/hooks/chain.cjs +1 -2
- package/dist/methods/hooks/chain.cjs.map +1 -1
- package/dist/methods/hooks/chain.d.cts +12 -1
- package/dist/methods/hooks/chain.d.cts.map +1 -1
- package/dist/methods/hooks/chain.d.mts +12 -1
- package/dist/methods/hooks/chain.d.mts.map +1 -1
- package/dist/methods/hooks/end-trace.cjs +1 -2
- package/dist/methods/hooks/end-trace.cjs.map +1 -1
- package/dist/methods/hooks/end-trace.d.cts +12 -1
- package/dist/methods/hooks/end-trace.d.cts.map +1 -1
- package/dist/methods/hooks/end-trace.d.mts +12 -1
- package/dist/methods/hooks/end-trace.d.mts.map +1 -1
- package/dist/methods/hooks/get-mnemonic.cjs +1 -2
- package/dist/methods/hooks/get-mnemonic.cjs.map +1 -1
- package/dist/methods/hooks/get-mnemonic.d.cts.map +1 -1
- package/dist/methods/hooks/get-mnemonic.d.mts.map +1 -1
- package/dist/methods/hooks/get-preferences.cjs +1 -2
- package/dist/methods/hooks/get-preferences.cjs.map +1 -1
- package/dist/methods/hooks/get-snap.cjs +1 -2
- package/dist/methods/hooks/get-snap.cjs.map +1 -1
- package/dist/methods/hooks/get-snap.d.cts.map +1 -1
- package/dist/methods/hooks/get-snap.d.mts.map +1 -1
- package/dist/methods/hooks/notifications.cjs +2 -3
- package/dist/methods/hooks/notifications.cjs.map +1 -1
- package/dist/methods/hooks/notifications.d.cts +26 -2
- package/dist/methods/hooks/notifications.d.cts.map +1 -1
- package/dist/methods/hooks/notifications.d.mts +26 -2
- package/dist/methods/hooks/notifications.d.mts.map +1 -1
- package/dist/methods/hooks/permitted/state.cjs +3 -4
- package/dist/methods/hooks/permitted/state.cjs.map +1 -1
- package/dist/methods/hooks/permitted/state.d.cts +31 -3
- package/dist/methods/hooks/permitted/state.d.cts.map +1 -1
- package/dist/methods/hooks/permitted/state.d.mts +31 -3
- package/dist/methods/hooks/permitted/state.d.mts.map +1 -1
- package/dist/methods/hooks/request-user-approval.cjs +1 -2
- package/dist/methods/hooks/request-user-approval.cjs.map +1 -1
- package/dist/methods/hooks/request-user-approval.d.cts +15 -1
- package/dist/methods/hooks/request-user-approval.d.cts.map +1 -1
- package/dist/methods/hooks/request-user-approval.d.mts +15 -1
- package/dist/methods/hooks/request-user-approval.d.mts.map +1 -1
- package/dist/methods/hooks/start-trace.cjs +1 -2
- package/dist/methods/hooks/start-trace.cjs.map +1 -1
- package/dist/methods/hooks/start-trace.d.cts +12 -1
- package/dist/methods/hooks/start-trace.d.cts.map +1 -1
- package/dist/methods/hooks/start-trace.d.mts +12 -1
- package/dist/methods/hooks/start-trace.d.mts.map +1 -1
- package/dist/methods/hooks/state.cjs +3 -4
- package/dist/methods/hooks/state.cjs.map +1 -1
- package/dist/methods/hooks/state.d.cts +37 -3
- package/dist/methods/hooks/state.d.cts.map +1 -1
- package/dist/methods/hooks/state.d.mts +37 -3
- package/dist/methods/hooks/state.d.mts.map +1 -1
- package/dist/methods/hooks/track-error.cjs +1 -2
- package/dist/methods/hooks/track-error.cjs.map +1 -1
- package/dist/methods/hooks/track-error.d.cts +11 -1
- package/dist/methods/hooks/track-error.d.cts.map +1 -1
- package/dist/methods/hooks/track-error.d.mts +11 -1
- package/dist/methods/hooks/track-error.d.mts.map +1 -1
- package/dist/methods/hooks/track-event.cjs +1 -2
- package/dist/methods/hooks/track-event.cjs.map +1 -1
- package/dist/methods/hooks/track-event.d.cts +12 -5
- package/dist/methods/hooks/track-event.d.cts.map +1 -1
- package/dist/methods/hooks/track-event.d.mts +12 -5
- package/dist/methods/hooks/track-event.d.mts.map +1 -1
- package/dist/methods/specifications.cjs +4 -5
- package/dist/methods/specifications.cjs.map +1 -1
- package/dist/middleware/engine.cjs +1 -2
- package/dist/middleware/engine.cjs.map +1 -1
- package/dist/middleware/internal-methods/accounts.cjs +1 -2
- package/dist/middleware/internal-methods/accounts.cjs.map +1 -1
- package/dist/middleware/internal-methods/chain-id.cjs +1 -2
- package/dist/middleware/internal-methods/chain-id.cjs.map +1 -1
- package/dist/middleware/internal-methods/middleware.cjs +1 -2
- package/dist/middleware/internal-methods/middleware.cjs.map +1 -1
- package/dist/middleware/internal-methods/net-version.cjs +1 -2
- package/dist/middleware/internal-methods/net-version.cjs.map +1 -1
- package/dist/middleware/internal-methods/switch-ethereum-chain.cjs +1 -2
- package/dist/middleware/internal-methods/switch-ethereum-chain.cjs.map +1 -1
- package/dist/middleware/mock.cjs +1 -2
- package/dist/middleware/mock.cjs.map +1 -1
- package/dist/middleware/multichain/create-session.cjs +1 -2
- package/dist/middleware/multichain/create-session.cjs.map +1 -1
- package/dist/middleware/multichain/create-session.d.cts +1 -1
- package/dist/middleware/multichain/create-session.d.mts +1 -1
- package/dist/middleware/multichain/get-session.cjs +1 -2
- package/dist/middleware/multichain/get-session.cjs.map +1 -1
- package/dist/middleware/multichain/invoke-method.cjs +1 -2
- package/dist/middleware/multichain/invoke-method.cjs.map +1 -1
- package/dist/middleware/multichain/middleware.cjs +1 -2
- package/dist/middleware/multichain/middleware.cjs.map +1 -1
- package/dist/middleware/multichain/revoke-session.cjs +1 -2
- package/dist/middleware/multichain/revoke-session.cjs.map +1 -1
- package/dist/middleware/multichain/utils.cjs +1 -2
- package/dist/middleware/multichain/utils.cjs.map +1 -1
- package/dist/middleware/provider.cjs +1 -2
- package/dist/middleware/provider.cjs.map +1 -1
- package/dist/options.cjs +1 -2
- package/dist/options.cjs.map +1 -1
- package/dist/options.d.cts +4 -4
- package/dist/options.d.mts +4 -4
- package/dist/request.cjs +3 -4
- package/dist/request.cjs.map +1 -1
- package/dist/simulation.cjs +9 -10
- package/dist/simulation.cjs.map +1 -1
- package/dist/simulation.d.cts.map +1 -1
- package/dist/simulation.d.mts.map +1 -1
- package/dist/simulation.mjs +4 -4
- package/dist/simulation.mjs.map +1 -1
- package/dist/store/chain.d.cts.map +1 -1
- package/dist/store/chain.d.mts.map +1 -1
- package/dist/store/mocks.d.cts.map +1 -1
- package/dist/store/mocks.d.mts.map +1 -1
- package/dist/store/notifications.d.cts.map +1 -1
- package/dist/store/notifications.d.mts.map +1 -1
- package/dist/store/state.cjs +2 -2
- package/dist/store/state.cjs.map +1 -1
- package/dist/store/state.d.cts +4 -7
- package/dist/store/state.d.cts.map +1 -1
- package/dist/store/state.d.mts +4 -7
- package/dist/store/state.d.mts.map +1 -1
- package/dist/store/store.cjs +1 -2
- package/dist/store/store.cjs.map +1 -1
- package/dist/store/store.d.cts +1 -1
- package/dist/store/store.d.mts +1 -1
- package/dist/store/trackables.d.cts +6 -6
- package/dist/store/trackables.d.cts.map +1 -1
- package/dist/store/trackables.d.mts +6 -6
- package/dist/store/trackables.d.mts.map +1 -1
- package/dist/store/ui.d.cts.map +1 -1
- package/dist/store/ui.d.mts.map +1 -1
- package/dist/structs.cjs +3 -3
- package/dist/structs.cjs.map +1 -1
- package/dist/structs.mjs +1 -1
- package/dist/structs.mjs.map +1 -1
- package/dist/utils/account.d.cts.map +1 -1
- package/dist/utils/account.d.mts.map +1 -1
- package/dist/utils/errors.cjs +1 -2
- package/dist/utils/errors.cjs.map +1 -1
- package/dist/validation.cjs +7 -8
- package/dist/validation.cjs.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulation.d.mts","sourceRoot":"","sources":["../src/simulation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"simulation.d.mts","sourceRoot":"","sources":["../src/simulation.ts"],"names":[],"mappings":"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"}
|
package/dist/simulation.mjs
CHANGED
|
@@ -270,12 +270,12 @@ export function registerActions(controllerMessenger, runSaga, options, snapId, a
|
|
|
270
270
|
// @ts-expect-error - These are partial accounts with only the necessary
|
|
271
271
|
// data used by the interface controller.
|
|
272
272
|
options.accounts.map((account) => addSnapMetadataToAccount(account, snapId)));
|
|
273
|
-
controllerMessenger.registerActionHandler('
|
|
273
|
+
controllerMessenger.registerActionHandler('AssetsController:getState', () => ({
|
|
274
274
|
// @ts-expect-error - These are partial assets with only the
|
|
275
275
|
// necessary data used by the interface controller.
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
acc[account.id] = account.assets ?? [];
|
|
276
|
+
assetsInfo: options.assets,
|
|
277
|
+
assetsBalance: options.accounts.reduce((acc, account) => {
|
|
278
|
+
acc[account.id] = Object.fromEntries((account.assets ?? []).map((asset) => [asset, {}]));
|
|
279
279
|
return acc;
|
|
280
280
|
}, {}),
|
|
281
281
|
}));
|
package/dist/simulation.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulation.mjs","sourceRoot":"","sources":["../src/simulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,6CAA6C;AAE1E,OAAO,EAAE,cAAc,EAAE,2BAA2B;AAOpD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,4BAA4B;AACpE,OAAO,EACL,2BAA2B,EAG5B,wCAAwC;AAEzC,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,0BAA0B,EAC1B,cAAc,EACf,yCAAyC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,oCAAoC;AASpE,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AACjD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,wBAAwB;AAGhE,OAAO,EAAE,QAAQ,EAAE,wBAAwB;AAE3C,OAAO,EAAE,MAAM,EAAE,2BAA2B;AAG5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,0BAAsB;AAC7D,OAAO,EAAE,WAAW,EAAE,oBAAgB;AAEtC,OAAO,EAAE,UAAU,EAAE,sBAAkB;AACvC,OAAO,EAAE,eAAe,EAAE,wBAAoB;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,4BAAkB;AACxD,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,EAC3B,gCAAgC,EAChC,qCAAqC,EACrC,mCAAmC,EACnC,sCAAsC,EACtC,oCAAoC,EACpC,sCAAsC,EACtC,uCAAuC,EACxC,kCAAwB;AACzB,OAAO,EAAE,mBAAmB,EAAE,+BAAqB;AAMnD,OAAO,EAAE,UAAU,EAAE,sBAAkB;AAOvC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,0BAAgB;AAC3D,OAAO,EAAE,wBAAwB,EAAE,4BAAwB;AA4M3D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAG/B,MAAc,EACd,EACE,gBAAgB,EAChB,uBAAuB,EACvB,OAAO,EAAE,UAAU,GAAG,EAAE,MACgB,EAAE;IAE5C,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEvC,oBAAoB;IACpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAC1C,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEpD,sBAAsB;IACtB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,mBAAmB,GAAG,IAAI,SAAS,CAA6B;QACpE,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,eAAe,CACb,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,MAAM,EACN,SAAS,CAAC,cAAc,CACzB,CAAC;IAEF,yCAAyC;IACzC,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAG,iBAAiB,CACtC,MAAM,EACN,mBAAmB,EACnB,OAAO,CACR,CAAC;IAEF,MAAM,eAAe,GAAG,kBAAkB,CACxC,MAAM,EACN,OAAO,EACP,mBAAmB,CACpB,CAAC;IAEF,MAAM,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAC;QACzE,mBAAmB;QACnB,KAAK,EAAE,eAAe;QACtB,OAAO;QACP,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,MAAM;QACN,SAAS,EAAE,mBAAmB;QAC9B,KAAK;QACL,eAAe;QACf,cAAc;QACd,eAAe;QACf,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;QAC3C,MAAM;QACN,SAAS,EAAE,mBAAmB;QAC9B,KAAK;QACL,eAAe;QACf,cAAc;QACd,eAAe;QACf,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,aAAa,GAAG,gBAAgB,IAAI,0BAA0B,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;QAChC,GAAG,uBAAuB;QAC1B,SAAS,EAAE,IAAI,SAAS,CAAC;YACvB,SAAS,EAAE,kBAAkB;YAC7B,MAAM,EAAE,mBAAmB;SAC5B,CAAC;QACF,iBAAiB,EAAE,CAAC,OAAe,EAAE,SAAiB,EAAE,EAAE;YACxD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtD,wDAAwD;YACxD,4BAA4B;YAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACtD,QAAQ,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAAG,GAAG,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC;YAC1E,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;gBAClD,MAAM,EAAE,gBAAgB;aACzB,CAAC,CAAC;YAEH,4BAA4B;YAC5B,QAAQ,CACN,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACtD,QAAQ,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,qEAAqE;IACrE,YAAY;IACZ,MAAM,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QACpD,oBAAoB;QACpB,yBAAyB;KAC1B,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,OAAO,CAAC,WAAW,CAAC;QACxB,MAAM;QACN,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjD,UAAU,EAAE,MAAM,aAAa,CAAC,oBAAoB,EAAE,MAAM,CAAC;KAC9D,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC;QACzB,MAAM;QACN,KAAK;QACL,mBAAmB;QACnB,OAAO;QACP,gBAAgB,EAAE,OAAO;QACzB,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,MAAM;QACN,KAAK;QACL,gBAAgB,EAAE,OAAO;QACzB,mBAAmB;QACnB,OAAO;QACP,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA0B,EAC1B,KAAY,EACZ,OAAwB;IAExB,OAAO;QACL,WAAW,EAAE,4BAA4B,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACvE,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;QACxB,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC;QACvC,eAAe,EAAE,gCAAgC,CAAC,OAAO,CAAC;QAC1D,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,mBAA4C,EAC5C,OAAwB;IAExB,OAAO;QACL,gBAAgB,EAAE,YAAY,EAAE;QAChC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;QACvB,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB;QAElC,wBAAwB,EAAE,GAAG,EAAE,CAAC,EAAE;QAElC,UAAU,EAAE,2BAA2B,CAAC,OAAO,CAAC;QAChD,UAAU,EAAE,2BAA2B,CAAC,OAAO,CAAC;QAChD,UAAU,EAAE,2BAA2B,CAAC,OAAO,CAAC;QAChD,QAAQ,EAAE,yBAAyB,CAAC,OAAO,CAAC;QAE5C,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;gBAC9B,SAAS,EAAE,GAAG,MAAM,YAAY;gBAChC,MAAM,EAAE,mBAAmB;aAC5B,CAAC,CAAC;YAEH,mBAAmB,CAAC,QAAQ,CAAC;gBAC3B,OAAO,EAAE,OAAkB;gBAC3B,MAAM,EAAE,MAAiB;gBACzB,SAAS;aACV,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,OAA0B,EAC1B,mBAA4C;IAE5C,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ;QACnC,SAAS,EAAE,CAAC,UAAkB,EAAE,UAAkB,EAAE,EAAE;YACpD,IAAI,CAAC;gBACH,OAAO,mBAAmB,CAAC,IAAI,CAC7B,gCAAgC,EAChC,MAAM,EACN,UAAU,EACV,UAAU,CACX,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;oBACjD,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,0BAA0B;gBAC1B,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,gBAAgB,EAAE,CAAC,mBAAyC,EAAE,EAAE;YAC9D,mBAAmB,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBAChE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC3B,mBAAmB;aACpB,CAAC,CAAC;QACL,CAAC;QACD,gBAAgB,EAAE,CAAC,UAAkB,EAAE,EAAE;YACvC,IAAI,CAAC;gBACH,mBAAmB,CAAC,IAAI,CAAC,wCAAwC,EAAE;oBACjE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;oBACjD,OAAO;gBACT,CAAC;gBACD,0BAA0B;gBAC1B,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,mBAA4C,EAC5C,OAAwB,EACxB,OAA0B,EAC1B,MAAc,EACd,cAA6B;IAE7B,mBAAmB,CAAC,qBAAqB,CACvC,+BAA+B,EAC/B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CACvC,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,wCAAwC;IACxC,uEAAuE;IACvE,yCAAyC;IACzC,CAAC,OAAO,EAAE,EAAE;QACV,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC3C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CACzC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CACF,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,iDAAiD;IACjD,uEAAuE;IACvE,yCAAyC;IACzC,GAAG,EAAE;QACH,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC3C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAC9B,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CACF,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,2CAA2C,EAE3C,GAAG,EAAE;IACH,wEAAwE;IACxE,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/B,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAC1C,CACJ,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,qCAAqC,EACrC,GAAG,EAAE,CAAC,CAAC;QACL,4DAA4D;QAC5D,mDAAmD;QACnD,cAAc,EAAE,OAAO,CAAC,MAAM;QAC9B,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACf,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YACvC,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH;KACF,CAAC,CACH,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,+BAA+B,EAC/B,CAAC,IAAI,EAAE,EAAE;QACP;;;;;WAKG;QACH,QAAQ,CAAC,CAAC,uBAAuB;YAC/B,MAAM,gBAAgB,GAAc,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACtE,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,gBAAgB,GAA0B,OAAO,CACrD,uBAAuB,CACxB,CAAC,MAAM,EAAE,CAAC;QACX,OAAO,CACL,gBAAgB,EAAE,IAAI,KAAK,qBAAqB,CAAC,OAAO;YACxD,gBAAgB,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,CAClC,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,kCAAkC,EAClC,KAAK,EAAE,GAAW,EAAE,KAAc,EAAE,EAAE;QACpC,MAAM,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;QAElD,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CACF,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,+BAA+B;IAC/B,qEAAqE;IACrE,oCAAoC,CAAC,OAAO,CAAC,CAC9C,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,wBAAwB,EACxB,wBAAwB,CAAC,IAAI,CAAC,CAC/B,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,6BAA6B,EAC7B,mCAAmC,CAAC,OAAO,CAAC,CAC7C,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,gCAAgC,EAChC,sCAAsC,CAAC,OAAO,CAAC,CAChD,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,+BAA+B,EAC/B,qCAAqC,CAAC,OAAO,CAAC,CAC/C,CAAC;IAEF,mBAAmB,CAAC,qBAAqB,CACvC,4BAA4B,EAC5B,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAChC,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAC9C,CAAC;IAEF,MAAM,sBAAsB,GAC1B,uCAAuC,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,qBAAqB,GAAG,sCAAsC,CAAC,OAAO,CAAC,CAAC;IAE9E,mBAAmB,CAAC,qBAAqB;IACvC,0FAA0F;IAC1F,0BAA0B,EAC1B,KAAK,EACH,OAAe,EACf,IAAwD,EACxD,GAAG,IAAe,EAClB,EAAE;QACF,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,wBAAwB;gBAC3B,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE;oBACrD,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI,CAAC,CAAC,CAAW;iBAC3B,CAAC,CAAC;YACL,KAAK,uBAAuB;gBAC1B,OAAO,MAAM,qBAAqB,CAChC,IAAI,CAAC,CAAC,CAAW,EACjB,IAAI,CAAC,CAAC,CAAgD,CACvD,CAAC;YACJ,0BAA0B;YAC1B;gBACE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,4BAA4B,CAC9C,OAAO,CAAC,oBAAoB,CAC7B,CAAC;IAEF,mBAAmB,CAAC,qBAAqB;IACvC,wFAAwF;IACxF,4BAA4B,EAC5B,GAAG,EAAE,CAAC,CAAC;QACL,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE;oBACR,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,gCAAgC;iBACvC;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE;oBACR,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,oCAAoC;iBAC3C;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,mBAAmB,CAAC,qBAAqB;IACvC,wFAAwF;IACxF,uCAAuC,EACvC,KAAK,EACH,QAA2D,EAC3D,SAEsB,EACtB,EAAE;QACF,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;YACxC,CAAC,CAAE,QAAQ,CAAC,EAAa;YACzB,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO,MAAM,SAAS,CAAC;YACrB,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,QAAQ;gBACR,IAAI;aACL;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC","sourcesContent":["import { createEngineStream } from '@metamask/json-rpc-middleware-stream';\nimport type { CryptographicFunctions } from '@metamask/key-tree';\nimport { mnemonicToSeed } from '@metamask/key-tree';\nimport type {\n ActionConstraint,\n EventConstraint,\n MockAnyNamespace,\n NamespacedName,\n} from '@metamask/messenger';\nimport { MOCK_ANY_NAMESPACE, Messenger } from '@metamask/messenger';\nimport {\n PermissionDoesNotExistError,\n type Caveat,\n type RequestedPermissions,\n} from '@metamask/permission-controller';\nimport type { ExecutionService } from '@metamask/snaps-controllers';\nimport {\n detectSnapLocation,\n fetchSnap,\n NodeThreadExecutionService,\n setupMultiplex,\n} from '@metamask/snaps-controllers/node';\nimport { DIALOG_APPROVAL_TYPES } from '@metamask/snaps-rpc-methods';\nimport type {\n TrackEventParams,\n SnapId,\n TraceRequest,\n EndTraceRequest,\n TraceContext,\n} from '@metamask/snaps-sdk';\nimport type { Snap, VirtualFile } from '@metamask/snaps-utils';\nimport { logError } from '@metamask/snaps-utils';\nimport { assertExhaustive, hasProperty } from '@metamask/utils';\nimport type { CaipAssetType, Hex, Json } from '@metamask/utils';\nimport type { Duplex } from 'readable-stream';\nimport { pipeline } from 'readable-stream';\nimport type { SagaIterator } from 'redux-saga';\nimport { select } from 'redux-saga/effects';\n\nimport type { RootControllerMessenger } from './controllers';\nimport { getControllers, registerSnap } from './controllers';\nimport { getSnapFile } from './files';\nimport type { SnapHelpers } from './helpers';\nimport { getHelpers } from './helpers';\nimport { resolveWithSaga } from './interface';\nimport { asyncResolve, getEndowments } from './methods';\nimport {\n getGetMnemonicImplementation,\n getGetSnapImplementation,\n getTrackEventImplementation,\n getTrackErrorImplementation,\n getEndTraceImplementation,\n getStartTraceImplementation,\n getSetCurrentChainImplementation,\n getClearSnapStateMethodImplementation,\n getGetSnapStateMethodImplementation,\n getUpdateSnapStateMethodImplementation,\n getRequestUserApprovalImplementation,\n getShowInAppNotificationImplementation,\n getShowNativeNotificationImplementation,\n} from './methods/hooks';\nimport { createJsonRpcEngine } from './middleware';\nimport type {\n SimulationAccount,\n SimulationOptions,\n SimulationUserOptions,\n} from './options';\nimport { getOptions } from './options';\nimport type {\n ApplicationState,\n Interface,\n RunSagaFunction,\n Store,\n} from './store';\nimport { createStore, getCurrentInterface } from './store';\nimport { addSnapMetadataToAccount } from './utils/account';\n\n/**\n * Options for the execution service, without the options that are shared\n * between all execution services.\n *\n * @template Service - The type of the execution service, i.e., the class that\n * creates the execution service.\n */\nexport type ExecutionServiceOptions<\n Service extends new (...args: any[]) => any,\n> = Omit<\n ConstructorParameters<Service>[0],\n keyof ConstructorParameters<typeof ExecutionService>[0]\n>;\n\n/**\n * The options for running a Snap in a simulated environment.\n *\n * @property executionService - The execution service to use.\n * @property executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @property options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport type InstallSnapOptions<\n Service extends new (...args: any[]) => InstanceType<typeof ExecutionService>,\n> =\n ExecutionServiceOptions<Service> extends Record<string, never>\n ? {\n executionService: Service;\n executionServiceOptions?: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n }\n : {\n executionService: Service;\n executionServiceOptions: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n };\n\nexport type InstalledSnap = {\n snapId: SnapId;\n store: Store;\n executionService: InstanceType<typeof ExecutionService>;\n controllerMessenger: Messenger<\n NamespacedName,\n ActionConstraint,\n EventConstraint\n >;\n runSaga: RunSagaFunction;\n};\n\nexport type RestrictedMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns whether the client is locked or not.\n *\n * @returns A boolean flag signaling whether the client is locked.\n */\n getIsLocked: () => boolean;\n\n /**\n * Get the cryptographic functions to use for the client. This may return an\n * empty object to fall back to the default cryptographic functions.\n *\n * @returns The cryptographic functions to use for the client.\n */\n getClientCryptography: () => CryptographicFunctions;\n\n /**\n * A hook that returns metadata about a given Snap.\n *\n * @param snapId - The ID of a Snap.\n * @returns The metadata for the given Snap.\n */\n getSnap: (snapId: string) => Snap;\n\n /**\n * A hook that sets the current chain ID.\n *\n * @param chainId - The chain ID.\n */\n setCurrentChain: (chainId: Hex) => null;\n\n /**\n * A hook that gets the current simulation state.\n *\n * @returns The simulation state.\n */\n getSimulationState: () => ApplicationState;\n};\n\nexport type PermittedMiddlewareHooks = {\n /**\n * A hook that returns a promise that resolves once the extension is unlocked.\n *\n * @param shouldShowUnlockRequest - Whether to show the unlock request.\n * @returns A promise that resolves once the extension is unlocked.\n */\n getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;\n\n /**\n * A hook that returns whether the client is active or not.\n *\n * @returns A boolean flag signaling whether the client is opened.\n */\n getIsActive: () => boolean;\n\n /**\n * A hook that returns the client version.\n *\n * @returns A string that corresponds to the client version.\n */\n getVersion: () => string;\n\n /**\n * A hook that tracks an error.\n *\n * @param error - The error object containing error details and properties.\n */\n trackError(error: Error): void;\n\n /**\n * A hook that tracks an event.\n *\n * @param event - The event object containing event details and properties.\n */\n trackEvent(event: TrackEventParams['event']): void;\n\n /**\n * A hook that starts a performance trace.\n *\n * @param request - The trace request object containing trace details.\n */\n startTrace(request: TraceRequest): TraceContext;\n\n /**\n * A hook that ends a performance trace.\n *\n * @param request - The trace request object containing trace details.\n * @returns The trace data.\n */\n endTrace(request: EndTraceRequest): void;\n\n /**\n * A hook that returns the allowed keyring methods.\n *\n * @returns The keyring methods.\n */\n getAllowedKeyringMethods(): string[];\n\n /**\n * A hook that returns a specialized messenger for the Snap.\n *\n * @returns The messenger.\n */\n getMessenger(args: {\n actions?: string[];\n events?: string[];\n }): Messenger<string>;\n};\n\nexport type MultichainMiddlewareHooks = {\n /**\n * A hook that returns the simulated accounts.\n *\n * @returns The simulated accounts.\n */\n getAccounts: () => SimulationAccount[];\n\n /**\n * A hook that retrieves a caveat for a given permission.\n *\n * @param permission - The permission name.\n * @param caveatType - The caveat type.\n * @returns The caveat, if it exists.\n */\n getCaveat: (\n permission: string,\n caveatType: string,\n ) => Caveat<string, Json> | undefined;\n\n /**\n * A hook that grants permissions to the origin.\n *\n * @param permissions - The permissions.\n */\n grantPermissions: (permissions: RequestedPermissions) => void;\n\n /**\n * A hook that revokes a permission for the origin.\n *\n * @param permission - The permission name.\n */\n revokePermission: (permission: string) => void;\n};\n\n/**\n * Install a Snap in a simulated environment. This will fetch the Snap files,\n * create a Redux store, set up the controllers and JSON-RPC stack, register the\n * Snap, and run the Snap code in the execution service.\n *\n * @param snapId - The ID of the Snap to install.\n * @param options - The options to use when installing the Snap.\n * @param options.executionService - The execution service to use.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The installed Snap object.\n * @template Service - The type of the execution service.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<typeof ExecutionService>,\n>(\n snapId: SnapId,\n {\n executionService,\n executionServiceOptions,\n options: rawOptions = {},\n }: Partial<InstallSnapOptions<Service>> = {},\n): Promise<InstalledSnap & SnapHelpers> {\n const options = getOptions(rawOptions);\n\n // Fetch Snap files.\n const location = detectSnapLocation(snapId, {\n allowLocal: true,\n });\n\n const snapFiles = await fetchSnap(snapId, location);\n\n // Create Redux store.\n const { store, runSaga } = createStore(options);\n\n const controllerMessenger = new Messenger<MockAnyNamespace, any, any>({\n namespace: MOCK_ANY_NAMESPACE,\n });\n\n registerActions(\n controllerMessenger,\n runSaga,\n options,\n snapId,\n snapFiles.auxiliaryFiles,\n );\n\n // Set up controllers and JSON-RPC stack.\n const restrictedHooks = getRestrictedHooks(options, store, runSaga);\n\n const permittedHooks = getPermittedHooks(\n snapId,\n controllerMessenger,\n runSaga,\n );\n\n const multichainHooks = getMultichainHooks(\n snapId,\n options,\n controllerMessenger,\n );\n\n const { subjectMetadataController, permissionController } = getControllers({\n controllerMessenger,\n hooks: restrictedHooks,\n runSaga,\n options,\n });\n\n const engine = createJsonRpcEngine({\n snapId,\n messenger: controllerMessenger,\n store,\n restrictedHooks,\n permittedHooks,\n multichainHooks,\n isMultichain: false,\n });\n\n const multichainEngine = createJsonRpcEngine({\n snapId,\n messenger: controllerMessenger,\n store,\n restrictedHooks,\n permittedHooks,\n multichainHooks,\n isMultichain: true,\n });\n\n // Create execution service.\n const ActualService = executionService ?? NodeThreadExecutionService;\n const service = new ActualService({\n ...executionServiceOptions,\n messenger: new Messenger({\n namespace: 'ExecutionService',\n parent: controllerMessenger,\n }),\n setupSnapProvider: (_snapId: string, rpcStream: Duplex) => {\n const mux = setupMultiplex(rpcStream, 'snapStream');\n const stream = mux.createStream('metamask-provider');\n const providerStream = createEngineStream({ engine });\n\n // Error function is difficult to test, so we ignore it.\n /* istanbul ignore next 2 */\n pipeline(stream, providerStream, stream, (error) => {\n if (error && !error.message?.match('Premature close')) {\n logError(`Provider stream failure.`, error);\n }\n });\n\n const multichainStream = mux.createStream('metamask-multichain-provider');\n const multichainProviderStream = createEngineStream({\n engine: multichainEngine,\n });\n\n /* istanbul ignore next 2 */\n pipeline(\n multichainStream,\n multichainProviderStream,\n multichainStream,\n (error) => {\n if (error && !error.message?.match('Premature close')) {\n logError(`Provider stream failure.`, error);\n }\n },\n );\n },\n });\n\n // Register the Snap. This sets up the Snap's permissions and subject\n // metadata.\n await registerSnap(snapId, snapFiles.manifest.result, {\n permissionController,\n subjectMetadataController,\n });\n\n // Run the Snap code in the execution service.\n await service.executeSnap({\n snapId,\n sourceCode: snapFiles.sourceCode.toString('utf8'),\n endowments: await getEndowments(permissionController, snapId),\n });\n\n const helpers = getHelpers({\n snapId,\n store,\n controllerMessenger,\n runSaga,\n executionService: service,\n options,\n });\n\n return {\n snapId,\n store,\n executionService: service,\n controllerMessenger,\n runSaga,\n ...helpers,\n };\n}\n\n/**\n * Get the hooks for the simulation.\n *\n * @param options - The simulation options.\n * @param store - The Redux store.\n * @param runSaga - The run saga function.\n * @returns The hooks for the simulation.\n */\nexport function getRestrictedHooks(\n options: SimulationOptions,\n store: Store,\n runSaga: RunSagaFunction,\n): RestrictedMiddlewareHooks {\n return {\n getMnemonic: getGetMnemonicImplementation(options.secretRecoveryPhrase),\n getIsLocked: () => false,\n getClientCryptography: () => ({}),\n getSnap: getGetSnapImplementation(true),\n setCurrentChain: getSetCurrentChainImplementation(runSaga),\n getSimulationState: store.getState.bind(store),\n };\n}\n\n/**\n * Get the permitted hooks for the simulation.\n *\n * @param snapId - The Snap ID.\n * @param controllerMessenger - The controller messenger.\n * @param runSaga - The run saga function.\n * @returns The permitted hooks for the simulation.\n */\nexport function getPermittedHooks(\n snapId: string,\n controllerMessenger: RootControllerMessenger,\n runSaga: RunSagaFunction,\n): PermittedMiddlewareHooks {\n return {\n getUnlockPromise: asyncResolve(),\n getIsActive: () => true,\n getVersion: () => '13.6.0-flask.0',\n\n getAllowedKeyringMethods: () => [],\n\n trackError: getTrackErrorImplementation(runSaga),\n trackEvent: getTrackEventImplementation(runSaga),\n startTrace: getStartTraceImplementation(runSaga),\n endTrace: getEndTraceImplementation(runSaga),\n\n getMessenger: ({ actions, events }) => {\n const messenger = new Messenger({\n namespace: `${snapId}-messenger`,\n parent: controllerMessenger,\n });\n\n controllerMessenger.delegate({\n actions: actions as never[],\n events: events as never[],\n messenger,\n });\n\n return messenger;\n },\n };\n}\n\n/**\n * Get the hooks for the multichain middleware simulation.\n *\n * @param snapId - The Snap ID.\n * @param options - The simulation options.\n * @param controllerMessenger - The controller messenger.\n * @returns The hooks for the middleware.\n */\nexport function getMultichainHooks(\n snapId: SnapId,\n options: SimulationOptions,\n controllerMessenger: RootControllerMessenger,\n): MultichainMiddlewareHooks {\n return {\n getAccounts: () => options.accounts,\n getCaveat: (permission: string, caveatType: string) => {\n try {\n return controllerMessenger.call(\n 'PermissionController:getCaveat',\n snapId,\n permission,\n caveatType,\n );\n } catch (error) {\n if (error instanceof PermissionDoesNotExistError) {\n return undefined;\n }\n /* istanbul ignore next */\n throw error;\n }\n },\n grantPermissions: (approvedPermissions: RequestedPermissions) => {\n controllerMessenger.call('PermissionController:grantPermissions', {\n subject: { origin: snapId },\n approvedPermissions,\n });\n },\n revokePermission: (permission: string) => {\n try {\n controllerMessenger.call('PermissionController:revokePermissions', {\n [snapId]: [permission],\n });\n } catch (error) {\n if (error instanceof PermissionDoesNotExistError) {\n return;\n }\n /* istanbul ignore next */\n throw error;\n }\n },\n };\n}\n\n/**\n * Get the mock mnemonic for a given source ID.\n *\n * @param options - The simulation options.\n * @returns The mnemonic.\n */\n/**\n * Register mocked action handlers.\n *\n * @param controllerMessenger - The controller messenger.\n * @param runSaga - The run saga function.\n * @param options - The simulation options.\n * @param snapId - The ID of the Snap.\n * @param auxiliaryFiles - Auxiliary files from the fetched Snap.\n */\nexport function registerActions(\n controllerMessenger: RootControllerMessenger,\n runSaga: RunSagaFunction,\n options: SimulationOptions,\n snapId: SnapId,\n auxiliaryFiles: VirtualFile[],\n) {\n controllerMessenger.registerActionHandler(\n 'PhishingController:testOrigin',\n () => ({ result: false, type: 'all' }),\n );\n\n controllerMessenger.registerActionHandler(\n 'AccountsController:getAccountByAddress',\n // @ts-expect-error - This is a partial account with only the necessary\n // data used by the interface controller.\n (address) => {\n const matchingAccount = options.accounts.find(\n (account) => address === account.address,\n );\n\n if (!matchingAccount) {\n return undefined;\n }\n\n return addSnapMetadataToAccount(matchingAccount, snapId);\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'AccountsController:getSelectedMultichainAccount',\n // @ts-expect-error - This is a partial account with only the necessary\n // data used by the interface controller.\n () => {\n const selectedAccount = options.accounts.find(\n (account) => account.selected,\n );\n\n if (!selectedAccount) {\n return undefined;\n }\n\n return addSnapMetadataToAccount(selectedAccount, snapId);\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'AccountsController:listMultichainAccounts',\n\n () =>\n // @ts-expect-error - These are partial accounts with only the necessary\n // data used by the interface controller.\n options.accounts.map((account) =>\n addSnapMetadataToAccount(account, snapId),\n ),\n );\n\n controllerMessenger.registerActionHandler(\n 'MultichainAssetsController:getState',\n () => ({\n // @ts-expect-error - These are partial assets with only the\n // necessary data used by the interface controller.\n assetsMetadata: options.assets,\n accountsAssets: options.accounts.reduce<Record<string, CaipAssetType[]>>(\n (acc, account) => {\n acc[account.id] = account.assets ?? [];\n return acc;\n },\n {},\n ),\n }),\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:hasRequest',\n (opts) => {\n /**\n * Get the current interface from the store.\n *\n * @yields Selects the current interface from the store.\n * @returns The current interface.\n */\n function* getCurrentInterfaceSaga(): SagaIterator {\n const currentInterface: Interface = yield select(getCurrentInterface);\n return currentInterface;\n }\n\n const currentInterface: Interface | undefined = runSaga(\n getCurrentInterfaceSaga,\n ).result();\n return (\n currentInterface?.type === DIALOG_APPROVAL_TYPES.default &&\n currentInterface?.id === opts?.id\n );\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:acceptRequest',\n async (_id: string, value: unknown) => {\n await runSaga(resolveWithSaga, value).toPromise();\n\n return { value };\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:addRequest',\n // @ts-expect-error Types of property 'requestData' are incompatible.\n getRequestUserApprovalImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:getSnap',\n getGetSnapImplementation(true),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:getSnapState',\n getGetSnapStateMethodImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:updateSnapState',\n getUpdateSnapStateMethodImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:clearSnapState',\n getClearSnapStateMethodImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:getSnapFile',\n async (_snapId, path, encoding) =>\n getSnapFile(auxiliaryFiles, path, encoding),\n );\n\n const showNativeNotification =\n getShowNativeNotificationImplementation(runSaga);\n const showInAppNotification = getShowInAppNotificationImplementation(runSaga);\n\n controllerMessenger.registerActionHandler(\n // @ts-expect-error - `RateLimitController` is not part of the simulation messenger types.\n 'RateLimitController:call',\n async (\n _origin: string,\n type: 'showNativeNotification' | 'showInAppNotification',\n ...args: unknown[]\n ) => {\n switch (type) {\n case 'showNativeNotification':\n return await showNativeNotification(args[0] as string, {\n type: 'native',\n message: args[1] as string,\n });\n case 'showInAppNotification':\n return await showInAppNotification(\n args[0] as string,\n args[1] as Parameters<typeof showInAppNotification>[1],\n );\n /* istanbul ignore next */\n default:\n return assertExhaustive(type);\n }\n },\n );\n\n const getMnemonic = getGetMnemonicImplementation(\n options.secretRecoveryPhrase,\n );\n\n controllerMessenger.registerActionHandler(\n // @ts-expect-error - `KeyringController` is not part of the simulation messenger types.\n 'KeyringController:getState',\n () => ({\n isUnlocked: true,\n keyrings: [\n {\n type: 'HD Key Tree',\n metadata: {\n id: 'default',\n name: 'Default Secret Recovery Phrase',\n },\n },\n {\n type: 'HD Key Tree',\n metadata: {\n id: 'alternative',\n name: 'Alternative Secret Recovery Phrase',\n },\n },\n ],\n }),\n );\n\n controllerMessenger.registerActionHandler(\n // @ts-expect-error - `KeyringController` is not part of the simulation messenger types.\n 'KeyringController:withKeyringV2Unsafe',\n async (\n selector: { type: string; index?: number } | { id: string },\n operation: (args: {\n keyring: { type: string; mnemonic: Uint8Array; seed: Uint8Array };\n }) => Promise<unknown>,\n ) => {\n const source = hasProperty(selector, 'id')\n ? (selector.id as string)\n : undefined;\n\n const mnemonic = await getMnemonic(source);\n const seed = await mnemonicToSeed(mnemonic);\n\n return await operation({\n keyring: {\n type: 'hd',\n mnemonic,\n seed,\n },\n });\n },\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"simulation.mjs","sourceRoot":"","sources":["../src/simulation.ts"],"names":[],"mappings":"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","sourcesContent":["import { createEngineStream } from '@metamask/json-rpc-middleware-stream';\nimport type { CryptographicFunctions } from '@metamask/key-tree';\nimport { mnemonicToSeed } from '@metamask/key-tree';\nimport type {\n ActionConstraint,\n EventConstraint,\n MockAnyNamespace,\n NamespacedName,\n} from '@metamask/messenger';\nimport { MOCK_ANY_NAMESPACE, Messenger } from '@metamask/messenger';\nimport {\n PermissionDoesNotExistError,\n type Caveat,\n type RequestedPermissions,\n} from '@metamask/permission-controller';\nimport type { ExecutionService } from '@metamask/snaps-controllers';\nimport {\n detectSnapLocation,\n fetchSnap,\n NodeThreadExecutionService,\n setupMultiplex,\n} from '@metamask/snaps-controllers/node';\nimport { DIALOG_APPROVAL_TYPES } from '@metamask/snaps-rpc-methods';\nimport type {\n TrackEventParams,\n SnapId,\n TraceRequest,\n EndTraceRequest,\n TraceContext,\n} from '@metamask/snaps-sdk';\nimport type { Snap, VirtualFile } from '@metamask/snaps-utils';\nimport { logError } from '@metamask/snaps-utils';\nimport { assertExhaustive, hasProperty } from '@metamask/utils';\nimport type { CaipAssetType, Hex, Json } from '@metamask/utils';\nimport type { Duplex } from 'readable-stream';\nimport { pipeline } from 'readable-stream';\nimport type { SagaIterator } from 'redux-saga';\nimport { select } from 'redux-saga/effects';\n\nimport type { RootControllerMessenger } from './controllers';\nimport { getControllers, registerSnap } from './controllers';\nimport { getSnapFile } from './files';\nimport type { SnapHelpers } from './helpers';\nimport { getHelpers } from './helpers';\nimport { resolveWithSaga } from './interface';\nimport { asyncResolve, getEndowments } from './methods';\nimport {\n getGetMnemonicImplementation,\n getGetSnapImplementation,\n getTrackEventImplementation,\n getTrackErrorImplementation,\n getEndTraceImplementation,\n getStartTraceImplementation,\n getSetCurrentChainImplementation,\n getClearSnapStateMethodImplementation,\n getGetSnapStateMethodImplementation,\n getUpdateSnapStateMethodImplementation,\n getRequestUserApprovalImplementation,\n getShowInAppNotificationImplementation,\n getShowNativeNotificationImplementation,\n} from './methods/hooks';\nimport { createJsonRpcEngine } from './middleware';\nimport type {\n SimulationAccount,\n SimulationOptions,\n SimulationUserOptions,\n} from './options';\nimport { getOptions } from './options';\nimport type {\n ApplicationState,\n Interface,\n RunSagaFunction,\n Store,\n} from './store';\nimport { createStore, getCurrentInterface } from './store';\nimport { addSnapMetadataToAccount } from './utils/account';\n\n/**\n * Options for the execution service, without the options that are shared\n * between all execution services.\n *\n * @template Service - The type of the execution service, i.e., the class that\n * creates the execution service.\n */\nexport type ExecutionServiceOptions<\n Service extends new (...args: any[]) => any,\n> = Omit<\n ConstructorParameters<Service>[0],\n keyof ConstructorParameters<typeof ExecutionService>[0]\n>;\n\n/**\n * The options for running a Snap in a simulated environment.\n *\n * @property executionService - The execution service to use.\n * @property executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @property options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport type InstallSnapOptions<\n Service extends new (...args: any[]) => InstanceType<typeof ExecutionService>,\n> =\n ExecutionServiceOptions<Service> extends Record<string, never>\n ? {\n executionService: Service;\n executionServiceOptions?: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n }\n : {\n executionService: Service;\n executionServiceOptions: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n };\n\nexport type InstalledSnap = {\n snapId: SnapId;\n store: Store;\n executionService: InstanceType<typeof ExecutionService>;\n controllerMessenger: Messenger<\n NamespacedName,\n ActionConstraint,\n EventConstraint\n >;\n runSaga: RunSagaFunction;\n};\n\nexport type RestrictedMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns whether the client is locked or not.\n *\n * @returns A boolean flag signaling whether the client is locked.\n */\n getIsLocked: () => boolean;\n\n /**\n * Get the cryptographic functions to use for the client. This may return an\n * empty object to fall back to the default cryptographic functions.\n *\n * @returns The cryptographic functions to use for the client.\n */\n getClientCryptography: () => CryptographicFunctions;\n\n /**\n * A hook that returns metadata about a given Snap.\n *\n * @param snapId - The ID of a Snap.\n * @returns The metadata for the given Snap.\n */\n getSnap: (snapId: string) => Snap;\n\n /**\n * A hook that sets the current chain ID.\n *\n * @param chainId - The chain ID.\n */\n setCurrentChain: (chainId: Hex) => null;\n\n /**\n * A hook that gets the current simulation state.\n *\n * @returns The simulation state.\n */\n getSimulationState: () => ApplicationState;\n};\n\nexport type PermittedMiddlewareHooks = {\n /**\n * A hook that returns a promise that resolves once the extension is unlocked.\n *\n * @param shouldShowUnlockRequest - Whether to show the unlock request.\n * @returns A promise that resolves once the extension is unlocked.\n */\n getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;\n\n /**\n * A hook that returns whether the client is active or not.\n *\n * @returns A boolean flag signaling whether the client is opened.\n */\n getIsActive: () => boolean;\n\n /**\n * A hook that returns the client version.\n *\n * @returns A string that corresponds to the client version.\n */\n getVersion: () => string;\n\n /**\n * A hook that tracks an error.\n *\n * @param error - The error object containing error details and properties.\n */\n trackError(error: Error): void;\n\n /**\n * A hook that tracks an event.\n *\n * @param event - The event object containing event details and properties.\n */\n trackEvent(event: TrackEventParams['event']): void;\n\n /**\n * A hook that starts a performance trace.\n *\n * @param request - The trace request object containing trace details.\n */\n startTrace(request: TraceRequest): TraceContext;\n\n /**\n * A hook that ends a performance trace.\n *\n * @param request - The trace request object containing trace details.\n * @returns The trace data.\n */\n endTrace(request: EndTraceRequest): void;\n\n /**\n * A hook that returns the allowed keyring methods.\n *\n * @returns The keyring methods.\n */\n getAllowedKeyringMethods(): string[];\n\n /**\n * A hook that returns a specialized messenger for the Snap.\n *\n * @returns The messenger.\n */\n getMessenger(args: {\n actions?: string[];\n events?: string[];\n }): Messenger<string>;\n};\n\nexport type MultichainMiddlewareHooks = {\n /**\n * A hook that returns the simulated accounts.\n *\n * @returns The simulated accounts.\n */\n getAccounts: () => SimulationAccount[];\n\n /**\n * A hook that retrieves a caveat for a given permission.\n *\n * @param permission - The permission name.\n * @param caveatType - The caveat type.\n * @returns The caveat, if it exists.\n */\n getCaveat: (\n permission: string,\n caveatType: string,\n ) => Caveat<string, Json> | undefined;\n\n /**\n * A hook that grants permissions to the origin.\n *\n * @param permissions - The permissions.\n */\n grantPermissions: (permissions: RequestedPermissions) => void;\n\n /**\n * A hook that revokes a permission for the origin.\n *\n * @param permission - The permission name.\n */\n revokePermission: (permission: string) => void;\n};\n\n/**\n * Install a Snap in a simulated environment. This will fetch the Snap files,\n * create a Redux store, set up the controllers and JSON-RPC stack, register the\n * Snap, and run the Snap code in the execution service.\n *\n * @param snapId - The ID of the Snap to install.\n * @param options - The options to use when installing the Snap.\n * @param options.executionService - The execution service to use.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The installed Snap object.\n * @template Service - The type of the execution service.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<typeof ExecutionService>,\n>(\n snapId: SnapId,\n {\n executionService,\n executionServiceOptions,\n options: rawOptions = {},\n }: Partial<InstallSnapOptions<Service>> = {},\n): Promise<InstalledSnap & SnapHelpers> {\n const options = getOptions(rawOptions);\n\n // Fetch Snap files.\n const location = detectSnapLocation(snapId, {\n allowLocal: true,\n });\n\n const snapFiles = await fetchSnap(snapId, location);\n\n // Create Redux store.\n const { store, runSaga } = createStore(options);\n\n const controllerMessenger = new Messenger<MockAnyNamespace, any, any>({\n namespace: MOCK_ANY_NAMESPACE,\n });\n\n registerActions(\n controllerMessenger,\n runSaga,\n options,\n snapId,\n snapFiles.auxiliaryFiles,\n );\n\n // Set up controllers and JSON-RPC stack.\n const restrictedHooks = getRestrictedHooks(options, store, runSaga);\n\n const permittedHooks = getPermittedHooks(\n snapId,\n controllerMessenger,\n runSaga,\n );\n\n const multichainHooks = getMultichainHooks(\n snapId,\n options,\n controllerMessenger,\n );\n\n const { subjectMetadataController, permissionController } = getControllers({\n controllerMessenger,\n hooks: restrictedHooks,\n runSaga,\n options,\n });\n\n const engine = createJsonRpcEngine({\n snapId,\n messenger: controllerMessenger,\n store,\n restrictedHooks,\n permittedHooks,\n multichainHooks,\n isMultichain: false,\n });\n\n const multichainEngine = createJsonRpcEngine({\n snapId,\n messenger: controllerMessenger,\n store,\n restrictedHooks,\n permittedHooks,\n multichainHooks,\n isMultichain: true,\n });\n\n // Create execution service.\n const ActualService = executionService ?? NodeThreadExecutionService;\n const service = new ActualService({\n ...executionServiceOptions,\n messenger: new Messenger({\n namespace: 'ExecutionService',\n parent: controllerMessenger,\n }),\n setupSnapProvider: (_snapId: string, rpcStream: Duplex) => {\n const mux = setupMultiplex(rpcStream, 'snapStream');\n const stream = mux.createStream('metamask-provider');\n const providerStream = createEngineStream({ engine });\n\n // Error function is difficult to test, so we ignore it.\n /* istanbul ignore next 2 */\n pipeline(stream, providerStream, stream, (error) => {\n if (error && !error.message?.match('Premature close')) {\n logError(`Provider stream failure.`, error);\n }\n });\n\n const multichainStream = mux.createStream('metamask-multichain-provider');\n const multichainProviderStream = createEngineStream({\n engine: multichainEngine,\n });\n\n /* istanbul ignore next 2 */\n pipeline(\n multichainStream,\n multichainProviderStream,\n multichainStream,\n (error) => {\n if (error && !error.message?.match('Premature close')) {\n logError(`Provider stream failure.`, error);\n }\n },\n );\n },\n });\n\n // Register the Snap. This sets up the Snap's permissions and subject\n // metadata.\n await registerSnap(snapId, snapFiles.manifest.result, {\n permissionController,\n subjectMetadataController,\n });\n\n // Run the Snap code in the execution service.\n await service.executeSnap({\n snapId,\n sourceCode: snapFiles.sourceCode.toString('utf8'),\n endowments: await getEndowments(permissionController, snapId),\n });\n\n const helpers = getHelpers({\n snapId,\n store,\n controllerMessenger,\n runSaga,\n executionService: service,\n options,\n });\n\n return {\n snapId,\n store,\n executionService: service,\n controllerMessenger,\n runSaga,\n ...helpers,\n };\n}\n\n/**\n * Get the hooks for the simulation.\n *\n * @param options - The simulation options.\n * @param store - The Redux store.\n * @param runSaga - The run saga function.\n * @returns The hooks for the simulation.\n */\nexport function getRestrictedHooks(\n options: SimulationOptions,\n store: Store,\n runSaga: RunSagaFunction,\n): RestrictedMiddlewareHooks {\n return {\n getMnemonic: getGetMnemonicImplementation(options.secretRecoveryPhrase),\n getIsLocked: () => false,\n getClientCryptography: () => ({}),\n getSnap: getGetSnapImplementation(true),\n setCurrentChain: getSetCurrentChainImplementation(runSaga),\n getSimulationState: store.getState.bind(store),\n };\n}\n\n/**\n * Get the permitted hooks for the simulation.\n *\n * @param snapId - The Snap ID.\n * @param controllerMessenger - The controller messenger.\n * @param runSaga - The run saga function.\n * @returns The permitted hooks for the simulation.\n */\nexport function getPermittedHooks(\n snapId: string,\n controllerMessenger: RootControllerMessenger,\n runSaga: RunSagaFunction,\n): PermittedMiddlewareHooks {\n return {\n getUnlockPromise: asyncResolve(),\n getIsActive: () => true,\n getVersion: () => '13.6.0-flask.0',\n\n getAllowedKeyringMethods: () => [],\n\n trackError: getTrackErrorImplementation(runSaga),\n trackEvent: getTrackEventImplementation(runSaga),\n startTrace: getStartTraceImplementation(runSaga),\n endTrace: getEndTraceImplementation(runSaga),\n\n getMessenger: ({ actions, events }) => {\n const messenger = new Messenger({\n namespace: `${snapId}-messenger`,\n parent: controllerMessenger,\n });\n\n controllerMessenger.delegate({\n actions: actions as never[],\n events: events as never[],\n messenger,\n });\n\n return messenger;\n },\n };\n}\n\n/**\n * Get the hooks for the multichain middleware simulation.\n *\n * @param snapId - The Snap ID.\n * @param options - The simulation options.\n * @param controllerMessenger - The controller messenger.\n * @returns The hooks for the middleware.\n */\nexport function getMultichainHooks(\n snapId: SnapId,\n options: SimulationOptions,\n controllerMessenger: RootControllerMessenger,\n): MultichainMiddlewareHooks {\n return {\n getAccounts: () => options.accounts,\n getCaveat: (permission: string, caveatType: string) => {\n try {\n return controllerMessenger.call(\n 'PermissionController:getCaveat',\n snapId,\n permission,\n caveatType,\n );\n } catch (error) {\n if (error instanceof PermissionDoesNotExistError) {\n return undefined;\n }\n /* istanbul ignore next */\n throw error;\n }\n },\n grantPermissions: (approvedPermissions: RequestedPermissions) => {\n controllerMessenger.call('PermissionController:grantPermissions', {\n subject: { origin: snapId },\n approvedPermissions,\n });\n },\n revokePermission: (permission: string) => {\n try {\n controllerMessenger.call('PermissionController:revokePermissions', {\n [snapId]: [permission],\n });\n } catch (error) {\n if (error instanceof PermissionDoesNotExistError) {\n return;\n }\n /* istanbul ignore next */\n throw error;\n }\n },\n };\n}\n\n/**\n * Get the mock mnemonic for a given source ID.\n *\n * @param options - The simulation options.\n * @returns The mnemonic.\n */\n/**\n * Register mocked action handlers.\n *\n * @param controllerMessenger - The controller messenger.\n * @param runSaga - The run saga function.\n * @param options - The simulation options.\n * @param snapId - The ID of the Snap.\n * @param auxiliaryFiles - Auxiliary files from the fetched Snap.\n */\nexport function registerActions(\n controllerMessenger: RootControllerMessenger,\n runSaga: RunSagaFunction,\n options: SimulationOptions,\n snapId: SnapId,\n auxiliaryFiles: VirtualFile[],\n) {\n controllerMessenger.registerActionHandler(\n 'PhishingController:testOrigin',\n () => ({ result: false, type: 'all' }),\n );\n\n controllerMessenger.registerActionHandler(\n 'AccountsController:getAccountByAddress',\n // @ts-expect-error - This is a partial account with only the necessary\n // data used by the interface controller.\n (address) => {\n const matchingAccount = options.accounts.find(\n (account) => address === account.address,\n );\n\n if (!matchingAccount) {\n return undefined;\n }\n\n return addSnapMetadataToAccount(matchingAccount, snapId);\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'AccountsController:getSelectedMultichainAccount',\n // @ts-expect-error - This is a partial account with only the necessary\n // data used by the interface controller.\n () => {\n const selectedAccount = options.accounts.find(\n (account) => account.selected,\n );\n\n if (!selectedAccount) {\n return undefined;\n }\n\n return addSnapMetadataToAccount(selectedAccount, snapId);\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'AccountsController:listMultichainAccounts',\n\n () =>\n // @ts-expect-error - These are partial accounts with only the necessary\n // data used by the interface controller.\n options.accounts.map((account) =>\n addSnapMetadataToAccount(account, snapId),\n ),\n );\n\n controllerMessenger.registerActionHandler(\n 'AssetsController:getState',\n () => ({\n // @ts-expect-error - These are partial assets with only the\n // necessary data used by the interface controller.\n assetsInfo: options.assets,\n assetsBalance: options.accounts.reduce<\n Record<string, Record<CaipAssetType, Json>>\n >((acc, account) => {\n acc[account.id] = Object.fromEntries(\n (account.assets ?? []).map((asset) => [asset, {}]),\n );\n return acc;\n }, {}),\n }),\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:hasRequest',\n (opts) => {\n /**\n * Get the current interface from the store.\n *\n * @yields Selects the current interface from the store.\n * @returns The current interface.\n */\n function* getCurrentInterfaceSaga(): SagaIterator {\n const currentInterface: Interface = yield select(getCurrentInterface);\n return currentInterface;\n }\n\n const currentInterface: Interface | undefined = runSaga(\n getCurrentInterfaceSaga,\n ).result();\n return (\n currentInterface?.type === DIALOG_APPROVAL_TYPES.default &&\n currentInterface?.id === opts?.id\n );\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:acceptRequest',\n async (_id: string, value: unknown) => {\n await runSaga(resolveWithSaga, value).toPromise();\n\n return { value };\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:addRequest',\n // @ts-expect-error Types of property 'requestData' are incompatible.\n getRequestUserApprovalImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:getSnap',\n getGetSnapImplementation(true),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:getSnapState',\n getGetSnapStateMethodImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:updateSnapState',\n getUpdateSnapStateMethodImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:clearSnapState',\n getClearSnapStateMethodImplementation(runSaga),\n );\n\n controllerMessenger.registerActionHandler(\n 'SnapController:getSnapFile',\n async (_snapId, path, encoding) =>\n getSnapFile(auxiliaryFiles, path, encoding),\n );\n\n const showNativeNotification =\n getShowNativeNotificationImplementation(runSaga);\n const showInAppNotification = getShowInAppNotificationImplementation(runSaga);\n\n controllerMessenger.registerActionHandler(\n // @ts-expect-error - `RateLimitController` is not part of the simulation messenger types.\n 'RateLimitController:call',\n async (\n _origin: string,\n type: 'showNativeNotification' | 'showInAppNotification',\n ...args: unknown[]\n ) => {\n switch (type) {\n case 'showNativeNotification':\n return await showNativeNotification(args[0] as string, {\n type: 'native',\n message: args[1] as string,\n });\n case 'showInAppNotification':\n return await showInAppNotification(\n args[0] as string,\n args[1] as Parameters<typeof showInAppNotification>[1],\n );\n /* istanbul ignore next */\n default:\n return assertExhaustive(type);\n }\n },\n );\n\n const getMnemonic = getGetMnemonicImplementation(\n options.secretRecoveryPhrase,\n );\n\n controllerMessenger.registerActionHandler(\n // @ts-expect-error - `KeyringController` is not part of the simulation messenger types.\n 'KeyringController:getState',\n () => ({\n isUnlocked: true,\n keyrings: [\n {\n type: 'HD Key Tree',\n metadata: {\n id: 'default',\n name: 'Default Secret Recovery Phrase',\n },\n },\n {\n type: 'HD Key Tree',\n metadata: {\n id: 'alternative',\n name: 'Alternative Secret Recovery Phrase',\n },\n },\n ],\n }),\n );\n\n controllerMessenger.registerActionHandler(\n // @ts-expect-error - `KeyringController` is not part of the simulation messenger types.\n 'KeyringController:withKeyringV2Unsafe',\n async (\n selector: { type: string; index?: number } | { id: string },\n operation: (args: {\n keyring: { type: string; mnemonic: Uint8Array; seed: Uint8Array };\n }) => Promise<unknown>,\n ) => {\n const source = hasProperty(selector, 'id')\n ? (selector.id as string)\n : undefined;\n\n const mnemonic = await getMnemonic(source);\n const seed = await mnemonicToSeed(mnemonic);\n\n return await operation({\n keyring: {\n type: 'hd',\n mnemonic,\n seed,\n },\n });\n },\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.cts","sourceRoot":"","sources":["../../src/store/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAEhD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AASF,eAAO,MAAM,UAAU;0FAIO,
|
|
1
|
+
{"version":3,"file":"chain.d.cts","sourceRoot":"","sources":["../../src/store/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAEhD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AASF,eAAO,MAAM,UAAU;0FAIO,aAAa,CAAC,GAAG,CAAC;WAI9C,CAAC;AAEH,eAAO,MAAQ,QAAQ,sFAAuB,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,gBAAgB,kBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.mts","sourceRoot":"","sources":["../../src/store/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAEhD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AASF,eAAO,MAAM,UAAU;0FAIO,
|
|
1
|
+
{"version":3,"file":"chain.d.mts","sourceRoot":"","sources":["../../src/store/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAEhD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AASF,eAAO,MAAM,UAAU;0FAIO,aAAa,CAAC,GAAG,CAAC;WAI9C,CAAC;AAEH,eAAO,MAAQ,QAAQ,sFAAuB,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,gBAAgB,kBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.cts","sourceRoot":"","sources":["../../src/store/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAiB;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,yBAAyB,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;CAClD,CAAC;AASF,eAAO,MAAM,UAAU;gGAIa,
|
|
1
|
+
{"version":3,"file":"mocks.d.cts","sourceRoot":"","sources":["../../src/store/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAiB;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,yBAAyB,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;CAClD,CAAC;AASF,eAAO,MAAM,UAAU;gGAIa,aAAa,CAAC,WAAW,CAAC;mGAMvB,aAAa,CAAC,MAAM,CAAC;WAI1D,CAAC;AAEH,eAAO,MAAQ,cAAc,4FAAE,iBAAiB,wFAAuB,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,4CAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.mts","sourceRoot":"","sources":["../../src/store/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAiB;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,yBAAyB,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;CAClD,CAAC;AASF,eAAO,MAAM,UAAU;gGAIa,
|
|
1
|
+
{"version":3,"file":"mocks.d.mts","sourceRoot":"","sources":["../../src/store/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAgB;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAiB;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,yBAAyB,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;CAClD,CAAC;AASF,eAAO,MAAM,UAAU;gGAIa,aAAa,CAAC,WAAW,CAAC;mGAMvB,aAAa,CAAC,MAAM,CAAC;WAI1D,CAAC;AAEH,eAAO,MAAQ,cAAc,4FAAE,iBAAiB,wFAAuB,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,4CAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.cts","sourceRoot":"","sources":["../../src/store/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AASF,eAAO,MAAM,kBAAkB;yGAIM,
|
|
1
|
+
{"version":3,"file":"notifications.d.cts","sourceRoot":"","sources":["../../src/store/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AASF,eAAO,MAAM,kBAAkB;yGAIM,aAAa,CAAC,YAAY,CAAC;4GAGxB,aAAa,CAAC,MAAM,CAAC;;mBAS3D,CAAC;AAEH,eAAO,MAAQ,eAAe,sGAAE,kBAAkB,mGAAE,kBAAkB,4FAC1C,CAAC;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAG5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.mts","sourceRoot":"","sources":["../../src/store/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AASF,eAAO,MAAM,kBAAkB;yGAIM,
|
|
1
|
+
{"version":3,"file":"notifications.d.mts","sourceRoot":"","sources":["../../src/store/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AASF,eAAO,MAAM,kBAAkB;yGAIM,aAAa,CAAC,YAAY,CAAC;4GAGxB,aAAa,CAAC,MAAM,CAAC;;mBAS3D,CAAC;AAEH,eAAO,MAAQ,eAAe,sGAAE,kBAAkB,mGAAE,kBAAkB,4FAC1C,CAAC;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAG5B,CAAC"}
|
package/dist/store/state.cjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.clearState = exports.setState = exports.stateSlice = void 0;
|
|
5
|
+
exports.getState = getState;
|
|
5
6
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
7
|
/**
|
|
7
8
|
* The initial state.
|
|
@@ -50,5 +51,4 @@ function getState(encrypted) {
|
|
|
50
51
|
return state.unencrypted;
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
|
-
exports.getState = getState;
|
|
54
54
|
//# sourceMappingURL=state.cjs.map
|
package/dist/store/state.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.cjs","sourceRoot":"","sources":["../../src/store/state.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"state.cjs","sourceRoot":"","sources":["../../src/store/state.ts"],"names":[],"mappings":";;;;AAiEA,4BAWC;AA3ED,8CAA+D;AAiB/D;;GAEG;AACH,MAAM,aAAa,GAAU;IAC3B,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;GAEG;AACU,QAAA,UAAU,GAAG,IAAA,qBAAW,EAAC;IACpC,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE;QACR,QAAQ,EAAE,CACR,KAAK,EACL,MAAmE,EACnE,EAAE;YACF,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,MAA6C,EAAE,EAAE;YACnE,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;KACF;CACF,CAAC,CAAC;AAEU,KAA2B,kBAAU,CAAC,OAAO,EAA3C,gBAAQ,gBAAE,kBAAU,iBAAwB;AAE3D;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,SAAkB;IACzC,OAAO,IAAA,wBAAc,EACnB,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,EAClC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACZ,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC","sourcesContent":["import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSelector, createSlice } from '@reduxjs/toolkit';\n\nimport type { ApplicationState } from './store';\n\n/**\n * The Snap state object.\n *\n * @property encrypted - The encrypted state. Can be null if the Snap does not\n * have an encrypted state.\n * @property unencrypted - The unencrypted state. Can be null if the Snap does\n * not have an unencrypted state.\n */\nexport type State = {\n encrypted: string | null;\n unencrypted: string | null;\n};\n\n/**\n * The initial state.\n */\nconst INITIAL_STATE: State = {\n encrypted: null,\n unencrypted: null,\n};\n\n/**\n * The state slice, which stores the state of the Snap.\n */\nexport const stateSlice = createSlice({\n name: 'state',\n initialState: INITIAL_STATE,\n reducers: {\n setState: (\n state,\n action: PayloadAction<{ state: string | null; encrypted: boolean }>,\n ) => {\n if (action.payload.encrypted) {\n state.encrypted = action.payload.state;\n return state;\n }\n\n state.unencrypted = action.payload.state;\n return state;\n },\n clearState: (state, action: PayloadAction<{ encrypted: boolean }>) => {\n if (action.payload.encrypted) {\n state.encrypted = null;\n return state;\n }\n\n state.unencrypted = null;\n return state;\n },\n },\n});\n\nexport const { setState, clearState } = stateSlice.actions;\n\n/**\n * Get the state from the store.\n *\n * @param encrypted - Whether to get the encrypted or unencrypted state.\n * @returns A selector that returns the state.\n */\nexport function getState(encrypted: boolean) {\n return createSelector(\n (state: ApplicationState) => state,\n ({ state }) => {\n if (encrypted) {\n return state.encrypted;\n }\n\n return state.unencrypted;\n },\n );\n}\n"]}
|
package/dist/store/state.d.cts
CHANGED
|
@@ -15,13 +15,10 @@ export type State = {
|
|
|
15
15
|
* The state slice, which stores the state of the Snap.
|
|
16
16
|
*/
|
|
17
17
|
export declare const stateSlice: import("@reduxjs/toolkit").Slice<State, {
|
|
18
|
-
setState: (state: import("immer/dist/internal.js").WritableDraft<State>, action: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
type: string;
|
|
24
|
-
}) => import("immer/dist/internal.js").WritableDraft<State>;
|
|
18
|
+
setState: (state: import("immer/dist/internal.js").WritableDraft<State>, action: PayloadAction<{
|
|
19
|
+
state: string | null;
|
|
20
|
+
encrypted: boolean;
|
|
21
|
+
}>) => import("immer/dist/internal.js").WritableDraft<State>;
|
|
25
22
|
clearState: (state: import("immer/dist/internal.js").WritableDraft<State>, action: PayloadAction<{
|
|
26
23
|
encrypted: boolean;
|
|
27
24
|
}>) => import("immer/dist/internal.js").WritableDraft<State>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.cts","sourceRoot":"","sources":["../../src/store/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"state.d.cts","sourceRoot":"","sources":["../../src/store/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,UAAU;qFAMT,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;uFAUzC,aAAa,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;WAUnE,CAAC;AAEH,eAAO,MAAQ,QAAQ;WAtBc,MAAM,GAAG,IAAI;eAAa,OAAO;sBAsB7C,UAAU;eAZwB,OAAO;sBAYR,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO;;;;;;;;;;;;;;;;;;EAW1C"}
|
package/dist/store/state.d.mts
CHANGED
|
@@ -15,13 +15,10 @@ export type State = {
|
|
|
15
15
|
* The state slice, which stores the state of the Snap.
|
|
16
16
|
*/
|
|
17
17
|
export declare const stateSlice: import("@reduxjs/toolkit").Slice<State, {
|
|
18
|
-
setState: (state: import("immer/dist/internal.js").WritableDraft<State>, action: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
type: string;
|
|
24
|
-
}) => import("immer/dist/internal.js").WritableDraft<State>;
|
|
18
|
+
setState: (state: import("immer/dist/internal.js").WritableDraft<State>, action: PayloadAction<{
|
|
19
|
+
state: string | null;
|
|
20
|
+
encrypted: boolean;
|
|
21
|
+
}>) => import("immer/dist/internal.js").WritableDraft<State>;
|
|
25
22
|
clearState: (state: import("immer/dist/internal.js").WritableDraft<State>, action: PayloadAction<{
|
|
26
23
|
encrypted: boolean;
|
|
27
24
|
}>) => import("immer/dist/internal.js").WritableDraft<State>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.mts","sourceRoot":"","sources":["../../src/store/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"state.d.mts","sourceRoot":"","sources":["../../src/store/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,UAAU;qFAMT,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;uFAUzC,aAAa,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;WAUnE,CAAC;AAEH,eAAO,MAAQ,QAAQ;WAtBc,MAAM,GAAG,IAAI;eAAa,OAAO;sBAsB7C,UAAU;eAZwB,OAAO;sBAYR,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO;;;;;;;;;;;;;;;;;;EAW1C"}
|
package/dist/store/store.cjs
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createStore =
|
|
6
|
+
exports.createStore = createStore;
|
|
7
7
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
8
8
|
const redux_saga_1 = __importDefault(require("redux-saga"));
|
|
9
9
|
const chain_1 = require("./chain.cjs");
|
|
@@ -51,5 +51,4 @@ function createStore({ state, unencryptedState }) {
|
|
|
51
51
|
runSaga: sagaMiddleware.run.bind(sagaMiddleware),
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
-
exports.createStore = createStore;
|
|
55
54
|
//# sourceMappingURL=store.cjs.map
|
package/dist/store/store.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.cjs","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.cjs","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":";;;;;AAmBA,kCAwCC;AA3DD,8CAAkD;AAClD,4DAA8C;AAE9C,uCAAqC;AACrC,uCAAqC;AACrC,uDAAqD;AACrD,uCAA+C;AAC/C,iDAA+C;AAC/C,iCAA+B;AAG/B;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAqB;IACxE,MAAM,cAAc,GAAG,IAAA,oBAAoB,GAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAA,wBAAc,EAAC;QAC3B,OAAO,EAAE;YACP,KAAK,EAAE,kBAAU,CAAC,OAAO;YACzB,aAAa,EAAE,kCAAkB,CAAC,OAAO;YACzC,KAAK,EAAE,kBAAU,CAAC,OAAO;YACzB,UAAU,EAAE,4BAAe,CAAC,OAAO;YACnC,EAAE,EAAE,YAAO,CAAC,OAAO;YACnB,KAAK,EAAE,kBAAU,CAAC,OAAO;SAC1B;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CACnC,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CACrE,cAAc,CACf;KACJ,CAAC,CAAC;IAEH,kCAAkC;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,QAAQ,CACZ,IAAA,gBAAQ,EAAC;YACP,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5B,SAAS,EAAE,IAAI;SAChB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,CAAC,QAAQ,CACZ,IAAA,gBAAQ,EAAC;YACP,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;YACvC,SAAS,EAAE,KAAK;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK;QACL,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;KACjD,CAAC;AACJ,CAAC","sourcesContent":["import { configureStore } from '@reduxjs/toolkit';\nimport createSagaMiddleware from 'redux-saga';\n\nimport { chainSlice } from './chain';\nimport { mocksSlice } from './mocks';\nimport { notificationsSlice } from './notifications';\nimport { setState, stateSlice } from './state';\nimport { trackablesSlice } from './trackables';\nimport { uiSlice } from './ui';\nimport type { SimulationOptions } from '../options';\n\n/**\n * Create a Redux store.\n *\n * @param options - The simulation options.\n * @param options.state - The initial state for the Snap.\n * @param options.unencryptedState - The initial unencrypted state for the Snap.\n * @returns A Redux store with the default state.\n */\nexport function createStore({ state, unencryptedState }: SimulationOptions) {\n const sagaMiddleware = createSagaMiddleware();\n const store = configureStore({\n reducer: {\n mocks: mocksSlice.reducer,\n notifications: notificationsSlice.reducer,\n state: stateSlice.reducer,\n trackables: trackablesSlice.reducer,\n ui: uiSlice.reducer,\n chain: chainSlice.reducer,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({ thunk: false, serializableCheck: false }).concat(\n sagaMiddleware,\n ),\n });\n\n // Set initial state for the Snap.\n if (state) {\n store.dispatch(\n setState({\n state: JSON.stringify(state),\n encrypted: true,\n }),\n );\n }\n\n if (unencryptedState) {\n store.dispatch(\n setState({\n state: JSON.stringify(unencryptedState),\n encrypted: false,\n }),\n );\n }\n\n return {\n store,\n runSaga: sagaMiddleware.run.bind(sagaMiddleware),\n };\n}\n\nexport type Store = ReturnType<typeof createStore>['store'];\nexport type ApplicationState = ReturnType<Store['getState']>;\nexport type RunSagaFunction = ReturnType<typeof createStore>['runSaga'];\n"]}
|
package/dist/store/store.d.cts
CHANGED
|
@@ -16,7 +16,7 @@ export declare function createStore({ state, unencryptedState }: SimulationOptio
|
|
|
16
16
|
ui: import("./ui.cjs").UiState;
|
|
17
17
|
chain: import("./chain.cjs").ChainState;
|
|
18
18
|
}, import("redux").AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[import("redux-saga").SagaMiddleware<object>]>>;
|
|
19
|
-
runSaga: <S extends import("redux-saga").Saga>(saga: S, ...args: Parameters<S>) => import("redux-saga").Task
|
|
19
|
+
runSaga: <S extends import("redux-saga").Saga>(saga: S, ...args: Parameters<S>) => import("redux-saga").Task;
|
|
20
20
|
};
|
|
21
21
|
export type Store = ReturnType<typeof createStore>['store'];
|
|
22
22
|
export type ApplicationState = ReturnType<Store['getState']>;
|
package/dist/store/store.d.mts
CHANGED
|
@@ -16,7 +16,7 @@ export declare function createStore({ state, unencryptedState }: SimulationOptio
|
|
|
16
16
|
ui: import("./ui.mjs").UiState;
|
|
17
17
|
chain: import("./chain.mjs").ChainState;
|
|
18
18
|
}, import("redux").AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[import("redux-saga").SagaMiddleware<object>]>>;
|
|
19
|
-
runSaga: <S extends import("redux-saga").Saga>(saga: S, ...args: Parameters<S>) => import("redux-saga").Task
|
|
19
|
+
runSaga: <S extends import("redux-saga").Saga>(saga: S, ...args: Parameters<S>) => import("redux-saga").Task;
|
|
20
20
|
};
|
|
21
21
|
export type Store = ReturnType<typeof createStore>['store'];
|
|
22
22
|
export type ApplicationState = ReturnType<Store['getState']>;
|
|
@@ -32,8 +32,8 @@ export declare const trackablesSlice: import("@reduxjs/toolkit").Slice<Trackable
|
|
|
32
32
|
}, "trackables">;
|
|
33
33
|
export declare const trackError: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("@metamask/snaps-sdk").TrackableError, "trackables/trackError">, trackEvent: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
34
34
|
event: string;
|
|
35
|
-
properties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
36
|
-
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
35
|
+
properties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
36
|
+
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
37
37
|
}, "trackables/trackEvent">, startTrace: import("@reduxjs/toolkit").ActionCreatorWithPayload<TraceRequest, "trackables/startTrace">, endTrace: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("@metamask/snaps-sdk").EndTraceRequest, "trackables/endTrace">, clearTrackables: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"trackables/clearTrackables">;
|
|
38
38
|
/**
|
|
39
39
|
* Get the errors from the state.
|
|
@@ -68,12 +68,12 @@ export declare const getEvents: ((state: {
|
|
|
68
68
|
chain: import("./chain.cjs").ChainState;
|
|
69
69
|
}) => {
|
|
70
70
|
event: string;
|
|
71
|
-
properties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
72
|
-
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
71
|
+
properties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
72
|
+
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
73
73
|
}[]) & import("reselect").OutputSelectorFields<(args_0: TrackablesState) => {
|
|
74
74
|
event: string;
|
|
75
|
-
properties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
76
|
-
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
75
|
+
properties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
76
|
+
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
77
77
|
}[], {
|
|
78
78
|
clearCache: () => void;
|
|
79
79
|
}> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackables.d.cts","sourceRoot":"","sources":["../../src/store/trackables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAMtD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAYF,eAAO,MAAM,eAAe;iGAII,
|
|
1
|
+
{"version":3,"file":"trackables.d.cts","sourceRoot":"","sources":["../../src/store/trackables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAMtD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAYF,eAAO,MAAM,eAAe;iGAII,aAAa,CAAC,YAAY,CAAC;iGAG3B,aAAa,CAAC,YAAY,CAAC;iGAG3B,aAAa,CAAC,YAAY,CAAC;+FAI7B,aAAa,CAAC,cAAc,CAAC;;gBAoBzD,CAAC;AAEH,eAAO,MAAQ,UAAU,8HAAE,UAAU;;;;6BAAE,UAAU,8FAAE,QAAQ,6HAAE,eAAe,sFACnD,CAAC;AAE1B;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAGrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;CAGrB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAGrB,CAAC"}
|
|
@@ -32,8 +32,8 @@ export declare const trackablesSlice: import("@reduxjs/toolkit").Slice<Trackable
|
|
|
32
32
|
}, "trackables">;
|
|
33
33
|
export declare const trackError: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("@metamask/snaps-sdk").TrackableError, "trackables/trackError">, trackEvent: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
34
34
|
event: string;
|
|
35
|
-
properties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
36
|
-
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
35
|
+
properties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
36
|
+
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
37
37
|
}, "trackables/trackEvent">, startTrace: import("@reduxjs/toolkit").ActionCreatorWithPayload<TraceRequest, "trackables/startTrace">, endTrace: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("@metamask/snaps-sdk").EndTraceRequest, "trackables/endTrace">, clearTrackables: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"trackables/clearTrackables">;
|
|
38
38
|
/**
|
|
39
39
|
* Get the errors from the state.
|
|
@@ -68,12 +68,12 @@ export declare const getEvents: ((state: {
|
|
|
68
68
|
chain: import("./chain.mjs").ChainState;
|
|
69
69
|
}) => {
|
|
70
70
|
event: string;
|
|
71
|
-
properties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
72
|
-
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
71
|
+
properties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
72
|
+
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
73
73
|
}[]) & import("reselect").OutputSelectorFields<(args_0: TrackablesState) => {
|
|
74
74
|
event: string;
|
|
75
|
-
properties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
76
|
-
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json
|
|
75
|
+
properties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
76
|
+
sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json>;
|
|
77
77
|
}[], {
|
|
78
78
|
clearCache: () => void;
|
|
79
79
|
}> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackables.d.mts","sourceRoot":"","sources":["../../src/store/trackables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAMtD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAYF,eAAO,MAAM,eAAe;iGAII,
|
|
1
|
+
{"version":3,"file":"trackables.d.mts","sourceRoot":"","sources":["../../src/store/trackables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAMtD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAC;AAYF,eAAO,MAAM,eAAe;iGAII,aAAa,CAAC,YAAY,CAAC;iGAG3B,aAAa,CAAC,YAAY,CAAC;iGAG3B,aAAa,CAAC,YAAY,CAAC;+FAI7B,aAAa,CAAC,cAAc,CAAC;;gBAoBzD,CAAC;AAEH,eAAO,MAAQ,UAAU,8HAAE,UAAU;;;;6BAAE,UAAU,8FAAE,QAAQ,6HAAE,eAAe,sFACnD,CAAC;AAE1B;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAGrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;CAGrB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAGrB,CAAC"}
|
package/dist/store/ui.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.cts","sourceRoot":"","sources":["../../src/store/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,4BAA4B;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,mBAAmB,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC5B,CAAC;AAMF,eAAO,MAAM,OAAO;yFAIY,
|
|
1
|
+
{"version":3,"file":"ui.d.cts","sourceRoot":"","sources":["../../src/store/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,4BAA4B;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,mBAAmB,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC5B,CAAC;AAMF,eAAO,MAAM,OAAO;yFAIY,aAAa,CAAC,SAAS,CAAC;;QAOtD,CAAC;AAEH,eAAO,MAAM,gBAAgB,0EAE5B,CAAC;AAEF,eAAO,MAAQ,YAAY,qFAAE,cAAc,6EAAoB,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAG/B,CAAC"}
|
package/dist/store/ui.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.mts","sourceRoot":"","sources":["../../src/store/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,4BAA4B;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,mBAAmB,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC5B,CAAC;AAMF,eAAO,MAAM,OAAO;yFAIY,
|
|
1
|
+
{"version":3,"file":"ui.d.mts","sourceRoot":"","sources":["../../src/store/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,4BAA4B;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB;AAKtD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,mBAAmB,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC5B,CAAC;AAMF,eAAO,MAAM,OAAO;yFAIY,aAAa,CAAC,SAAS,CAAC;;QAOtD,CAAC;AAEH,eAAO,MAAM,gBAAgB,0EAE5B,CAAC;AAEF,eAAO,MAAQ,YAAY,qFAAE,cAAc,6EAAoB,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAG/B,CAAC"}
|
package/dist/structs.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SnapResponseStruct = exports.SnapResponseWithInterfaceStruct = exports.SnapResponseWithoutInterfaceStruct = exports.InterfaceStruct = exports.JsonRpcMockOptionsStruct = exports.SnapOptionsStruct = exports.NameLookupOptionsStruct = exports.BaseNameLookupOptionsStruct = exports.SignatureOptionsStruct = exports.TransactionOptionsStruct = void 0;
|
|
4
|
+
exports.assertIsResponseWithInterface = assertIsResponseWithInterface;
|
|
4
5
|
const snaps_sdk_1 = require("@metamask/snaps-sdk");
|
|
5
6
|
const jsx_1 = require("@metamask/snaps-sdk/jsx");
|
|
6
7
|
const snaps_utils_1 = require("@metamask/snaps-utils");
|
|
@@ -54,7 +55,7 @@ exports.TransactionOptionsStruct = (0, superstruct_1.object)({
|
|
|
54
55
|
* The gas limit to use for the transaction. The gas limit may be specified
|
|
55
56
|
* as a `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `21_000`.
|
|
56
57
|
*/
|
|
57
|
-
gasLimit: (0, superstruct_1.defaulted)((0, superstruct_1.coerce)(utils_1.StrictHexStruct, BytesLikeStruct, (value) => (0, utils_1.bytesToHex)((0, utils_1.valueToBytes)(value))), (0, utils_1.valueToBytes)(
|
|
58
|
+
gasLimit: (0, superstruct_1.defaulted)((0, superstruct_1.coerce)(utils_1.StrictHexStruct, BytesLikeStruct, (value) => (0, utils_1.bytesToHex)((0, utils_1.valueToBytes)(value))), (0, utils_1.valueToBytes)(21_000)),
|
|
58
59
|
/**
|
|
59
60
|
* The max fee per gas (in Wei) to use for the transaction. The max fee per
|
|
60
61
|
* gas may be specified as a `number`, `bigint`, `string`, or `Uint8Array`.
|
|
@@ -204,5 +205,4 @@ exports.SnapResponseStruct = (0, superstruct_1.union)([
|
|
|
204
205
|
function assertIsResponseWithInterface(response) {
|
|
205
206
|
(0, utils_1.assertStruct)(response, exports.SnapResponseWithInterfaceStruct);
|
|
206
207
|
}
|
|
207
|
-
exports.assertIsResponseWithInterface = assertIsResponseWithInterface;
|
|
208
208
|
//# sourceMappingURL=structs.cjs.map
|
package/dist/structs.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structs.cjs","sourceRoot":"","sources":["../src/structs.ts"],"names":[],"mappings":";;;AAAA,mDAAkE;AAClE,iDAA2D;AAC3D,uDAA6D;AAC7D,uDAkB+B;AAC/B,2CAMyB;AACzB,mCAAqC;AAIrC,oDAAoD;AACpD,MAAM,eAAe,GAAG,IAAA,mBAAK,EAAC;IAC5B,IAAA,oBAAM,GAAE;IACR,IAAA,oBAAM,GAAE;IACR,IAAA,oBAAM,GAAE;IACR,IAAA,sBAAQ,EAAC,UAAU,CAAC;CACrB,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,IAAA,oBAAM,EAAC;IAC7C;;OAEG;IACH,OAAO,EAAE,IAAA,uBAAS,EAAC,IAAA,oBAAM,GAAE,EAAE,UAAU,CAAC;IAExC;;OAEG;IACH,MAAM,EAAE,IAAA,uBAAS,EAAC,IAAA,oBAAM,GAAE,EAAE,aAAa,CAAC;IAE1C;;;OAGG;IACH,gDAAgD;IAChD,IAAI,EAAE,IAAA,oBAAM,EAAC,uBAAe,EAAE,IAAA,sBAAQ,EAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;QACjE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAA,kBAAU,EAAC,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF;;;OAGG;IACH,gDAAgD;IAChD,EAAE,EAAE,IAAA,oBAAM,EAAC,uBAAe,EAAE,IAAA,sBAAQ,EAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;QAC/D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAA,kBAAU,EAAC,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF;;;OAGG;IACH,KAAK,EAAE,IAAA,uBAAS,EACd,IAAA,oBAAM,EAAC,uBAAe,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACjD,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAChC,EACD,KAAK,CACN;IAED;;;OAGG;IACH,QAAQ,EAAE,IAAA,uBAAS,EACjB,IAAA,oBAAM,EAAC,uBAAe,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACjD,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAChC,EACD,IAAA,oBAAY,EAAC,KAAM,CAAC,CACrB;IAED;;;;OAIG;IACH,YAAY,EAAE,IAAA,uBAAS,EACrB,IAAA,oBAAM,EAAC,uBAAe,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACjD,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAChC,EACD,IAAA,oBAAY,EAAC,CAAC,CAAC,CAChB;IAED;;;;OAIG;IACH,oBAAoB,EAAE,IAAA,uBAAS,EAC7B,IAAA,oBAAM,EAAC,uBAAe,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACjD,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAChC,EACD,IAAA,oBAAY,EAAC,CAAC,CAAC,CAChB;IAED;;;OAGG;IACH,KAAK,EAAE,IAAA,uBAAS,EACd,IAAA,oBAAM,EAAC,uBAAe,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACjD,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAChC,EACD,IAAA,oBAAY,EAAC,CAAC,CAAC,CAChB;IAED;;;OAGG;IACH,IAAI,EAAE,IAAA,uBAAS,EACb,IAAA,oBAAM,EAAC,IAAA,mBAAK,EAAC,CAAC,uBAAe,EAAE,IAAA,qBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CACzE,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAChC,EACD,IAAI,CACL;CACF,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,IAAA,oBAAM,EAAC;IAC3C;;OAEG;IACH,MAAM,EAAE,IAAA,uBAAS,EAAC,IAAA,oBAAM,GAAE,EAAE,aAAa,CAAC;IAE1C;;;OAGG;IACH,IAAI,EAAE,IAAA,oBAAM,EAAC,uBAAe,EAAE,IAAA,sBAAQ,EAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;QACjE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAA,kBAAU,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAA,kBAAU,EAAC,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF;;;;OAIG;IACH,IAAI,EAAE,IAAA,uBAAS,EACb,IAAA,mBAAK,EAAC;QACJ,uBAAe;QACf,IAAA,qBAAO,EAAC,IAAI,CAAC;QACb,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,iBAAG,GAAE,CAAC;QACvB,IAAA,mBAAK,EAAC,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,iBAAG,GAAE,CAAC,CAAC;KAC/B,CAAC,EACF,IAAI,CACL;IAED;;OAEG;IACH,eAAe,EAAE,IAAA,uBAAS,EACxB,IAAA,mBAAK,EAAC;QACJ,IAAA,qBAAO,EAAC,eAAe,CAAC;QACxB,IAAA,qBAAO,EAAC,mBAAmB,CAAC;QAC5B,IAAA,qBAAO,EAAC,sBAAsB,CAAC;QAC/B,IAAA,qBAAO,EAAC,sBAAsB,CAAC;KAChC,CAAC,EACF,eAAe,CAChB;CACF,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,IAAA,oBAAM,EAAC;IAChD;;OAEG;IACH,OAAO,EAAE,IAAA,uBAAS,EAAC,IAAA,oBAAM,GAAE,EAAE,UAAU,CAAC;CACzC,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,IAAA,mBAAK,EAAC;IAC3C,IAAA,oBAAM,EACJ,mCAA2B,EAC3B,IAAA,oBAAM,EAAC;QACL;;WAEG;QACH,OAAO,EAAE,IAAA,oBAAM,GAAE;KAClB,CAAC,CACH;IACD,IAAA,oBAAM,EACJ,mCAA2B,EAC3B,IAAA,oBAAM,EAAC;QACL;;WAEG;QACH,MAAM,EAAE,IAAA,oBAAM,GAAE;KACjB,CAAC,CACH;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAA,oBAAM,EAAC;IACtC;;;OAGG;IACH,OAAO,EAAE,IAAA,uBAAS,EAAC,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC,EAAE,IAAI,CAAC;CAC7C,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,IAAA,oBAAM,EAAC;IAC7C,MAAM,EAAE,IAAA,oBAAM,GAAE;IAChB,MAAM,EAAE,kBAAU;CACnB,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,IAAA,kBAAI,EAAC;IAClC,OAAO,EAAE,IAAA,sBAAQ,EAAC,sBAAgB,CAAC;CACpC,CAAC,CAAC;AAEU,QAAA,kCAAkC,GAAG,IAAA,oBAAM,EAAC;IACvD,EAAE,EAAE,IAAA,oBAAM,GAAE;IAEZ,QAAQ,EAAE,IAAA,mBAAK,EAAC;QACd,IAAA,oBAAM,EAAC;YACL,MAAM,EAAE,kBAAU;SACnB,CAAC;QACF,IAAA,oBAAM,EAAC;YACL,KAAK,EAAE,kBAAU;SAClB,CAAC;KACH,CAAC;IAEF,aAAa,EAAE,IAAA,mBAAK,EAClB,IAAA,oBAAM,EAAC;QACL,EAAE,EAAE,IAAA,oBAAM,GAAE;QACZ,OAAO,EAAE,IAAA,oBAAM,GAAE;QACjB,IAAI,EAAE,IAAA,mBAAK,EAAC;YACV,IAAA,qBAAS,EAAC,4BAAgB,CAAC,KAAK,CAAC;YACjC,IAAA,qBAAS,EAAC,4BAAgB,CAAC,MAAM,CAAC;SACnC,CAAC;QACF,KAAK,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC;QACzB,OAAO,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC;QAC3B,UAAU,EAAE,IAAA,sBAAQ,EAClB,IAAA,oBAAM,EAAC;YACL,IAAI,EAAE,IAAA,oBAAM,GAAE;YACd,IAAI,EAAE,IAAA,oBAAM,GAAE;SACf,CAAC,CACH;KACF,CAAC,CACH;IAED,OAAO,EAAE,IAAA,oBAAM,EAAC;QACd,MAAM,EAAE,IAAA,mBAAK,EAAC,kCAAoB,CAAC;QAEnC,MAAM,EAAE,IAAA,mBAAK,EACX,IAAA,oBAAM,EAAC;YACL,KAAK,EAAE,IAAA,oBAAM,GAAE;YACf,UAAU,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,kBAAU,CAAC,CAAC;YAClD,mBAAmB,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,kBAAU,CAAC,CAAC;SAC5D,CAAC,CACH;QAED,MAAM,EAAE,IAAA,mBAAK,EACX,IAAA,oBAAM,EAAC;YACL,EAAE,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC;YACtB,IAAI,EAAE,IAAA,oBAAM,GAAE;YACd,aAAa,EAAE,IAAA,sBAAQ,EAAC,kBAAU,CAAC;YACnC,SAAS,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC;YAC7B,IAAI,EAAE,IAAA,sBAAQ,EACZ,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,mBAAK,EAAC,CAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,oBAAM,GAAE,EAAE,IAAA,qBAAO,GAAE,CAAC,CAAC,CAAC,CACzD;YACD,IAAI,EAAE,IAAA,sBAAQ,EACZ,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,mBAAK,EAAC,CAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,oBAAM,GAAE,EAAE,IAAA,qBAAO,GAAE,CAAC,CAAC,CAAC,CACzD;SACF,CAAC,CACH;KACF,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,+BAA+B,GAAG,IAAA,oBAAM,EACnD,0CAAkC,EAClC,IAAA,oBAAM,EAAC;IACL,YAAY,EAAE,IAAA,kBAAI,GAAE;CACrB,CAAC,CACH,CAAC;AAEW,QAAA,kBAAkB,GAAG,IAAA,mBAAK,EAAC;IACtC,0CAAkC;IAClC,uCAA+B;CAChC,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAgB,6BAA6B,CAC3C,QAAsB;IAEtB,IAAA,oBAAY,EAAC,QAAQ,EAAE,uCAA+B,CAAC,CAAC;AAC1D,CAAC;AAJD,sEAIC","sourcesContent":["import { NotificationType, enumValue } from '@metamask/snaps-sdk';\nimport { JSXElementStruct } from '@metamask/snaps-sdk/jsx';\nimport { TrackableErrorStruct } from '@metamask/snaps-utils';\nimport {\n array,\n assign,\n bigint,\n coerce,\n defaulted,\n instance,\n literal,\n number,\n object,\n optional,\n string,\n union,\n record,\n any,\n func,\n type,\n boolean,\n} from '@metamask/superstruct';\nimport {\n assertStruct,\n bytesToHex,\n JsonStruct,\n StrictHexStruct,\n valueToBytes,\n} from '@metamask/utils';\nimport { randomBytes } from 'crypto';\n\nimport type { SnapResponse, SnapResponseWithInterface } from './types';\n\n// TODO: Export this from `@metamask/utils` instead.\nconst BytesLikeStruct = union([\n bigint(),\n number(),\n string(),\n instance(Uint8Array),\n]);\n\nexport const TransactionOptionsStruct = object({\n /**\n * The CAIP-2 chain ID to send the transaction on. Defaults to `eip155:1`.\n */\n chainId: defaulted(string(), 'eip155:1'),\n\n /**\n * The origin to send the transaction from. Defaults to `metamask.io`.\n */\n origin: defaulted(string(), 'metamask.io'),\n\n /**\n * The address to send the transaction from. Defaults to a randomly generated\n * address.\n */\n // TODO: Move this coercer to `@metamask/utils`.\n from: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The address to send the transaction to. Defaults to a randomly generated\n * address.\n */\n // TODO: Move this coercer to `@metamask/utils`.\n to: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The value to send with the transaction. The value may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.\n */\n value: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n '0x0',\n ),\n\n /**\n * The gas limit to use for the transaction. The gas limit may be specified\n * as a `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `21_000`.\n */\n gasLimit: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(21_000),\n ),\n\n /**\n * The max fee per gas (in Wei) to use for the transaction. The max fee per\n * gas may be specified as a `number`, `bigint`, `string`, or `Uint8Array`.\n * Defaults to `1`.\n */\n maxFeePerGas: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(1),\n ),\n\n /**\n * The max priority fee per gas (in Wei) to use for the transaction. The max\n * priority fee per gas may be specified as a `number`, `bigint`, `string`,\n * or `Uint8Array`. Defaults to `1`.\n */\n maxPriorityFeePerGas: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(1),\n ),\n\n /**\n * The nonce to use for the transaction. The nonce may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.\n */\n nonce: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(0),\n ),\n\n /**\n * The data to send with the transaction. The data may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0x`.\n */\n data: defaulted(\n coerce(union([StrictHexStruct, literal('0x')]), BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n '0x',\n ),\n});\n\nexport const SignatureOptionsStruct = object({\n /**\n * The origin making the signature request.\n */\n origin: defaulted(string(), 'metamask.io'),\n\n /**\n * The address signing the signature request. Defaults to a randomly generated\n * address.\n */\n from: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The data to send with the transaction. The data may be specified as a\n * `string`, an object, or an array of objects. This covers the data types\n * for the supported signature methods. Defaults to `0x`.\n */\n data: defaulted(\n union([\n StrictHexStruct,\n literal('0x'),\n record(string(), any()),\n array(record(string(), any())),\n ]),\n '0x',\n ),\n\n /**\n * The signature method being used.\n */\n signatureMethod: defaulted(\n union([\n literal('personal_sign'),\n literal('eth_signTypedData'),\n literal('eth_signTypedData_v3'),\n literal('eth_signTypedData_v4'),\n ]),\n 'personal_sign',\n ),\n});\n\nexport const BaseNameLookupOptionsStruct = object({\n /**\n * The CAIP-2 chain ID. Defaults to `eip155:1`.\n */\n chainId: defaulted(string(), 'eip155:1'),\n});\n\nexport const NameLookupOptionsStruct = union([\n assign(\n BaseNameLookupOptionsStruct,\n object({\n /**\n * Address to lookup.\n */\n address: string(),\n }),\n ),\n assign(\n BaseNameLookupOptionsStruct,\n object({\n /**\n * Domain name to lookup.\n */\n domain: string(),\n }),\n ),\n]);\n\nexport const SnapOptionsStruct = object({\n /**\n * The timeout in milliseconds to use for requests to the snap. Defaults to\n * `1000`.\n */\n timeout: defaulted(optional(number()), 1000),\n});\n\nexport const JsonRpcMockOptionsStruct = object({\n method: string(),\n result: JsonStruct,\n});\n\nexport const InterfaceStruct = type({\n content: optional(JSXElementStruct),\n});\n\nexport const SnapResponseWithoutInterfaceStruct = object({\n id: string(),\n\n response: union([\n object({\n result: JsonStruct,\n }),\n object({\n error: JsonStruct,\n }),\n ]),\n\n notifications: array(\n object({\n id: string(),\n message: string(),\n type: union([\n enumValue(NotificationType.InApp),\n enumValue(NotificationType.Native),\n ]),\n title: optional(string()),\n content: optional(string()),\n footerLink: optional(\n object({\n href: string(),\n text: string(),\n }),\n ),\n }),\n ),\n\n tracked: object({\n errors: array(TrackableErrorStruct),\n\n events: array(\n object({\n event: string(),\n properties: optional(record(string(), JsonStruct)),\n sensitiveProperties: optional(record(string(), JsonStruct)),\n }),\n ),\n\n traces: array(\n object({\n id: optional(string()),\n name: string(),\n parentContext: optional(JsonStruct),\n startTime: optional(number()),\n data: optional(\n record(string(), union([string(), number(), boolean()])),\n ),\n tags: optional(\n record(string(), union([string(), number(), boolean()])),\n ),\n }),\n ),\n }),\n});\n\nexport const SnapResponseWithInterfaceStruct = assign(\n SnapResponseWithoutInterfaceStruct,\n object({\n getInterface: func(),\n }),\n);\n\nexport const SnapResponseStruct = union([\n SnapResponseWithoutInterfaceStruct,\n SnapResponseWithInterfaceStruct,\n]);\n\n/**\n * Ensure that the actual response contains `getInterface`.\n *\n * @param response - The response of the handler.\n */\nexport function assertIsResponseWithInterface(\n response: SnapResponse,\n): asserts response is SnapResponseWithInterface {\n assertStruct(response, SnapResponseWithInterfaceStruct);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"structs.cjs","sourceRoot":"","sources":["../src/structs.ts"],"names":[],"mappings":"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","sourcesContent":["import { NotificationType, enumValue } from '@metamask/snaps-sdk';\nimport { JSXElementStruct } from '@metamask/snaps-sdk/jsx';\nimport { TrackableErrorStruct } from '@metamask/snaps-utils';\nimport {\n array,\n assign,\n bigint,\n coerce,\n defaulted,\n instance,\n literal,\n number,\n object,\n optional,\n string,\n union,\n record,\n any,\n func,\n type,\n boolean,\n} from '@metamask/superstruct';\nimport {\n assertStruct,\n bytesToHex,\n JsonStruct,\n StrictHexStruct,\n valueToBytes,\n} from '@metamask/utils';\nimport { randomBytes } from 'crypto';\n\nimport type { SnapResponse, SnapResponseWithInterface } from './types';\n\n// TODO: Export this from `@metamask/utils` instead.\nconst BytesLikeStruct = union([\n bigint(),\n number(),\n string(),\n instance(Uint8Array),\n]);\n\nexport const TransactionOptionsStruct = object({\n /**\n * The CAIP-2 chain ID to send the transaction on. Defaults to `eip155:1`.\n */\n chainId: defaulted(string(), 'eip155:1'),\n\n /**\n * The origin to send the transaction from. Defaults to `metamask.io`.\n */\n origin: defaulted(string(), 'metamask.io'),\n\n /**\n * The address to send the transaction from. Defaults to a randomly generated\n * address.\n */\n // TODO: Move this coercer to `@metamask/utils`.\n from: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The address to send the transaction to. Defaults to a randomly generated\n * address.\n */\n // TODO: Move this coercer to `@metamask/utils`.\n to: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The value to send with the transaction. The value may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.\n */\n value: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n '0x0',\n ),\n\n /**\n * The gas limit to use for the transaction. The gas limit may be specified\n * as a `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `21_000`.\n */\n gasLimit: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(21_000),\n ),\n\n /**\n * The max fee per gas (in Wei) to use for the transaction. The max fee per\n * gas may be specified as a `number`, `bigint`, `string`, or `Uint8Array`.\n * Defaults to `1`.\n */\n maxFeePerGas: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(1),\n ),\n\n /**\n * The max priority fee per gas (in Wei) to use for the transaction. The max\n * priority fee per gas may be specified as a `number`, `bigint`, `string`,\n * or `Uint8Array`. Defaults to `1`.\n */\n maxPriorityFeePerGas: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(1),\n ),\n\n /**\n * The nonce to use for the transaction. The nonce may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0`.\n */\n nonce: defaulted(\n coerce(StrictHexStruct, BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n valueToBytes(0),\n ),\n\n /**\n * The data to send with the transaction. The data may be specified as a\n * `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `0x`.\n */\n data: defaulted(\n coerce(union([StrictHexStruct, literal('0x')]), BytesLikeStruct, (value) =>\n bytesToHex(valueToBytes(value)),\n ),\n '0x',\n ),\n});\n\nexport const SignatureOptionsStruct = object({\n /**\n * The origin making the signature request.\n */\n origin: defaulted(string(), 'metamask.io'),\n\n /**\n * The address signing the signature request. Defaults to a randomly generated\n * address.\n */\n from: coerce(StrictHexStruct, optional(BytesLikeStruct), (value) => {\n if (value) {\n return bytesToHex(valueToBytes(value));\n }\n\n return bytesToHex(randomBytes(20));\n }),\n\n /**\n * The data to send with the transaction. The data may be specified as a\n * `string`, an object, or an array of objects. This covers the data types\n * for the supported signature methods. Defaults to `0x`.\n */\n data: defaulted(\n union([\n StrictHexStruct,\n literal('0x'),\n record(string(), any()),\n array(record(string(), any())),\n ]),\n '0x',\n ),\n\n /**\n * The signature method being used.\n */\n signatureMethod: defaulted(\n union([\n literal('personal_sign'),\n literal('eth_signTypedData'),\n literal('eth_signTypedData_v3'),\n literal('eth_signTypedData_v4'),\n ]),\n 'personal_sign',\n ),\n});\n\nexport const BaseNameLookupOptionsStruct = object({\n /**\n * The CAIP-2 chain ID. Defaults to `eip155:1`.\n */\n chainId: defaulted(string(), 'eip155:1'),\n});\n\nexport const NameLookupOptionsStruct = union([\n assign(\n BaseNameLookupOptionsStruct,\n object({\n /**\n * Address to lookup.\n */\n address: string(),\n }),\n ),\n assign(\n BaseNameLookupOptionsStruct,\n object({\n /**\n * Domain name to lookup.\n */\n domain: string(),\n }),\n ),\n]);\n\nexport const SnapOptionsStruct = object({\n /**\n * The timeout in milliseconds to use for requests to the snap. Defaults to\n * `1000`.\n */\n timeout: defaulted(optional(number()), 1000),\n});\n\nexport const JsonRpcMockOptionsStruct = object({\n method: string(),\n result: JsonStruct,\n});\n\nexport const InterfaceStruct = type({\n content: optional(JSXElementStruct),\n});\n\nexport const SnapResponseWithoutInterfaceStruct = object({\n id: string(),\n\n response: union([\n object({\n result: JsonStruct,\n }),\n object({\n error: JsonStruct,\n }),\n ]),\n\n notifications: array(\n object({\n id: string(),\n message: string(),\n type: union([\n enumValue(NotificationType.InApp),\n enumValue(NotificationType.Native),\n ]),\n title: optional(string()),\n content: optional(string()),\n footerLink: optional(\n object({\n href: string(),\n text: string(),\n }),\n ),\n }),\n ),\n\n tracked: object({\n errors: array(TrackableErrorStruct),\n\n events: array(\n object({\n event: string(),\n properties: optional(record(string(), JsonStruct)),\n sensitiveProperties: optional(record(string(), JsonStruct)),\n }),\n ),\n\n traces: array(\n object({\n id: optional(string()),\n name: string(),\n parentContext: optional(JsonStruct),\n startTime: optional(number()),\n data: optional(\n record(string(), union([string(), number(), boolean()])),\n ),\n tags: optional(\n record(string(), union([string(), number(), boolean()])),\n ),\n }),\n ),\n }),\n});\n\nexport const SnapResponseWithInterfaceStruct = assign(\n SnapResponseWithoutInterfaceStruct,\n object({\n getInterface: func(),\n }),\n);\n\nexport const SnapResponseStruct = union([\n SnapResponseWithoutInterfaceStruct,\n SnapResponseWithInterfaceStruct,\n]);\n\n/**\n * Ensure that the actual response contains `getInterface`.\n *\n * @param response - The response of the handler.\n */\nexport function assertIsResponseWithInterface(\n response: SnapResponse,\n): asserts response is SnapResponseWithInterface {\n assertStruct(response, SnapResponseWithInterfaceStruct);\n}\n"]}
|
package/dist/structs.mjs
CHANGED
|
@@ -51,7 +51,7 @@ export const TransactionOptionsStruct = object({
|
|
|
51
51
|
* The gas limit to use for the transaction. The gas limit may be specified
|
|
52
52
|
* as a `number`, `bigint`, `string`, or `Uint8Array`. Defaults to `21_000`.
|
|
53
53
|
*/
|
|
54
|
-
gasLimit: defaulted(coerce(StrictHexStruct, BytesLikeStruct, (value) => bytesToHex(valueToBytes(value))), valueToBytes(
|
|
54
|
+
gasLimit: defaulted(coerce(StrictHexStruct, BytesLikeStruct, (value) => bytesToHex(valueToBytes(value))), valueToBytes(21_000)),
|
|
55
55
|
/**
|
|
56
56
|
* The max fee per gas (in Wei) to use for the transaction. The max fee per
|
|
57
57
|
* gas may be specified as a `number`, `bigint`, `string`, or `Uint8Array`.
|