@ledgerhq/device-signer-kit-ethereum 0.0.0-multisig-20250910160951 → 0.0.0-no-issue-rn-ble-reconnection-20250916150911
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/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/cjs/api/index.js +1 -1
- package/lib/cjs/api/index.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideContextsTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +2 -2
- package/lib/cjs/package.json +1 -1
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/esm/api/index.js +1 -1
- package/lib/esm/api/index.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideContextsTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +2 -2
- package/lib/esm/package.json +1 -1
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +2 -1
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/index.d.ts +5 -9
- package/lib/types/api/index.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +1 -1
- package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ProvideContextsTask.d.ts +3 -1
- package/lib/types/internal/app-binder/task/ProvideContextsTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +1 -1
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +7 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ClearSignContextType as R,TypedDataCalldataParamPresence as I}from"@ledgerhq/context-module";import{CommandResultFactory as a,hexaStringToBuffer as k,LoadCertificateCommand as M,UnknownDeviceExchangeError as S}from"@ledgerhq/device-management-kit";import{Just as s,Nothing as C}from"purify-ts";import{ProvideProxyInfoCommand as G}from"../../app-binder/command/ProvideProxyInfoCommand";import{ProvideTokenInformationCommand as P}from"../../app-binder/command/ProvideTokenInformationCommand";import{ProvideWeb3CheckCommand as F}from"../../app-binder/command/ProvideWeb3CheckCommand";import{CalldataParamPresence as A,Eip712FilterType as d,SendEIP712FilteringCommand as n}from"../../app-binder/command/SendEIP712FilteringCommand";import{SendEIP712StructDefinitionCommand as U,StructDefinitionCommand as B}from"../../app-binder/command/SendEIP712StructDefinitionCommand";import{SendEIP712StructImplemCommand as q,StructImplemType as V}from"../../app-binder/command/SendEIP712StructImplemCommand";import{makeDeviceActionInternalApiMock as K}from"../../app-binder/device-action/__test-utils__/makeInternalApi";import{PrimitiveType as i,StructType as W,TypedDataValueArray as H,TypedDataValueField as y,TypedDataValueRoot as _}from"../../typed-data/model/Types";import{ProvideEIP712ContextTask as m}from"./ProvideEIP712ContextTask";describe("ProvideEIP712ContextTask",()=>{const e=K(),l=vi.fn(),r={getFieldContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn(),getSolanaContext:vi.fn()},b={EIP712Domain:{name:new i("string","string",C),chainId:new i("uint256","uint",s(32)),verifyingContract:new i("address","address",C)},PermitSingle:{details:new W("PermitDetails"),spender:new i("address","address",C),sigDeadline:new i("uint256","uint",s(32))},PermitDetails:{token:new i("address","address",C),amount:new i("uint160","uint",s(20)),expiration:new i("uint48","uint",s(6)),nonce:new i("uint48","uint",s(6))}},x=[{path:"",type:"",value:new _("EIP712Domain")},{path:"name",type:"string",value:new y(new TextEncoder().encode("Permit2"))},{path:"chainId",type:"uint256",value:new y(Uint8Array.from([137]))},{path:"verifyingContract",type:"address",value:new y(k("0x000000000022d473030f116ddee9f6b43ac78ba3"))}],u=[{path:"",type:"",value:new _("PermitSingle")},{path:"details.token",type:"address",value:new y(k("0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"))},{path:"details.amount",type:"uint160",value:new y(Uint8Array.from([18]))},{path:"details.expiration",type:"uint48",value:new y(Uint8Array.from([18]))},{path:"details.nonce",type:"uint48",value:new y(Uint8Array.from([0]))},{path:"spender",type:"address",value:new y(k("0xec7be89e9d109e7e3fec59c222cf297125fefda2"))},{path:"sigDeadline",type:"uint256",value:new y(Uint8Array.from([18]))}],p={type:"success",messageInfo:{displayName:"Permit2",filtersCount:4,signature:"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3"},trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{0:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",255:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"},filters:{"details.amount":{displayName:"Amount allowance",path:"details.amount",signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",tokenIndex:255,type:"amount"},"details.expiration":{displayName:"Approval expire",path:"details.expiration",signature:"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b",type:"datetime"},"details.token":{displayName:"Amount allowance",path:"details.token",signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733",tokenIndex:0,type:"token"},spender:{displayName:"Approve to spender",path:"spender",signature:"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb",type:"raw"}}},g=new i("address","address",C),T=new i("string","string",C),w=new i("uint256","uint",s(32)),O=new i("uint160","uint",s(20)),E=new i("uint48","uint",s(6)),N=t=>new W(t),v=t=>new U({command:B.Name,name:t}),c=(t,f)=>new U({command:B.Field,name:t,type:f}),h=t=>new q({type:V.ROOT,value:t}),D=t=>new q({type:V.ARRAY,value:t}),o=t=>new q({type:V.FIELD,value:{data:t,isLastChunk:!0}});beforeEach(()=>{vi.resetAllMocks(),l.mockReturnValue({run:async()=>{}})}),it("Send context with no clear signing context",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand.mock.calls).toHaveLength(24),expect(e.sendCommand.mock.calls[0][0]).toStrictEqual(v("EIP712Domain")),expect(e.sendCommand.mock.calls[1][0]).toStrictEqual(c("name",T)),expect(e.sendCommand.mock.calls[2][0]).toStrictEqual(c("chainId",w)),expect(e.sendCommand.mock.calls[3][0]).toStrictEqual(c("verifyingContract",g)),expect(e.sendCommand.mock.calls[4][0]).toStrictEqual(v("PermitDetails")),expect(e.sendCommand.mock.calls[5][0]).toStrictEqual(c("token",g)),expect(e.sendCommand.mock.calls[6][0]).toStrictEqual(c("amount",O)),expect(e.sendCommand.mock.calls[7][0]).toStrictEqual(c("expiration",E)),expect(e.sendCommand.mock.calls[8][0]).toStrictEqual(c("nonce",E)),expect(e.sendCommand.mock.calls[9][0]).toStrictEqual(v("PermitSingle")),expect(e.sendCommand.mock.calls[10][0]).toStrictEqual(c("details",N("PermitDetails"))),expect(e.sendCommand.mock.calls[11][0]).toStrictEqual(c("spender",g)),expect(e.sendCommand.mock.calls[12][0]).toStrictEqual(c("sigDeadline",w)),expect(e.sendCommand.mock.calls[13][0]).toStrictEqual(h("EIP712Domain")),expect(e.sendCommand.mock.calls[14][0]).toStrictEqual(o(Uint8Array.from([0,7,80,101,114,109,105,116,50]))),expect(e.sendCommand.mock.calls[15][0]).toStrictEqual(o(Uint8Array.from([0,1,137]))),expect(e.sendCommand.mock.calls[16][0]).toStrictEqual(o(Uint8Array.from([0,20,0,0,0,0,0,34,212,115,3,15,17,109,222,233,246,180,58,199,139,163]))),expect(e.sendCommand.mock.calls[17][0]).toStrictEqual(h("PermitSingle")),expect(e.sendCommand.mock.calls[18][0]).toStrictEqual(o(Uint8Array.from([0,20,124,235,35,253,107,192,173,213,158,98,172,37,87,130,112,207,241,185,246,25]))),expect(e.sendCommand.mock.calls[19][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[20][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[21][0]).toStrictEqual(o(Uint8Array.from([0,1,0]))),expect(e.sendCommand.mock.calls[22][0]).toStrictEqual(o(Uint8Array.from([0,20,236,123,232,158,157,16,158,126,63,236,89,194,34,207,41,113,37,254,253,162]))),expect(e.sendCommand.mock.calls[23][0]).toStrictEqual(o(Uint8Array.from([0,1,18])))}),it("Send context with clear signing",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(p),calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:{tokenIndex:4}})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:{tokenIndex:5}})),e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand.mock.calls).toHaveLength(32),expect(e.sendCommand.mock.calls[0][0]).toStrictEqual(v("EIP712Domain")),expect(e.sendCommand.mock.calls[1][0]).toStrictEqual(c("name",T)),expect(e.sendCommand.mock.calls[2][0]).toStrictEqual(c("chainId",w)),expect(e.sendCommand.mock.calls[3][0]).toStrictEqual(c("verifyingContract",g)),expect(e.sendCommand.mock.calls[4][0]).toStrictEqual(v("PermitDetails")),expect(e.sendCommand.mock.calls[5][0]).toStrictEqual(c("token",g)),expect(e.sendCommand.mock.calls[6][0]).toStrictEqual(c("amount",O)),expect(e.sendCommand.mock.calls[7][0]).toStrictEqual(c("expiration",E)),expect(e.sendCommand.mock.calls[8][0]).toStrictEqual(c("nonce",E)),expect(e.sendCommand.mock.calls[9][0]).toStrictEqual(v("PermitSingle")),expect(e.sendCommand.mock.calls[10][0]).toStrictEqual(c("details",N("PermitDetails"))),expect(e.sendCommand.mock.calls[11][0]).toStrictEqual(c("spender",g)),expect(e.sendCommand.mock.calls[12][0]).toStrictEqual(c("sigDeadline",w)),expect(e.sendCommand.mock.calls[13][0]).toStrictEqual(new n({type:d.Activation})),expect(e.sendCommand.mock.calls[14][0]).toStrictEqual(h("EIP712Domain")),expect(e.sendCommand.mock.calls[15][0]).toStrictEqual(o(Uint8Array.from([0,7,80,101,114,109,105,116,50]))),expect(e.sendCommand.mock.calls[16][0]).toStrictEqual(o(Uint8Array.from([0,1,137]))),expect(e.sendCommand.mock.calls[17][0]).toStrictEqual(o(Uint8Array.from([0,20,0,0,0,0,0,34,212,115,3,15,17,109,222,233,246,180,58,199,139,163]))),expect(e.sendCommand.mock.calls[18][0]).toStrictEqual(new n({type:d.MessageInfo,displayName:"Permit2",filtersCount:4,signature:"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3"})),expect(e.sendCommand.mock.calls[19][0]).toStrictEqual(h("PermitSingle")),expect(e.sendCommand.mock.calls[20][0]).toStrictEqual(new P({payload:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"})),expect(e.sendCommand.mock.calls[21][0]).toStrictEqual(new n({type:d.Token,discarded:!1,tokenIndex:4,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand.mock.calls[22][0]).toStrictEqual(o(Uint8Array.from([0,20,124,235,35,253,107,192,173,213,158,98,172,37,87,130,112,207,241,185,246,25]))),expect(e.sendCommand.mock.calls[23][0]).toStrictEqual(new P({payload:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"})),expect(e.sendCommand.mock.calls[24][0]).toStrictEqual(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:255,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand.mock.calls[25][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[26][0]).toStrictEqual(new n({type:d.Datetime,discarded:!1,displayName:"Approval expire",signature:"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b"})),expect(e.sendCommand.mock.calls[27][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[28][0]).toStrictEqual(o(Uint8Array.from([0,1,0]))),expect(e.sendCommand.mock.calls[29][0]).toStrictEqual(new n({type:d.Raw,discarded:!1,displayName:"Approve to spender",signature:"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb"})),expect(e.sendCommand.mock.calls[30][0]).toStrictEqual(o(Uint8Array.from([0,20,236,123,232,158,157,16,158,126,63,236,89,194,34,207,41,113,37,254,253,162]))),expect(e.sendCommand.mock.calls[31][0]).toStrictEqual(o(Uint8Array.from([0,1,18])))}),it("Both tokens unavailable",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:p.filters,trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand).not.toHaveBeenCalledWith(new P({payload:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"})),expect(e.sendCommand).not.toHaveBeenCalledWith(new P({payload:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Token,discarded:!1,tokenIndex:0,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:1,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("Provide calldata filters",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:{"details.amount":{displayName:"Value",path:"details.amount",signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-value"},"details.expiration":{displayName:"Callee",path:"details.expiration",signature:"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-callee"},spender:{displayName:"Spender",path:"spender",signature:"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-spender"},"details.token":{displayName:"Chain ID",path:"details.token",signature:"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-chain-id"},"details.nonce":{displayName:"Chain ID",path:"details.nonce",signature:"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:1,type:"calldata-selector"},sigDeadline:{displayName:"Amount",path:"sigDeadline",signature:"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:1,type:"calldata-amount"}},trustedNamesAddresses:{},calldatas:{0:{filter:{calldataIndex:0,displayName:"Transaction",valueFlag:!0,calleeFlag:I.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:I.VerifyingContract,signature:"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"},subset:{chainId:4660,data:"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99",from:"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619",selector:"0x778899aa",to:"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",value:4200000000000000n}},1:{filter:{calldataIndex:1,displayName:"Transaction",valueFlag:!0,calleeFlag:I.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:I.VerifyingContract,signature:"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"},subset:{chainId:4661,data:"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99",from:"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619",selector:"0x778899aa",to:"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",value:4300000000000000n}}},proxy:void 0,tokens:{}}),calldatasContexts:{0:[]}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(l).toHaveBeenCalledTimes(1),expect(l).toHaveBeenCalledWith(e,{contexts:[],derivationPath:"44'/60'/0'/0/0",serializedTransaction:new Uint8Array}),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataInfo,discarded:!1,calldataIndex:0,valueFlag:!0,calleeFlag:A.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:A.VerifyingContract,signature:"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataValue,discarded:!1,calldataIndex:0,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataCallee,discarded:!1,calldataIndex:0,signature:"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataSpender,discarded:!1,calldataIndex:0,signature:"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataChainId,discarded:!1,calldataIndex:0,signature:"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataInfo,discarded:!1,calldataIndex:1,valueFlag:!0,calleeFlag:A.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:A.VerifyingContract,signature:"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataSelector,discarded:!1,calldataIndex:1,signature:"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataAmount,discarded:!1,calldataIndex:1,signature:"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("First token unavailable",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:p.filters,trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{255:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:{tokenIndex:4}})),await new m(e,r,t,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Token,discarded:!1,tokenIndex:0,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:255,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("Second token unavailable",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:p.filters,trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{0:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:{tokenIndex:4}})),await new m(e,r,t,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Token,discarded:!1,tokenIndex:4,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:0,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("Provide proxy",async()=>{const t={type:R.PROXY_DELEGATE_CALL,payload:"0x010203"},f={...p,proxy:t},L={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(f),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:{tokenIndex:4}})),await new m(e,r,L,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new G({data:k("0x0003010203"),isFirstChunk:!0}))}),it("Provide Web3Check",async()=>{const f={derivationPath:"44'/60'/0'/0/0",web3Check:{type:R.WEB3_CHECK,payload:"0x010203"},types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,f,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new F({payload:k("0x0003010203"),isFirstChunk:!0}))}),it("Provide Web3Check and certificate",async()=>{const t={type:R.WEB3_CHECK,certificate:{keyUsageNumber:3,payload:new Uint8Array(3).fill(42)},payload:"0x010203"},f={derivationPath:"44'/60'/0'/0/0",web3Check:t,types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,f,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new M({keyUsage:3,certificate:t.certificate.payload})),expect(e.sendCommand).toHaveBeenCalledWith(new F({payload:k("0x0003010203"),isFirstChunk:!0}))}),it("Error when providing tokens",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(p),calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({error:new S("error")}));const f=new m(e,r,t,l).run();await expect(f).resolves.toStrictEqual(a({error:new S("error")}))}),it("Error when sending struct definitions",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(p),calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({data:{tokenIndex:4}})).mockResolvedValueOnce(a({data:{tokenIndex:5}})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({error:new S("error")}));const f=new m(e,r,t,l).run();await expect(f).resolves.toStrictEqual(a({error:new S("error")}))}),it("Error when sending struct implementations",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({error:new S("error")})).mockResolvedValue(a({data:void 0}));const f=new m(e,r,t,l).run();await expect(f).resolves.toStrictEqual(a({error:new S("error")}))}),it("Send struct array",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:{},domain:[],message:[{path:"spenders",type:"address[]",value:new H(1)},{path:"spenders.[]",type:"address",value:new y(k("0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"))},{path:"beneficiaries",type:"address[]",value:new H(0)}],clearSignContext:s({type:"success",messageInfo:{displayName:"Permit2",filtersCount:2,signature:"sig"},trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{},filters:{"spenders.[]":{displayName:"Spender",path:"spenders.[]",signature:"sig",type:"raw"},"beneficiaries.[]":{displayName:"Beneficiary",path:"beneficiaries.[]",signature:"sig",type:"raw"}}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand.mock.calls[0][0]).toStrictEqual(new n({type:d.Activation})),expect(e.sendCommand.mock.calls[1][0]).toStrictEqual(new n({type:d.MessageInfo,displayName:"Permit2",filtersCount:2,signature:"sig"})),expect(e.sendCommand.mock.calls[2][0]).toStrictEqual(D(1)),expect(e.sendCommand.mock.calls[3][0]).toStrictEqual(new n({type:d.Raw,discarded:!1,displayName:"Spender",signature:"sig"})),expect(e.sendCommand.mock.calls[4][0]).toStrictEqual(o(Uint8Array.from([0,20,124,235,35,253,107,192,173,213,158,98,172,37,87,130,112,207,241,185,246,25]))),expect(e.sendCommand.mock.calls[5][0]).toStrictEqual(D(0)),expect(e.sendCommand.mock.calls[6][0]).toStrictEqual(new n({type:d.DiscardedPath,path:"beneficiaries.[]"})),expect(e.sendCommand.mock.calls[7][0]).toStrictEqual(new n({type:d.Raw,discarded:!0,displayName:"Beneficiary",signature:"sig"}))})});
|
|
1
|
+
import{ClearSignContextType as R,TypedDataCalldataParamPresence as I}from"@ledgerhq/context-module";import{CommandResultFactory as a,hexaStringToBuffer as y,LoadCertificateCommand as M,UnknownDeviceExchangeError as S}from"@ledgerhq/device-management-kit";import{Just as s,Nothing as C}from"purify-ts";import{ProvideProxyInfoCommand as G}from"../../app-binder/command/ProvideProxyInfoCommand";import{ProvideTokenInformationCommand as P}from"../../app-binder/command/ProvideTokenInformationCommand";import{ProvideWeb3CheckCommand as F}from"../../app-binder/command/ProvideWeb3CheckCommand";import{CalldataParamPresence as A,Eip712FilterType as d,SendEIP712FilteringCommand as n}from"../../app-binder/command/SendEIP712FilteringCommand";import{SendEIP712StructDefinitionCommand as U,StructDefinitionCommand as B}from"../../app-binder/command/SendEIP712StructDefinitionCommand";import{SendEIP712StructImplemCommand as q,StructImplemType as V}from"../../app-binder/command/SendEIP712StructImplemCommand";import{makeDeviceActionInternalApiMock as K}from"../../app-binder/device-action/__test-utils__/makeInternalApi";import{PrimitiveType as i,StructType as W,TypedDataValueArray as H,TypedDataValueField as k,TypedDataValueRoot as _}from"../../typed-data/model/Types";import{ProvideEIP712ContextTask as m}from"./ProvideEIP712ContextTask";describe("ProvideEIP712ContextTask",()=>{const e=K(),l=vi.fn(),r={getFieldContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn(),getSolanaContext:vi.fn()},b={EIP712Domain:{name:new i("string","string",C),chainId:new i("uint256","uint",s(32)),verifyingContract:new i("address","address",C)},PermitSingle:{details:new W("PermitDetails"),spender:new i("address","address",C),sigDeadline:new i("uint256","uint",s(32))},PermitDetails:{token:new i("address","address",C),amount:new i("uint160","uint",s(20)),expiration:new i("uint48","uint",s(6)),nonce:new i("uint48","uint",s(6))}},x=[{path:"",type:"",value:new _("EIP712Domain")},{path:"name",type:"string",value:new k(new TextEncoder().encode("Permit2"))},{path:"chainId",type:"uint256",value:new k(Uint8Array.from([137]))},{path:"verifyingContract",type:"address",value:new k(y("0x000000000022d473030f116ddee9f6b43ac78ba3"))}],u=[{path:"",type:"",value:new _("PermitSingle")},{path:"details.token",type:"address",value:new k(y("0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"))},{path:"details.amount",type:"uint160",value:new k(Uint8Array.from([18]))},{path:"details.expiration",type:"uint48",value:new k(Uint8Array.from([18]))},{path:"details.nonce",type:"uint48",value:new k(Uint8Array.from([0]))},{path:"spender",type:"address",value:new k(y("0xec7be89e9d109e7e3fec59c222cf297125fefda2"))},{path:"sigDeadline",type:"uint256",value:new k(Uint8Array.from([18]))}],p={type:"success",messageInfo:{displayName:"Permit2",filtersCount:4,signature:"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3"},trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{0:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",255:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"},filters:{"details.amount":{displayName:"Amount allowance",path:"details.amount",signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",tokenIndex:255,type:"amount"},"details.expiration":{displayName:"Approval expire",path:"details.expiration",signature:"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b",type:"datetime"},"details.token":{displayName:"Amount allowance",path:"details.token",signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733",tokenIndex:0,type:"token"},spender:{displayName:"Approve to spender",path:"spender",signature:"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb",type:"raw"}}},g=new i("address","address",C),T=new i("string","string",C),w=new i("uint256","uint",s(32)),O=new i("uint160","uint",s(20)),E=new i("uint48","uint",s(6)),N=t=>new W(t),v=t=>new U({command:B.Name,name:t}),c=(t,f)=>new U({command:B.Field,name:t,type:f}),h=t=>new q({type:V.ROOT,value:t}),D=t=>new q({type:V.ARRAY,value:t}),o=t=>new q({type:V.FIELD,value:{data:t,isLastChunk:!0}});beforeEach(()=>{vi.resetAllMocks(),l.mockReturnValue({run:async()=>{}})}),it("Send context with no clear signing context",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand.mock.calls).toHaveLength(24),expect(e.sendCommand.mock.calls[0][0]).toStrictEqual(v("EIP712Domain")),expect(e.sendCommand.mock.calls[1][0]).toStrictEqual(c("name",T)),expect(e.sendCommand.mock.calls[2][0]).toStrictEqual(c("chainId",w)),expect(e.sendCommand.mock.calls[3][0]).toStrictEqual(c("verifyingContract",g)),expect(e.sendCommand.mock.calls[4][0]).toStrictEqual(v("PermitDetails")),expect(e.sendCommand.mock.calls[5][0]).toStrictEqual(c("token",g)),expect(e.sendCommand.mock.calls[6][0]).toStrictEqual(c("amount",O)),expect(e.sendCommand.mock.calls[7][0]).toStrictEqual(c("expiration",E)),expect(e.sendCommand.mock.calls[8][0]).toStrictEqual(c("nonce",E)),expect(e.sendCommand.mock.calls[9][0]).toStrictEqual(v("PermitSingle")),expect(e.sendCommand.mock.calls[10][0]).toStrictEqual(c("details",N("PermitDetails"))),expect(e.sendCommand.mock.calls[11][0]).toStrictEqual(c("spender",g)),expect(e.sendCommand.mock.calls[12][0]).toStrictEqual(c("sigDeadline",w)),expect(e.sendCommand.mock.calls[13][0]).toStrictEqual(h("EIP712Domain")),expect(e.sendCommand.mock.calls[14][0]).toStrictEqual(o(Uint8Array.from([0,7,80,101,114,109,105,116,50]))),expect(e.sendCommand.mock.calls[15][0]).toStrictEqual(o(Uint8Array.from([0,1,137]))),expect(e.sendCommand.mock.calls[16][0]).toStrictEqual(o(Uint8Array.from([0,20,0,0,0,0,0,34,212,115,3,15,17,109,222,233,246,180,58,199,139,163]))),expect(e.sendCommand.mock.calls[17][0]).toStrictEqual(h("PermitSingle")),expect(e.sendCommand.mock.calls[18][0]).toStrictEqual(o(Uint8Array.from([0,20,124,235,35,253,107,192,173,213,158,98,172,37,87,130,112,207,241,185,246,25]))),expect(e.sendCommand.mock.calls[19][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[20][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[21][0]).toStrictEqual(o(Uint8Array.from([0,1,0]))),expect(e.sendCommand.mock.calls[22][0]).toStrictEqual(o(Uint8Array.from([0,20,236,123,232,158,157,16,158,126,63,236,89,194,34,207,41,113,37,254,253,162]))),expect(e.sendCommand.mock.calls[23][0]).toStrictEqual(o(Uint8Array.from([0,1,18])))}),it("Send context with clear signing",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(p),calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:{tokenIndex:4}})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:{tokenIndex:5}})),e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand.mock.calls).toHaveLength(32),expect(e.sendCommand.mock.calls[0][0]).toStrictEqual(v("EIP712Domain")),expect(e.sendCommand.mock.calls[1][0]).toStrictEqual(c("name",T)),expect(e.sendCommand.mock.calls[2][0]).toStrictEqual(c("chainId",w)),expect(e.sendCommand.mock.calls[3][0]).toStrictEqual(c("verifyingContract",g)),expect(e.sendCommand.mock.calls[4][0]).toStrictEqual(v("PermitDetails")),expect(e.sendCommand.mock.calls[5][0]).toStrictEqual(c("token",g)),expect(e.sendCommand.mock.calls[6][0]).toStrictEqual(c("amount",O)),expect(e.sendCommand.mock.calls[7][0]).toStrictEqual(c("expiration",E)),expect(e.sendCommand.mock.calls[8][0]).toStrictEqual(c("nonce",E)),expect(e.sendCommand.mock.calls[9][0]).toStrictEqual(v("PermitSingle")),expect(e.sendCommand.mock.calls[10][0]).toStrictEqual(c("details",N("PermitDetails"))),expect(e.sendCommand.mock.calls[11][0]).toStrictEqual(c("spender",g)),expect(e.sendCommand.mock.calls[12][0]).toStrictEqual(c("sigDeadline",w)),expect(e.sendCommand.mock.calls[13][0]).toStrictEqual(new n({type:d.Activation})),expect(e.sendCommand.mock.calls[14][0]).toStrictEqual(h("EIP712Domain")),expect(e.sendCommand.mock.calls[15][0]).toStrictEqual(o(Uint8Array.from([0,7,80,101,114,109,105,116,50]))),expect(e.sendCommand.mock.calls[16][0]).toStrictEqual(o(Uint8Array.from([0,1,137]))),expect(e.sendCommand.mock.calls[17][0]).toStrictEqual(o(Uint8Array.from([0,20,0,0,0,0,0,34,212,115,3,15,17,109,222,233,246,180,58,199,139,163]))),expect(e.sendCommand.mock.calls[18][0]).toStrictEqual(new n({type:d.MessageInfo,displayName:"Permit2",filtersCount:4,signature:"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3"})),expect(e.sendCommand.mock.calls[19][0]).toStrictEqual(h("PermitSingle")),expect(e.sendCommand.mock.calls[20][0]).toStrictEqual(new P({payload:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"})),expect(e.sendCommand.mock.calls[21][0]).toStrictEqual(new n({type:d.Token,discarded:!1,tokenIndex:4,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand.mock.calls[22][0]).toStrictEqual(o(Uint8Array.from([0,20,124,235,35,253,107,192,173,213,158,98,172,37,87,130,112,207,241,185,246,25]))),expect(e.sendCommand.mock.calls[23][0]).toStrictEqual(new P({payload:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"})),expect(e.sendCommand.mock.calls[24][0]).toStrictEqual(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:255,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand.mock.calls[25][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[26][0]).toStrictEqual(new n({type:d.Datetime,discarded:!1,displayName:"Approval expire",signature:"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b"})),expect(e.sendCommand.mock.calls[27][0]).toStrictEqual(o(Uint8Array.from([0,1,18]))),expect(e.sendCommand.mock.calls[28][0]).toStrictEqual(o(Uint8Array.from([0,1,0]))),expect(e.sendCommand.mock.calls[29][0]).toStrictEqual(new n({type:d.Raw,discarded:!1,displayName:"Approve to spender",signature:"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb"})),expect(e.sendCommand.mock.calls[30][0]).toStrictEqual(o(Uint8Array.from([0,20,236,123,232,158,157,16,158,126,63,236,89,194,34,207,41,113,37,254,253,162]))),expect(e.sendCommand.mock.calls[31][0]).toStrictEqual(o(Uint8Array.from([0,1,18])))}),it("Both tokens unavailable",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:p.filters,trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand).not.toHaveBeenCalledWith(new P({payload:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"})),expect(e.sendCommand).not.toHaveBeenCalledWith(new P({payload:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Token,discarded:!1,tokenIndex:0,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:1,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("Provide calldata filters",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:{"details.amount":{displayName:"Value",path:"details.amount",signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-value"},"details.expiration":{displayName:"Callee",path:"details.expiration",signature:"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-callee"},spender:{displayName:"Spender",path:"spender",signature:"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-spender"},"details.token":{displayName:"Chain ID",path:"details.token",signature:"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:0,type:"calldata-chain-id"},"details.nonce":{displayName:"Chain ID",path:"details.nonce",signature:"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:1,type:"calldata-selector"},sigDeadline:{displayName:"Amount",path:"sigDeadline",signature:"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3",calldataIndex:1,type:"calldata-amount"}},trustedNamesAddresses:{},calldatas:{0:{filter:{calldataIndex:0,displayName:"Transaction",valueFlag:!0,calleeFlag:I.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:I.VerifyingContract,signature:"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"},subset:{chainId:4660,data:"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99",from:"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619",selector:"0x778899aa",to:"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",value:4200000000000000n}},1:{filter:{calldataIndex:1,displayName:"Transaction",valueFlag:!0,calleeFlag:I.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:I.VerifyingContract,signature:"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"},subset:{chainId:4661,data:"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99",from:"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619",selector:"0x778899aa",to:"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",value:4300000000000000n}}},proxy:void 0,tokens:{}}),calldatasContexts:{0:[]}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(l).toHaveBeenCalledTimes(1),expect(l).toHaveBeenCalledWith({contexts:[],derivationPath:"44'/60'/0'/0/0"}),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataInfo,discarded:!1,calldataIndex:0,valueFlag:!0,calleeFlag:A.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:A.VerifyingContract,signature:"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataValue,discarded:!1,calldataIndex:0,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataCallee,discarded:!1,calldataIndex:0,signature:"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataSpender,discarded:!1,calldataIndex:0,signature:"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataChainId,discarded:!1,calldataIndex:0,signature:"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataInfo,discarded:!1,calldataIndex:1,valueFlag:!0,calleeFlag:A.Present,chainIdFlag:!1,selectorFlag:!1,amountFlag:!0,spenderFlag:A.VerifyingContract,signature:"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataSelector,discarded:!1,calldataIndex:1,signature:"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.CalldataAmount,discarded:!1,calldataIndex:1,signature:"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("First token unavailable",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:p.filters,trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{255:"payload-0x000000000022d473030f116ddee9f6b43ac78ba3"}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:{tokenIndex:4}})),await new m(e,r,t,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Token,discarded:!1,tokenIndex:0,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:255,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("Second token unavailable",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s({type:"success",messageInfo:p.messageInfo,filters:p.filters,trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{0:"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:{tokenIndex:4}})),await new m(e,r,t,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Token,discarded:!1,tokenIndex:4,signature:"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733"})),expect(e.sendCommand).toHaveBeenCalledWith(new n({type:d.Amount,discarded:!1,displayName:"Amount allowance",tokenIndex:0,signature:"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3"}))}),it("Provide proxy",async()=>{const t={type:R.PROXY_DELEGATE_CALL,payload:"0x010203"},f={...p,proxy:t},L={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(f),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:{tokenIndex:4}})),await new m(e,r,L,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new G({data:y("0x0003010203"),isFirstChunk:!0}))}),it("Provide Web3Check",async()=>{const f={derivationPath:"44'/60'/0'/0/0",web3Check:{type:R.WEB3_CHECK,payload:"0x010203"},types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,f,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new F({payload:y("0x0003010203"),isFirstChunk:!0}))}),it("Provide Web3Check and certificate",async()=>{const t={type:R.WEB3_CHECK,certificate:{keyUsageNumber:3,payload:new Uint8Array(3).fill(42)},payload:"0x010203"},f={derivationPath:"44'/60'/0'/0/0",web3Check:t,types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,f,l).run(),expect(e.sendCommand).toHaveBeenCalledWith(new M({keyUsage:3,certificate:t.certificate.payload})),expect(e.sendCommand).toHaveBeenCalledWith(new F({payload:y("0x0003010203"),isFirstChunk:!0}))}),it("Error when providing tokens",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(p),calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({error:new S("error")}));const f=new m(e,r,t,l).run();await expect(f).resolves.toStrictEqual(a({error:new S("error")}))}),it("Error when sending struct definitions",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:s(p),calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({data:{tokenIndex:4}})).mockResolvedValueOnce(a({data:{tokenIndex:5}})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({error:new S("error")}));const f=new m(e,r,t,l).run();await expect(f).resolves.toStrictEqual(a({error:new S("error")}))}),it("Error when sending struct implementations",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:b,domain:x,message:u,clearSignContext:C,calldatasContexts:{}};e.sendCommand.mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({data:void 0})).mockResolvedValueOnce(a({error:new S("error")})).mockResolvedValue(a({data:void 0}));const f=new m(e,r,t,l).run();await expect(f).resolves.toStrictEqual(a({error:new S("error")}))}),it("Send struct array",async()=>{const t={derivationPath:"44'/60'/0'/0/0",web3Check:null,types:{},domain:[],message:[{path:"spenders",type:"address[]",value:new H(1)},{path:"spenders.[]",type:"address",value:new k(y("0x7ceb23fd6bc0add59e62ac25578270cff1b9f619"))},{path:"beneficiaries",type:"address[]",value:new H(0)}],clearSignContext:s({type:"success",messageInfo:{displayName:"Permit2",filtersCount:2,signature:"sig"},trustedNamesAddresses:{},calldatas:{},proxy:void 0,tokens:{},filters:{"spenders.[]":{displayName:"Spender",path:"spenders.[]",signature:"sig",type:"raw"},"beneficiaries.[]":{displayName:"Beneficiary",path:"beneficiaries.[]",signature:"sig",type:"raw"}}}),calldatasContexts:{}};e.sendCommand.mockResolvedValue(a({data:void 0})),await new m(e,r,t,l).run(),expect(e.sendCommand.mock.calls[0][0]).toStrictEqual(new n({type:d.Activation})),expect(e.sendCommand.mock.calls[1][0]).toStrictEqual(new n({type:d.MessageInfo,displayName:"Permit2",filtersCount:2,signature:"sig"})),expect(e.sendCommand.mock.calls[2][0]).toStrictEqual(D(1)),expect(e.sendCommand.mock.calls[3][0]).toStrictEqual(new n({type:d.Raw,discarded:!1,displayName:"Spender",signature:"sig"})),expect(e.sendCommand.mock.calls[4][0]).toStrictEqual(o(Uint8Array.from([0,20,124,235,35,253,107,192,173,213,158,98,172,37,87,130,112,207,241,185,246,25]))),expect(e.sendCommand.mock.calls[5][0]).toStrictEqual(D(0)),expect(e.sendCommand.mock.calls[6][0]).toStrictEqual(new n({type:d.DiscardedPath,path:"beneficiaries.[]"})),expect(e.sendCommand.mock.calls[7][0]).toStrictEqual(new n({type:d.Raw,discarded:!0,displayName:"Beneficiary",signature:"sig"}))})});
|
|
2
2
|
//# sourceMappingURL=ProvideEIP712ContextTask.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/task/ProvideEIP712ContextTask.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n ClearSignContextType,\n TypedDataCalldataParamPresence,\n type TypedDataClearSignContextSuccess,\n} from \"@ledgerhq/context-module\";\nimport {\n CommandResultFactory,\n hexaStringToBuffer,\n LoadCertificateCommand,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { ProvideProxyInfoCommand } from \"@internal/app-binder/command/ProvideProxyInfoCommand\";\nimport { ProvideTokenInformationCommand } from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { ProvideWeb3CheckCommand } from \"@internal/app-binder/command/ProvideWeb3CheckCommand\";\nimport {\n CalldataParamPresence,\n Eip712FilterType,\n SendEIP712FilteringCommand,\n} from \"@internal/app-binder/command/SendEIP712FilteringCommand\";\nimport {\n SendEIP712StructDefinitionCommand,\n StructDefinitionCommand,\n} from \"@internal/app-binder/command/SendEIP712StructDefinitionCommand\";\nimport {\n SendEIP712StructImplemCommand,\n StructImplemType,\n} from \"@internal/app-binder/command/SendEIP712StructImplemCommand\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport {\n type FieldType,\n PrimitiveType,\n StructType,\n TypedDataValueArray,\n TypedDataValueField,\n TypedDataValueRoot,\n} from \"@internal/typed-data/model/Types\";\n\nimport {\n ProvideEIP712ContextTask,\n type ProvideEIP712ContextTaskArgs,\n} from \"./ProvideEIP712ContextTask\";\n\ndescribe(\"ProvideEIP712ContextTask\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const provideContextFactoryMock = vi.fn();\n const contextModuleMock = {\n getFieldContext: vi.fn(),\n getContexts: vi.fn(),\n getTypedDataFilters: vi.fn(),\n getWeb3Checks: vi.fn(),\n getSolanaContext: vi.fn(),\n };\n\n const TEST_TYPES = {\n EIP712Domain: {\n name: new PrimitiveType(\"string\", \"string\", Nothing),\n chainId: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n verifyingContract: new PrimitiveType(\"address\", \"address\", Nothing),\n },\n PermitSingle: {\n details: new StructType(\"PermitDetails\"),\n spender: new PrimitiveType(\"address\", \"address\", Nothing),\n sigDeadline: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n },\n PermitDetails: {\n token: new PrimitiveType(\"address\", \"address\", Nothing),\n amount: new PrimitiveType(\"uint160\", \"uint\", Just(20)),\n expiration: new PrimitiveType(\"uint48\", \"uint\", Just(6)),\n nonce: new PrimitiveType(\"uint48\", \"uint\", Just(6)),\n },\n };\n const TEST_DOMAIN_VALUES = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(\"EIP712Domain\"),\n },\n {\n path: \"name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Permit2\")),\n },\n {\n path: \"chainId\",\n type: \"uint256\",\n value: new TypedDataValueField(Uint8Array.from([137])),\n },\n {\n path: \"verifyingContract\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0x000000000022d473030f116ddee9f6b43ac78ba3\")!,\n ),\n },\n ];\n const TEST_MESSAGE_VALUES = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(\"PermitSingle\"),\n },\n {\n path: \"details.token\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\")!,\n ),\n },\n {\n path: \"details.amount\",\n type: \"uint160\",\n value: new TypedDataValueField(Uint8Array.from([0x12])),\n },\n {\n path: \"details.expiration\",\n type: \"uint48\",\n value: new TypedDataValueField(Uint8Array.from([0x12])),\n },\n {\n path: \"details.nonce\",\n type: \"uint48\",\n value: new TypedDataValueField(Uint8Array.from([0x00])),\n },\n {\n path: \"spender\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xec7be89e9d109e7e3fec59c222cf297125fefda2\")!,\n ),\n },\n {\n path: \"sigDeadline\",\n type: \"uint256\",\n value: new TypedDataValueField(Uint8Array.from([0x12])),\n },\n ];\n const TEST_CLEAR_SIGN_CONTEXT: TypedDataClearSignContextSuccess = {\n type: \"success\",\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3\",\n },\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: {\n 0: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n 255: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\",\n },\n filters: {\n \"details.amount\": {\n displayName: \"Amount allowance\",\n path: \"details.amount\",\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n tokenIndex: 255,\n type: \"amount\",\n },\n \"details.expiration\": {\n displayName: \"Approval expire\",\n path: \"details.expiration\",\n signature:\n \"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b\",\n type: \"datetime\",\n },\n \"details.token\": {\n displayName: \"Amount allowance\",\n path: \"details.token\",\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n tokenIndex: 0,\n type: \"token\",\n },\n spender: {\n displayName: \"Approve to spender\",\n path: \"spender\",\n signature:\n \"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb\",\n type: \"raw\",\n },\n },\n };\n\n const ADDRESS = new PrimitiveType(\"address\", \"address\", Nothing);\n const STRING = new PrimitiveType(\"string\", \"string\", Nothing);\n const UINT256 = new PrimitiveType(\"uint256\", \"uint\", Just(32));\n const UINT160 = new PrimitiveType(\"uint160\", \"uint\", Just(20));\n const UINT48 = new PrimitiveType(\"uint48\", \"uint\", Just(6));\n const CUSTOM = (name: string) => new StructType(name);\n\n const sendStructDefName = (name: string) =>\n new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Name,\n name,\n });\n const sendStructDefField = (name: string, type: FieldType) =>\n new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name,\n type,\n });\n const sendStructImplRoot = (value: string) =>\n new SendEIP712StructImplemCommand({\n type: StructImplemType.ROOT,\n value,\n });\n const sendStructImplArray = (value: number) =>\n new SendEIP712StructImplemCommand({\n type: StructImplemType.ARRAY,\n value,\n });\n const sendStructImplField = (data: Uint8Array) =>\n new SendEIP712StructImplemCommand({\n type: StructImplemType.FIELD,\n value: {\n data,\n isLastChunk: true,\n },\n });\n\n beforeEach(() => {\n vi.resetAllMocks();\n provideContextFactoryMock.mockReturnValue({\n run: async () => undefined,\n });\n });\n\n it(\"Send context with no clear signing context\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand.mock.calls).toHaveLength(24);\n // Send Struct definitions\n expect(apiMock.sendCommand.mock.calls[0]![0]).toStrictEqual(\n sendStructDefName(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[1]![0]).toStrictEqual(\n sendStructDefField(\"name\", STRING),\n );\n expect(apiMock.sendCommand.mock.calls[2]![0]).toStrictEqual(\n sendStructDefField(\"chainId\", UINT256),\n );\n expect(apiMock.sendCommand.mock.calls[3]![0]).toStrictEqual(\n sendStructDefField(\"verifyingContract\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[4]![0]).toStrictEqual(\n sendStructDefName(\"PermitDetails\"),\n );\n expect(apiMock.sendCommand.mock.calls[5]![0]).toStrictEqual(\n sendStructDefField(\"token\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[6]![0]).toStrictEqual(\n sendStructDefField(\"amount\", UINT160),\n );\n expect(apiMock.sendCommand.mock.calls[7]![0]).toStrictEqual(\n sendStructDefField(\"expiration\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[8]![0]).toStrictEqual(\n sendStructDefField(\"nonce\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[9]![0]).toStrictEqual(\n sendStructDefName(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[10]![0]).toStrictEqual(\n sendStructDefField(\"details\", CUSTOM(\"PermitDetails\")),\n );\n expect(apiMock.sendCommand.mock.calls[11]![0]).toStrictEqual(\n sendStructDefField(\"spender\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[12]![0]).toStrictEqual(\n sendStructDefField(\"sigDeadline\", UINT256),\n );\n // Send the domain values\n expect(apiMock.sendCommand.mock.calls[13]![0]).toStrictEqual(\n sendStructImplRoot(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[14]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([0x00, 0x07, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x32]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[15]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x89])),\n );\n expect(apiMock.sendCommand.mock.calls[16]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xd4, 0x73, 0x03,\n 0x0f, 0x11, 0x6d, 0xde, 0xe9, 0xf6, 0xb4, 0x3a, 0xc7, 0x8b, 0xa3,\n ]),\n ),\n );\n // Send the message values\n expect(apiMock.sendCommand.mock.calls[17]![0]).toStrictEqual(\n sendStructImplRoot(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[18]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x7c, 0xeb, 0x23, 0xfd, 0x6b, 0xc0, 0xad, 0xd5, 0x9e,\n 0x62, 0xac, 0x25, 0x57, 0x82, 0x70, 0xcf, 0xf1, 0xb9, 0xf6, 0x19,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[19]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[20]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[21]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x00])),\n );\n expect(apiMock.sendCommand.mock.calls[22]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0xec, 0x7b, 0xe8, 0x9e, 0x9d, 0x10, 0x9e, 0x7e, 0x3f,\n 0xec, 0x59, 0xc2, 0x22, 0xcf, 0x29, 0x71, 0x25, 0xfe, 0xfd, 0xa2,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[23]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n });\n\n it(\"Send context with clear signing\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(TEST_CLEAR_SIGN_CONTEXT),\n calldatasContexts: {},\n };\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 4 } })) // First token provided\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 5 } })); // Second token provided\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand.mock.calls).toHaveLength(32);\n // Send Struct definitions\n expect(apiMock.sendCommand.mock.calls[0]![0]).toStrictEqual(\n sendStructDefName(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[1]![0]).toStrictEqual(\n sendStructDefField(\"name\", STRING),\n );\n expect(apiMock.sendCommand.mock.calls[2]![0]).toStrictEqual(\n sendStructDefField(\"chainId\", UINT256),\n );\n expect(apiMock.sendCommand.mock.calls[3]![0]).toStrictEqual(\n sendStructDefField(\"verifyingContract\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[4]![0]).toStrictEqual(\n sendStructDefName(\"PermitDetails\"),\n );\n expect(apiMock.sendCommand.mock.calls[5]![0]).toStrictEqual(\n sendStructDefField(\"token\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[6]![0]).toStrictEqual(\n sendStructDefField(\"amount\", UINT160),\n );\n expect(apiMock.sendCommand.mock.calls[7]![0]).toStrictEqual(\n sendStructDefField(\"expiration\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[8]![0]).toStrictEqual(\n sendStructDefField(\"nonce\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[9]![0]).toStrictEqual(\n sendStructDefName(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[10]![0]).toStrictEqual(\n sendStructDefField(\"details\", CUSTOM(\"PermitDetails\")),\n );\n expect(apiMock.sendCommand.mock.calls[11]![0]).toStrictEqual(\n sendStructDefField(\"spender\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[12]![0]).toStrictEqual(\n sendStructDefField(\"sigDeadline\", UINT256),\n );\n // Activate the filtering\n expect(apiMock.sendCommand.mock.calls[13]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({ type: Eip712FilterType.Activation }),\n );\n // Send the domain values\n expect(apiMock.sendCommand.mock.calls[14]![0]).toStrictEqual(\n sendStructImplRoot(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[15]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([0x00, 0x07, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x32]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[16]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x89])),\n );\n expect(apiMock.sendCommand.mock.calls[17]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xd4, 0x73, 0x03,\n 0x0f, 0x11, 0x6d, 0xde, 0xe9, 0xf6, 0xb4, 0x3a, 0xc7, 0x8b, 0xa3,\n ]),\n ),\n );\n // Send the message information filter\n expect(apiMock.sendCommand.mock.calls[18]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.MessageInfo,\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3\",\n }),\n );\n // Send the message values with corresponding filters\n expect(apiMock.sendCommand.mock.calls[19]![0]).toStrictEqual(\n sendStructImplRoot(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[20]![0]).toStrictEqual(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[21]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 4,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[22]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x7c, 0xeb, 0x23, 0xfd, 0x6b, 0xc0, 0xad, 0xd5, 0x9e,\n 0x62, 0xac, 0x25, 0x57, 0x82, 0x70, 0xcf, 0xf1, 0xb9, 0xf6, 0x19,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[23]![0]).toStrictEqual(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[24]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 255,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[25]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[26]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Datetime,\n discarded: false,\n displayName: \"Approval expire\",\n signature:\n \"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[27]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[28]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x00])),\n );\n expect(apiMock.sendCommand.mock.calls[29]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Raw,\n discarded: false,\n displayName: \"Approve to spender\",\n signature:\n \"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[30]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0xec, 0x7b, 0xe8, 0x9e, 0x9d, 0x10, 0x9e, 0x7e, 0x3f,\n 0xec, 0x59, 0xc2, 0x22, 0xcf, 0x29, 0x71, 0x25, 0xfe, 0xfd, 0xa2,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[31]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n });\n\n it(\"Both tokens unavailable\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: TEST_CLEAR_SIGN_CONTEXT.filters,\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: {},\n }),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).not.toHaveBeenCalledWith(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n }),\n );\n expect(apiMock.sendCommand).not.toHaveBeenCalledWith(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 0,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 1,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"Provide calldata filters\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: {\n \"details.amount\": {\n displayName: \"Value\",\n path: \"details.amount\",\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-value\",\n },\n \"details.expiration\": {\n displayName: \"Callee\",\n path: \"details.expiration\",\n signature:\n \"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-callee\",\n },\n spender: {\n displayName: \"Spender\",\n path: \"spender\",\n signature:\n \"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-spender\",\n },\n \"details.token\": {\n displayName: \"Chain ID\",\n path: \"details.token\",\n signature:\n \"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-chain-id\",\n },\n \"details.nonce\": {\n displayName: \"Chain ID\",\n path: \"details.nonce\",\n signature:\n \"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 1,\n type: \"calldata-selector\",\n },\n sigDeadline: {\n displayName: \"Amount\",\n path: \"sigDeadline\",\n signature:\n \"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 1,\n type: \"calldata-amount\",\n },\n },\n trustedNamesAddresses: {},\n calldatas: {\n 0: {\n filter: {\n calldataIndex: 0,\n displayName: \"Transaction\",\n valueFlag: true,\n calleeFlag: TypedDataCalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: TypedDataCalldataParamPresence.VerifyingContract,\n signature:\n \"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n },\n subset: {\n chainId: 0x1234,\n data: \"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99\",\n from: \"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n selector: \"0x778899aa\",\n to: \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n value: 4200000000000000n,\n },\n },\n 1: {\n filter: {\n calldataIndex: 1,\n displayName: \"Transaction\",\n valueFlag: true,\n calleeFlag: TypedDataCalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: TypedDataCalldataParamPresence.VerifyingContract,\n signature:\n \"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n },\n subset: {\n chainId: 0x1235,\n data: \"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99\",\n from: \"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n selector: \"0x778899aa\",\n to: \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n value: 4300000000000000n,\n },\n },\n },\n proxy: undefined,\n tokens: {},\n }),\n calldatasContexts: {\n 0: [],\n },\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(provideContextFactoryMock).toHaveBeenCalledTimes(1);\n expect(provideContextFactoryMock).toHaveBeenCalledWith(apiMock, {\n contexts: [],\n derivationPath: \"44'/60'/0'/0/0\",\n serializedTransaction: new Uint8Array(),\n });\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataInfo,\n discarded: false,\n calldataIndex: 0,\n valueFlag: true,\n calleeFlag: CalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: CalldataParamPresence.VerifyingContract,\n signature:\n \"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataValue,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataCallee,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataSpender,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataChainId,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataInfo,\n discarded: false,\n calldataIndex: 1,\n valueFlag: true,\n calleeFlag: CalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: CalldataParamPresence.VerifyingContract,\n signature:\n \"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataSelector,\n discarded: false,\n calldataIndex: 1,\n signature:\n \"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataAmount,\n discarded: false,\n calldataIndex: 1,\n signature:\n \"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"First token unavailable\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: TEST_CLEAR_SIGN_CONTEXT.filters,\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: { 255: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\" },\n }),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: { tokenIndex: 4 } }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 0,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 255,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"Second token unavailable\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: TEST_CLEAR_SIGN_CONTEXT.filters,\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: { 0: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\" },\n }),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: { tokenIndex: 4 } }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 4,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 0,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"Provide proxy\", async () => {\n // GIVEN\n const proxy: ClearSignContextSuccess<ClearSignContextType.PROXY_DELEGATE_CALL> =\n {\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: \"0x010203\",\n };\n const clearSignContext: TypedDataClearSignContextSuccess = {\n ...TEST_CLEAR_SIGN_CONTEXT,\n proxy,\n };\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(clearSignContext),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: { tokenIndex: 4 } }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new ProvideProxyInfoCommand({\n data: hexaStringToBuffer(\"0x0003010203\")!,\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"Provide Web3Check\", async () => {\n // GIVEN\n const web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> =\n {\n type: ClearSignContextType.WEB3_CHECK,\n payload: \"0x010203\",\n };\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new ProvideWeb3CheckCommand({\n payload: hexaStringToBuffer(\"0x0003010203\")!,\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"Provide Web3Check and certificate\", async () => {\n // GIVEN\n const web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> =\n {\n type: ClearSignContextType.WEB3_CHECK,\n certificate: {\n keyUsageNumber: 3,\n payload: new Uint8Array(3).fill(42),\n },\n payload: \"0x010203\",\n };\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new LoadCertificateCommand({\n keyUsage: 3,\n certificate: web3Check.certificate!.payload,\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new ProvideWeb3CheckCommand({\n payload: hexaStringToBuffer(\"0x0003010203\")!,\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"Error when providing tokens\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(TEST_CLEAR_SIGN_CONTEXT),\n calldatasContexts: {},\n };\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n );\n // WHEN\n const promise = new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n await expect(promise).resolves.toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n );\n });\n\n it(\"Error when sending struct definitions\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(TEST_CLEAR_SIGN_CONTEXT),\n calldatasContexts: {},\n };\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 4 } }))\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 5 } }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n );\n // WHEN\n const promise = new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n await expect(promise).resolves.toStrictEqual(\n CommandResultFactory({ error: new UnknownDeviceExchangeError(\"error\") }),\n );\n });\n\n it(\"Error when sending struct implementations\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n // WHEN\n apiMock.sendCommand\n // Struct definitions\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n // Struct implementations\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n )\n .mockResolvedValue(CommandResultFactory({ data: undefined }));\n const promise = new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n await expect(promise).resolves.toStrictEqual(\n CommandResultFactory({ error: new UnknownDeviceExchangeError(\"error\") }),\n );\n });\n\n it(\"Send struct array\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: {},\n domain: [],\n message: [\n // Array containing an element\n {\n path: \"spenders\",\n type: \"address[]\",\n value: new TypedDataValueArray(1),\n },\n {\n path: \"spenders.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\")!,\n ),\n },\n // Empty array\n {\n path: \"beneficiaries\",\n type: \"address[]\",\n value: new TypedDataValueArray(0),\n },\n ],\n clearSignContext: Just({\n type: \"success\",\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 2,\n signature: \"sig\",\n },\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: {},\n filters: {\n \"spenders.[]\": {\n displayName: \"Spender\",\n path: \"spenders.[]\",\n signature: \"sig\",\n type: \"raw\",\n },\n \"beneficiaries.[]\": {\n displayName: \"Beneficiary\",\n path: \"beneficiaries.[]\",\n signature: \"sig\",\n type: \"raw\",\n },\n },\n }),\n calldatasContexts: {},\n };\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n // Activate the filtering\n expect(apiMock.sendCommand.mock.calls[0]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({ type: Eip712FilterType.Activation }),\n );\n // Send the message information filter\n expect(apiMock.sendCommand.mock.calls[1]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.MessageInfo,\n displayName: \"Permit2\",\n filtersCount: 2,\n signature: \"sig\",\n }),\n );\n // Send first array containing 1 element\n expect(apiMock.sendCommand.mock.calls[2]![0]).toStrictEqual(\n sendStructImplArray(1),\n );\n expect(apiMock.sendCommand.mock.calls[3]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Raw,\n discarded: false,\n displayName: \"Spender\",\n signature: \"sig\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[4]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x7c, 0xeb, 0x23, 0xfd, 0x6b, 0xc0, 0xad, 0xd5, 0x9e,\n 0x62, 0xac, 0x25, 0x57, 0x82, 0x70, 0xcf, 0xf1, 0xb9, 0xf6, 0x19,\n ]),\n ),\n );\n // Send second empty array, with discarded filter\n expect(apiMock.sendCommand.mock.calls[5]![0]).toStrictEqual(\n sendStructImplArray(0),\n );\n expect(apiMock.sendCommand.mock.calls[6]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.DiscardedPath,\n path: \"beneficiaries.[]\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[7]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Raw,\n discarded: true,\n displayName: \"Beneficiary\",\n signature: \"sig\",\n }),\n );\n });\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import {\n type ClearSignContextSuccess,\n ClearSignContextType,\n TypedDataCalldataParamPresence,\n type TypedDataClearSignContextSuccess,\n} from \"@ledgerhq/context-module\";\nimport {\n CommandResultFactory,\n hexaStringToBuffer,\n LoadCertificateCommand,\n UnknownDeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport { ProvideProxyInfoCommand } from \"@internal/app-binder/command/ProvideProxyInfoCommand\";\nimport { ProvideTokenInformationCommand } from \"@internal/app-binder/command/ProvideTokenInformationCommand\";\nimport { ProvideWeb3CheckCommand } from \"@internal/app-binder/command/ProvideWeb3CheckCommand\";\nimport {\n CalldataParamPresence,\n Eip712FilterType,\n SendEIP712FilteringCommand,\n} from \"@internal/app-binder/command/SendEIP712FilteringCommand\";\nimport {\n SendEIP712StructDefinitionCommand,\n StructDefinitionCommand,\n} from \"@internal/app-binder/command/SendEIP712StructDefinitionCommand\";\nimport {\n SendEIP712StructImplemCommand,\n StructImplemType,\n} from \"@internal/app-binder/command/SendEIP712StructImplemCommand\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport {\n type FieldType,\n PrimitiveType,\n StructType,\n TypedDataValueArray,\n TypedDataValueField,\n TypedDataValueRoot,\n} from \"@internal/typed-data/model/Types\";\n\nimport {\n ProvideEIP712ContextTask,\n type ProvideEIP712ContextTaskArgs,\n} from \"./ProvideEIP712ContextTask\";\n\ndescribe(\"ProvideEIP712ContextTask\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const provideContextFactoryMock = vi.fn();\n const contextModuleMock = {\n getFieldContext: vi.fn(),\n getContexts: vi.fn(),\n getTypedDataFilters: vi.fn(),\n getWeb3Checks: vi.fn(),\n getSolanaContext: vi.fn(),\n };\n\n const TEST_TYPES = {\n EIP712Domain: {\n name: new PrimitiveType(\"string\", \"string\", Nothing),\n chainId: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n verifyingContract: new PrimitiveType(\"address\", \"address\", Nothing),\n },\n PermitSingle: {\n details: new StructType(\"PermitDetails\"),\n spender: new PrimitiveType(\"address\", \"address\", Nothing),\n sigDeadline: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n },\n PermitDetails: {\n token: new PrimitiveType(\"address\", \"address\", Nothing),\n amount: new PrimitiveType(\"uint160\", \"uint\", Just(20)),\n expiration: new PrimitiveType(\"uint48\", \"uint\", Just(6)),\n nonce: new PrimitiveType(\"uint48\", \"uint\", Just(6)),\n },\n };\n const TEST_DOMAIN_VALUES = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(\"EIP712Domain\"),\n },\n {\n path: \"name\",\n type: \"string\",\n value: new TypedDataValueField(new TextEncoder().encode(\"Permit2\")),\n },\n {\n path: \"chainId\",\n type: \"uint256\",\n value: new TypedDataValueField(Uint8Array.from([137])),\n },\n {\n path: \"verifyingContract\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0x000000000022d473030f116ddee9f6b43ac78ba3\")!,\n ),\n },\n ];\n const TEST_MESSAGE_VALUES = [\n {\n path: \"\",\n type: \"\",\n value: new TypedDataValueRoot(\"PermitSingle\"),\n },\n {\n path: \"details.token\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\")!,\n ),\n },\n {\n path: \"details.amount\",\n type: \"uint160\",\n value: new TypedDataValueField(Uint8Array.from([0x12])),\n },\n {\n path: \"details.expiration\",\n type: \"uint48\",\n value: new TypedDataValueField(Uint8Array.from([0x12])),\n },\n {\n path: \"details.nonce\",\n type: \"uint48\",\n value: new TypedDataValueField(Uint8Array.from([0x00])),\n },\n {\n path: \"spender\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0xec7be89e9d109e7e3fec59c222cf297125fefda2\")!,\n ),\n },\n {\n path: \"sigDeadline\",\n type: \"uint256\",\n value: new TypedDataValueField(Uint8Array.from([0x12])),\n },\n ];\n const TEST_CLEAR_SIGN_CONTEXT: TypedDataClearSignContextSuccess = {\n type: \"success\",\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3\",\n },\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: {\n 0: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n 255: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\",\n },\n filters: {\n \"details.amount\": {\n displayName: \"Amount allowance\",\n path: \"details.amount\",\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n tokenIndex: 255,\n type: \"amount\",\n },\n \"details.expiration\": {\n displayName: \"Approval expire\",\n path: \"details.expiration\",\n signature:\n \"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b\",\n type: \"datetime\",\n },\n \"details.token\": {\n displayName: \"Amount allowance\",\n path: \"details.token\",\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n tokenIndex: 0,\n type: \"token\",\n },\n spender: {\n displayName: \"Approve to spender\",\n path: \"spender\",\n signature:\n \"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb\",\n type: \"raw\",\n },\n },\n };\n\n const ADDRESS = new PrimitiveType(\"address\", \"address\", Nothing);\n const STRING = new PrimitiveType(\"string\", \"string\", Nothing);\n const UINT256 = new PrimitiveType(\"uint256\", \"uint\", Just(32));\n const UINT160 = new PrimitiveType(\"uint160\", \"uint\", Just(20));\n const UINT48 = new PrimitiveType(\"uint48\", \"uint\", Just(6));\n const CUSTOM = (name: string) => new StructType(name);\n\n const sendStructDefName = (name: string) =>\n new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Name,\n name,\n });\n const sendStructDefField = (name: string, type: FieldType) =>\n new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name,\n type,\n });\n const sendStructImplRoot = (value: string) =>\n new SendEIP712StructImplemCommand({\n type: StructImplemType.ROOT,\n value,\n });\n const sendStructImplArray = (value: number) =>\n new SendEIP712StructImplemCommand({\n type: StructImplemType.ARRAY,\n value,\n });\n const sendStructImplField = (data: Uint8Array) =>\n new SendEIP712StructImplemCommand({\n type: StructImplemType.FIELD,\n value: {\n data,\n isLastChunk: true,\n },\n });\n\n beforeEach(() => {\n vi.resetAllMocks();\n provideContextFactoryMock.mockReturnValue({\n run: async () => undefined,\n });\n });\n\n it(\"Send context with no clear signing context\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand.mock.calls).toHaveLength(24);\n // Send Struct definitions\n expect(apiMock.sendCommand.mock.calls[0]![0]).toStrictEqual(\n sendStructDefName(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[1]![0]).toStrictEqual(\n sendStructDefField(\"name\", STRING),\n );\n expect(apiMock.sendCommand.mock.calls[2]![0]).toStrictEqual(\n sendStructDefField(\"chainId\", UINT256),\n );\n expect(apiMock.sendCommand.mock.calls[3]![0]).toStrictEqual(\n sendStructDefField(\"verifyingContract\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[4]![0]).toStrictEqual(\n sendStructDefName(\"PermitDetails\"),\n );\n expect(apiMock.sendCommand.mock.calls[5]![0]).toStrictEqual(\n sendStructDefField(\"token\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[6]![0]).toStrictEqual(\n sendStructDefField(\"amount\", UINT160),\n );\n expect(apiMock.sendCommand.mock.calls[7]![0]).toStrictEqual(\n sendStructDefField(\"expiration\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[8]![0]).toStrictEqual(\n sendStructDefField(\"nonce\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[9]![0]).toStrictEqual(\n sendStructDefName(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[10]![0]).toStrictEqual(\n sendStructDefField(\"details\", CUSTOM(\"PermitDetails\")),\n );\n expect(apiMock.sendCommand.mock.calls[11]![0]).toStrictEqual(\n sendStructDefField(\"spender\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[12]![0]).toStrictEqual(\n sendStructDefField(\"sigDeadline\", UINT256),\n );\n // Send the domain values\n expect(apiMock.sendCommand.mock.calls[13]![0]).toStrictEqual(\n sendStructImplRoot(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[14]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([0x00, 0x07, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x32]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[15]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x89])),\n );\n expect(apiMock.sendCommand.mock.calls[16]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xd4, 0x73, 0x03,\n 0x0f, 0x11, 0x6d, 0xde, 0xe9, 0xf6, 0xb4, 0x3a, 0xc7, 0x8b, 0xa3,\n ]),\n ),\n );\n // Send the message values\n expect(apiMock.sendCommand.mock.calls[17]![0]).toStrictEqual(\n sendStructImplRoot(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[18]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x7c, 0xeb, 0x23, 0xfd, 0x6b, 0xc0, 0xad, 0xd5, 0x9e,\n 0x62, 0xac, 0x25, 0x57, 0x82, 0x70, 0xcf, 0xf1, 0xb9, 0xf6, 0x19,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[19]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[20]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[21]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x00])),\n );\n expect(apiMock.sendCommand.mock.calls[22]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0xec, 0x7b, 0xe8, 0x9e, 0x9d, 0x10, 0x9e, 0x7e, 0x3f,\n 0xec, 0x59, 0xc2, 0x22, 0xcf, 0x29, 0x71, 0x25, 0xfe, 0xfd, 0xa2,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[23]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n });\n\n it(\"Send context with clear signing\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(TEST_CLEAR_SIGN_CONTEXT),\n calldatasContexts: {},\n };\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 4 } })) // First token provided\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 5 } })); // Second token provided\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand.mock.calls).toHaveLength(32);\n // Send Struct definitions\n expect(apiMock.sendCommand.mock.calls[0]![0]).toStrictEqual(\n sendStructDefName(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[1]![0]).toStrictEqual(\n sendStructDefField(\"name\", STRING),\n );\n expect(apiMock.sendCommand.mock.calls[2]![0]).toStrictEqual(\n sendStructDefField(\"chainId\", UINT256),\n );\n expect(apiMock.sendCommand.mock.calls[3]![0]).toStrictEqual(\n sendStructDefField(\"verifyingContract\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[4]![0]).toStrictEqual(\n sendStructDefName(\"PermitDetails\"),\n );\n expect(apiMock.sendCommand.mock.calls[5]![0]).toStrictEqual(\n sendStructDefField(\"token\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[6]![0]).toStrictEqual(\n sendStructDefField(\"amount\", UINT160),\n );\n expect(apiMock.sendCommand.mock.calls[7]![0]).toStrictEqual(\n sendStructDefField(\"expiration\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[8]![0]).toStrictEqual(\n sendStructDefField(\"nonce\", UINT48),\n );\n expect(apiMock.sendCommand.mock.calls[9]![0]).toStrictEqual(\n sendStructDefName(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[10]![0]).toStrictEqual(\n sendStructDefField(\"details\", CUSTOM(\"PermitDetails\")),\n );\n expect(apiMock.sendCommand.mock.calls[11]![0]).toStrictEqual(\n sendStructDefField(\"spender\", ADDRESS),\n );\n expect(apiMock.sendCommand.mock.calls[12]![0]).toStrictEqual(\n sendStructDefField(\"sigDeadline\", UINT256),\n );\n // Activate the filtering\n expect(apiMock.sendCommand.mock.calls[13]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({ type: Eip712FilterType.Activation }),\n );\n // Send the domain values\n expect(apiMock.sendCommand.mock.calls[14]![0]).toStrictEqual(\n sendStructImplRoot(\"EIP712Domain\"),\n );\n expect(apiMock.sendCommand.mock.calls[15]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([0x00, 0x07, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x32]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[16]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x89])),\n );\n expect(apiMock.sendCommand.mock.calls[17]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xd4, 0x73, 0x03,\n 0x0f, 0x11, 0x6d, 0xde, 0xe9, 0xf6, 0xb4, 0x3a, 0xc7, 0x8b, 0xa3,\n ]),\n ),\n );\n // Send the message information filter\n expect(apiMock.sendCommand.mock.calls[18]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.MessageInfo,\n displayName: \"Permit2\",\n filtersCount: 4,\n signature:\n \"3045022100e3c597d13d28a87a88b0239404c668373cf5063362f2a81d09eed4582941dfe802207669aabb504fd5b95b2734057f6b8bbf51f14a69a5f9bdf658a5952cefbf44d3\",\n }),\n );\n // Send the message values with corresponding filters\n expect(apiMock.sendCommand.mock.calls[19]![0]).toStrictEqual(\n sendStructImplRoot(\"PermitSingle\"),\n );\n expect(apiMock.sendCommand.mock.calls[20]![0]).toStrictEqual(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[21]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 4,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[22]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x7c, 0xeb, 0x23, 0xfd, 0x6b, 0xc0, 0xad, 0xd5, 0x9e,\n 0x62, 0xac, 0x25, 0x57, 0x82, 0x70, 0xcf, 0xf1, 0xb9, 0xf6, 0x19,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[23]![0]).toStrictEqual(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[24]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 255,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[25]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[26]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Datetime,\n discarded: false,\n displayName: \"Approval expire\",\n signature:\n \"3044022056b3381e4540629ad73bc434ec49d80523234b82f62340fbb77157fb0eb21a680220459fe9cf6ca309f9c7dfc6d4711fea1848dba661563c57f77b3c2dc480b3a63b\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[27]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n expect(apiMock.sendCommand.mock.calls[28]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x00])),\n );\n expect(apiMock.sendCommand.mock.calls[29]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Raw,\n discarded: false,\n displayName: \"Approve to spender\",\n signature:\n \"3044022033e5713d9cb9bc375b56a9fb53b736c81ea3c4ac5cfb2d3ca7f8b8f0558fe2430220543ca4fef6d6f725f29e343f167fe9dd582aa856ecb5797259050eb990a1befb\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[30]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0xec, 0x7b, 0xe8, 0x9e, 0x9d, 0x10, 0x9e, 0x7e, 0x3f,\n 0xec, 0x59, 0xc2, 0x22, 0xcf, 0x29, 0x71, 0x25, 0xfe, 0xfd, 0xa2,\n ]),\n ),\n );\n expect(apiMock.sendCommand.mock.calls[31]![0]).toStrictEqual(\n sendStructImplField(Uint8Array.from([0x00, 0x01, 0x12])),\n );\n });\n\n it(\"Both tokens unavailable\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: TEST_CLEAR_SIGN_CONTEXT.filters,\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: {},\n }),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).not.toHaveBeenCalledWith(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n }),\n );\n expect(apiMock.sendCommand).not.toHaveBeenCalledWith(\n new ProvideTokenInformationCommand({\n payload: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 0,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 1,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"Provide calldata filters\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: {\n \"details.amount\": {\n displayName: \"Value\",\n path: \"details.amount\",\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-value\",\n },\n \"details.expiration\": {\n displayName: \"Callee\",\n path: \"details.expiration\",\n signature:\n \"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-callee\",\n },\n spender: {\n displayName: \"Spender\",\n path: \"spender\",\n signature:\n \"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-spender\",\n },\n \"details.token\": {\n displayName: \"Chain ID\",\n path: \"details.token\",\n signature:\n \"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 0,\n type: \"calldata-chain-id\",\n },\n \"details.nonce\": {\n displayName: \"Chain ID\",\n path: \"details.nonce\",\n signature:\n \"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 1,\n type: \"calldata-selector\",\n },\n sigDeadline: {\n displayName: \"Amount\",\n path: \"sigDeadline\",\n signature:\n \"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n calldataIndex: 1,\n type: \"calldata-amount\",\n },\n },\n trustedNamesAddresses: {},\n calldatas: {\n 0: {\n filter: {\n calldataIndex: 0,\n displayName: \"Transaction\",\n valueFlag: true,\n calleeFlag: TypedDataCalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: TypedDataCalldataParamPresence.VerifyingContract,\n signature:\n \"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n },\n subset: {\n chainId: 0x1234,\n data: \"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99\",\n from: \"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n selector: \"0x778899aa\",\n to: \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n value: 4200000000000000n,\n },\n },\n 1: {\n filter: {\n calldataIndex: 1,\n displayName: \"Transaction\",\n valueFlag: true,\n calleeFlag: TypedDataCalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: TypedDataCalldataParamPresence.VerifyingContract,\n signature:\n \"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n },\n subset: {\n chainId: 0x1235,\n data: \"0x6a76120200000000000000000000000023f8abfc2824c397ccb3da89ae772984107ddb99\",\n from: \"0x8ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n selector: \"0x778899aa\",\n to: \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\",\n value: 4300000000000000n,\n },\n },\n },\n proxy: undefined,\n tokens: {},\n }),\n calldatasContexts: {\n 0: [],\n },\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(provideContextFactoryMock).toHaveBeenCalledTimes(1);\n expect(provideContextFactoryMock).toHaveBeenCalledWith({\n contexts: [],\n derivationPath: \"44'/60'/0'/0/0\",\n });\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataInfo,\n discarded: false,\n calldataIndex: 0,\n valueFlag: true,\n calleeFlag: CalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: CalldataParamPresence.VerifyingContract,\n signature:\n \"3045022100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataValue,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataCallee,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304502201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataSpender,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304602201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataChainId,\n discarded: false,\n calldataIndex: 0,\n signature:\n \"304702201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataInfo,\n discarded: false,\n calldataIndex: 1,\n valueFlag: true,\n calleeFlag: CalldataParamPresence.Present,\n chainIdFlag: false,\n selectorFlag: false,\n amountFlag: true,\n spenderFlag: CalldataParamPresence.VerifyingContract,\n signature:\n \"3045932100d8496ab69152efeef6a923a3ebd225334ad65dcb985814994243be7bc09bf27e02206314835816908dd6d51d3cbb0f9465d91d7ddc9104b34dd6c4247f65c551836e\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataSelector,\n discarded: false,\n calldataIndex: 1,\n signature:\n \"304802201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.CalldataAmount,\n discarded: false,\n calldataIndex: 1,\n signature:\n \"304902201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"First token unavailable\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: TEST_CLEAR_SIGN_CONTEXT.filters,\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: { 255: \"payload-0x000000000022d473030f116ddee9f6b43ac78ba3\" },\n }),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: { tokenIndex: 4 } }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 0,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 255,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"Second token unavailable\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just({\n type: \"success\",\n messageInfo: TEST_CLEAR_SIGN_CONTEXT.messageInfo,\n filters: TEST_CLEAR_SIGN_CONTEXT.filters,\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: { 0: \"payload-0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\" },\n }),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: { tokenIndex: 4 } }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Token,\n discarded: false,\n tokenIndex: 4,\n signature:\n \"3044022075103b38995e031d1ebbfe38ac6603bec32854b5146a664e49b4cc4f460c1da6022029f4b0fd1f3b7995ffff1627d4b57f27888a2dcc9b3a4e85c37c67571092c733\",\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Amount,\n discarded: false,\n displayName: \"Amount allowance\",\n tokenIndex: 0,\n signature:\n \"304402201a46e6b4ef89eaf9fcf4945d053bfc5616a826400fd758312fbbe976bafc07ec022025a9b408722baf983ee053f90179c75b0c55bb0668f437d55493e36069bbd5a3\",\n }),\n );\n });\n\n it(\"Provide proxy\", async () => {\n // GIVEN\n const proxy: ClearSignContextSuccess<ClearSignContextType.PROXY_DELEGATE_CALL> =\n {\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: \"0x010203\",\n };\n const clearSignContext: TypedDataClearSignContextSuccess = {\n ...TEST_CLEAR_SIGN_CONTEXT,\n proxy,\n };\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(clearSignContext),\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: { tokenIndex: 4 } }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new ProvideProxyInfoCommand({\n data: hexaStringToBuffer(\"0x0003010203\")!,\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"Provide Web3Check\", async () => {\n // GIVEN\n const web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> =\n {\n type: ClearSignContextType.WEB3_CHECK,\n payload: \"0x010203\",\n };\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new ProvideWeb3CheckCommand({\n payload: hexaStringToBuffer(\"0x0003010203\")!,\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"Provide Web3Check and certificate\", async () => {\n // GIVEN\n const web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> =\n {\n type: ClearSignContextType.WEB3_CHECK,\n certificate: {\n keyUsageNumber: 3,\n payload: new Uint8Array(3).fill(42),\n },\n payload: \"0x010203\",\n };\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new LoadCertificateCommand({\n keyUsage: 3,\n certificate: web3Check.certificate!.payload,\n }),\n );\n expect(apiMock.sendCommand).toHaveBeenCalledWith(\n new ProvideWeb3CheckCommand({\n payload: hexaStringToBuffer(\"0x0003010203\")!,\n isFirstChunk: true,\n }),\n );\n });\n\n it(\"Error when providing tokens\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(TEST_CLEAR_SIGN_CONTEXT),\n calldatasContexts: {},\n };\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n );\n // WHEN\n const promise = new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n await expect(promise).resolves.toStrictEqual(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n );\n });\n\n it(\"Error when sending struct definitions\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Just(TEST_CLEAR_SIGN_CONTEXT),\n calldatasContexts: {},\n };\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 4 } }))\n .mockResolvedValueOnce(CommandResultFactory({ data: { tokenIndex: 5 } }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n );\n // WHEN\n const promise = new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n await expect(promise).resolves.toStrictEqual(\n CommandResultFactory({ error: new UnknownDeviceExchangeError(\"error\") }),\n );\n });\n\n it(\"Error when sending struct implementations\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: TEST_TYPES,\n domain: TEST_DOMAIN_VALUES,\n message: TEST_MESSAGE_VALUES,\n clearSignContext: Nothing,\n calldatasContexts: {},\n };\n // WHEN\n apiMock.sendCommand\n // Struct definitions\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n .mockResolvedValueOnce(CommandResultFactory({ data: undefined }))\n // Struct implementations\n .mockResolvedValueOnce(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"error\"),\n }),\n )\n .mockResolvedValue(CommandResultFactory({ data: undefined }));\n const promise = new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n await expect(promise).resolves.toStrictEqual(\n CommandResultFactory({ error: new UnknownDeviceExchangeError(\"error\") }),\n );\n });\n\n it(\"Send struct array\", async () => {\n // GIVEN\n const args: ProvideEIP712ContextTaskArgs = {\n derivationPath: \"44'/60'/0'/0/0\",\n web3Check: null,\n types: {},\n domain: [],\n message: [\n // Array containing an element\n {\n path: \"spenders\",\n type: \"address[]\",\n value: new TypedDataValueArray(1),\n },\n {\n path: \"spenders.[]\",\n type: \"address\",\n value: new TypedDataValueField(\n hexaStringToBuffer(\"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\")!,\n ),\n },\n // Empty array\n {\n path: \"beneficiaries\",\n type: \"address[]\",\n value: new TypedDataValueArray(0),\n },\n ],\n clearSignContext: Just({\n type: \"success\",\n messageInfo: {\n displayName: \"Permit2\",\n filtersCount: 2,\n signature: \"sig\",\n },\n trustedNamesAddresses: {},\n calldatas: {},\n proxy: undefined,\n tokens: {},\n filters: {\n \"spenders.[]\": {\n displayName: \"Spender\",\n path: \"spenders.[]\",\n signature: \"sig\",\n type: \"raw\",\n },\n \"beneficiaries.[]\": {\n displayName: \"Beneficiary\",\n path: \"beneficiaries.[]\",\n signature: \"sig\",\n type: \"raw\",\n },\n },\n }),\n calldatasContexts: {},\n };\n // WHEN\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n await new ProvideEIP712ContextTask(\n apiMock,\n contextModuleMock,\n args,\n provideContextFactoryMock,\n ).run();\n\n // THEN\n // Activate the filtering\n expect(apiMock.sendCommand.mock.calls[0]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({ type: Eip712FilterType.Activation }),\n );\n // Send the message information filter\n expect(apiMock.sendCommand.mock.calls[1]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.MessageInfo,\n displayName: \"Permit2\",\n filtersCount: 2,\n signature: \"sig\",\n }),\n );\n // Send first array containing 1 element\n expect(apiMock.sendCommand.mock.calls[2]![0]).toStrictEqual(\n sendStructImplArray(1),\n );\n expect(apiMock.sendCommand.mock.calls[3]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Raw,\n discarded: false,\n displayName: \"Spender\",\n signature: \"sig\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[4]![0]).toStrictEqual(\n sendStructImplField(\n Uint8Array.from([\n 0x00, 0x14, 0x7c, 0xeb, 0x23, 0xfd, 0x6b, 0xc0, 0xad, 0xd5, 0x9e,\n 0x62, 0xac, 0x25, 0x57, 0x82, 0x70, 0xcf, 0xf1, 0xb9, 0xf6, 0x19,\n ]),\n ),\n );\n // Send second empty array, with discarded filter\n expect(apiMock.sendCommand.mock.calls[5]![0]).toStrictEqual(\n sendStructImplArray(0),\n );\n expect(apiMock.sendCommand.mock.calls[6]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.DiscardedPath,\n path: \"beneficiaries.[]\",\n }),\n );\n expect(apiMock.sendCommand.mock.calls[7]![0]).toStrictEqual(\n new SendEIP712FilteringCommand({\n type: Eip712FilterType.Raw,\n discarded: true,\n displayName: \"Beneficiary\",\n signature: \"sig\",\n }),\n );\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["ClearSignContextType", "TypedDataCalldataParamPresence", "CommandResultFactory", "hexaStringToBuffer", "LoadCertificateCommand", "UnknownDeviceExchangeError", "Just", "Nothing", "ProvideProxyInfoCommand", "ProvideTokenInformationCommand", "ProvideWeb3CheckCommand", "CalldataParamPresence", "Eip712FilterType", "SendEIP712FilteringCommand", "SendEIP712StructDefinitionCommand", "StructDefinitionCommand", "SendEIP712StructImplemCommand", "StructImplemType", "makeDeviceActionInternalApiMock", "PrimitiveType", "StructType", "TypedDataValueArray", "TypedDataValueField", "TypedDataValueRoot", "ProvideEIP712ContextTask", "apiMock", "provideContextFactoryMock", "contextModuleMock", "TEST_TYPES", "TEST_DOMAIN_VALUES", "TEST_MESSAGE_VALUES", "TEST_CLEAR_SIGN_CONTEXT", "ADDRESS", "STRING", "UINT256", "UINT160", "UINT48", "CUSTOM", "name", "sendStructDefName", "sendStructDefField", "type", "sendStructImplRoot", "value", "sendStructImplArray", "sendStructImplField", "data", "args", "proxy", "clearSignContext", "web3Check", "promise"]
|
|
7
7
|
}
|
package/lib/esm/package.json
CHANGED
|
@@ -17,7 +17,8 @@ export declare enum SignTransactionDAStep {
|
|
|
17
17
|
PARSE_TRANSACTION = "signer.eth.steps.parseTransaction",
|
|
18
18
|
BUILD_CONTEXTS = "signer.eth.steps.buildContexts",
|
|
19
19
|
PROVIDE_CONTEXTS = "signer.eth.steps.provideContexts",
|
|
20
|
-
SIGN_TRANSACTION = "signer.eth.steps.signTransaction"
|
|
20
|
+
SIGN_TRANSACTION = "signer.eth.steps.signTransaction",
|
|
21
|
+
BLIND_SIGN_TRANSACTION_FALLBACK = "signer.eth.steps.blindSignTransactionFallback"
|
|
21
22
|
}
|
|
22
23
|
export type SignTransactionDAOutput = Signature;
|
|
23
24
|
export type SignTransactionDAInput = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignTransactionDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/SignTransactionDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AAC9G,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AAE9G,oBAAY,qBAAqB;IAC/B,QAAQ,6BAA6B;IACrC,cAAc,kCAAkC;IAChD,kBAAkB,qCAAqC;IACvD,yBAAyB,2CAA2C;IACpE,iBAAiB,sCAAsC;IACvD,cAAc,mCAAmC;IACjD,gBAAgB,qCAAqC;IACrD,gBAAgB,qCAAqC;
|
|
1
|
+
{"version":3,"file":"SignTransactionDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/SignTransactionDeviceActionTypes.ts"],"names":[],"mappings":"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"}
|
package/lib/types/api/index.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
export { type SignDelegationAuthorizationDAError } from "./app-binder/SignDelegationAuthorizationTypes";
|
|
3
|
-
export { type
|
|
4
|
-
export { type
|
|
5
|
-
export { type
|
|
6
|
-
export { type SignDelegationAuthorizationDAIntermediateValue } from "./app-binder/SignDelegationAuthorizationTypes";
|
|
7
|
-
export type { SignPersonalMessageDAError, SignPersonalMessageDAIntermediateValue, SignPersonalMessageDAOutput, } from "./app-binder/SignPersonalMessageDeviceActionTypes";
|
|
8
|
-
export { type SignTransactionDAError, type SignTransactionDAInput, type SignTransactionDAIntermediateValue, type SignTransactionDAOutput, type SignTransactionDAState, SignTransactionDAStep, } from "./app-binder/SignTransactionDeviceActionTypes";
|
|
9
|
-
export { type SignTypedDataDAError, type SignTypedDataDAInput, type SignTypedDataDAIntermediateValue, type SignTypedDataDAOutput, type SignTypedDataDAState, SignTypedDataDAStateStep, } from "./app-binder/SignTypedDataDeviceActionTypes";
|
|
1
|
+
export { type GetAddressDAError, type GetAddressDAIntermediateValue, type GetAddressDAOutput, type GetAddressDAReturnType, } from "./app-binder/GetAddressDeviceActionTypes";
|
|
2
|
+
export { type SignDelegationAuthorizationDAError, type SignDelegationAuthorizationDAInput, type SignDelegationAuthorizationDAIntermediateValue, type SignDelegationAuthorizationDAOutput, type SignDelegationAuthorizationDAReturnType, type SignDelegationAuthorizationDAState, } from "./app-binder/SignDelegationAuthorizationTypes";
|
|
3
|
+
export { type SignPersonalMessageDAError, type SignPersonalMessageDAIntermediateValue, type SignPersonalMessageDAOutput, type SignPersonalMessageDAReturnType, } from "./app-binder/SignPersonalMessageDeviceActionTypes";
|
|
4
|
+
export { type SignTransactionDAError, type SignTransactionDAInput, type SignTransactionDAIntermediateValue, type SignTransactionDAInternalState, type SignTransactionDAOutput, type SignTransactionDAReturnType, type SignTransactionDAState, SignTransactionDAStep, } from "./app-binder/SignTransactionDeviceActionTypes";
|
|
5
|
+
export { type SignTypedDataDAError, type SignTypedDataDAInput, type SignTypedDataDAIntermediateValue, type SignTypedDataDAInternalState, type SignTypedDataDAOutput, type SignTypedDataDAReturnType, type SignTypedDataDAState, SignTypedDataDAStateStep, } from "./app-binder/SignTypedDataDeviceActionTypes";
|
|
10
6
|
export * from "./model/Address";
|
|
11
7
|
export * from "./model/AddressOptions";
|
|
12
8
|
export * from "./model/Signature";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,kCAAkC,EACvC,KAAK,8CAA8C,EACnD,KAAK,mCAAmC,EACxC,KAAK,uCAAuC,EAC5C,KAAK,kCAAkC,GACxC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,sCAAsC,EAC3C,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,GACrC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,qBAAqB,GACtB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,gCAAgC,EACrC,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,wBAAwB,GACzB,MAAM,gDAAgD,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type CommandResult, type DeviceActionStateMachine, type InternalApi, XStateDeviceAction } from "@ledgerhq/device-management-kit";
|
|
2
2
|
import { type GetConfigCommandResponse } from "../../../../api/app-binder/GetConfigCommandTypes";
|
|
3
3
|
import { type SignTransactionDAError, type SignTransactionDAInput, type SignTransactionDAIntermediateValue, type SignTransactionDAInternalState, type SignTransactionDAOutput } from "../../../../api/app-binder/SignTransactionDeviceActionTypes";
|
|
4
|
-
import {
|
|
4
|
+
import { ClearSigningType } from "../../../../api/model/ClearSigningType";
|
|
5
5
|
import { type Signature } from "../../../../api/model/Signature";
|
|
6
6
|
import { type TransactionType } from "../../../../api/model/TransactionType";
|
|
7
7
|
import { type EthErrorCodes } from "../../../app-binder/command/utils/ethAppErrors";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignTransactionDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAE7B,KAAK,WAAW,EAMhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAE7B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SignTransactionDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAE7B,KAAK,WAAW,EAMhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAE7B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EACjC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAChC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,+CAA+C,CAAC;AAIvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAClC,aAAa,CAAC,wBAAwB,EAAE,aAAa,CAAC,CACvD,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CACpC,aAAa,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAC5D,CAAC;IACF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAChC,KAAK,EAAE,wBAAwB,CAAC;KACjC,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE;QAC7B,KAAK,EAAE,yBAAyB,CAAC;KAClC,KAAK,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE;QAC/B,KAAK,EAAE,uBAAuB,CAAC;KAChC,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE;QAC/B,KAAK,EAAE;YACL,cAAc,EAAE,MAAM,CAAC;YACvB,qBAAqB,EAAE,UAAU,CAAC;YAClC,OAAO,EAAE,MAAM,CAAC;YAChB,eAAe,EAAE,eAAe,CAAC;YACjC,gBAAgB,EAAE,gBAAgB,CAAC;SACpC,CAAC;KACH,KAAK,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,qBAAa,2BAA4B,SAAQ,kBAAkB,CACjE,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EAClC,8BAA8B,CAC/B;IACC,gBAAgB,CACd,WAAW,EAAE,WAAW,GACvB,wBAAwB,CACzB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EAClC,8BAA8B,CAC/B;IAscD,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CA6CnE"}
|
|
@@ -16,8 +16,10 @@ export type ProvideContextsTaskArgs = {
|
|
|
16
16
|
derivationPath: string;
|
|
17
17
|
/**
|
|
18
18
|
* The serialized transaction to provide.
|
|
19
|
+
* This parameter is optional in the case there is no transaction at all, for instance
|
|
20
|
+
* if there is only a standalone calldata embedded in a message.
|
|
19
21
|
*/
|
|
20
|
-
serializedTransaction
|
|
22
|
+
serializedTransaction?: Uint8Array;
|
|
21
23
|
};
|
|
22
24
|
export type ProvideContextsTaskResult = Either<CommandErrorResult<EthErrorCodes>, void>;
|
|
23
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvideContextsTask.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/task/ProvideContextsTask.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAElB,KAAK,WAAW,EAIjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAC;AAiBrD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,uBAAuB,EACvB,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"ProvideContextsTask.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/task/ProvideContextsTask.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAElB,KAAK,WAAW,EAIjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAC;AAiBrD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,uBAAuB,EACvB,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,UAAU,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAC5C,kBAAkB,CAAC,aAAa,CAAC,EACjC,IAAI,CACL,CAAC;AAEF;;;GAGG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,+BAA+B;IAIvC,OAAO,CAAC,+BAA+B;gBAN/B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,uBAAuB,EAC9B,+BAA+B,IACrC,KAAK,WAAW,EAChB,MAAM,2BAA2B,CAAC,OAAO,CAAC,qCACD,EACnC,+BAA+B,IACrC,KAAK,WAAW,EAChB,MAAM,2BAA2B,CAAC,OAAO,CAAC,qCACD;IAGvC,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC;IA2D/C;;;;;OAKG;IACG,cAAc,CAAC,EACnB,IAAI,EACJ,OAAO,EACP,WAAW,GACZ,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;CA2H5E"}
|