@fastnear/wallet-adapter
Version:
Wallet adapter implementations for Meteor Wallet and Near Mobile
1 lines • 4.4 kB
Source Map (JSON)
{"version":3,"sources":["../../src/actions.ts"],"sourcesContent":["import { bytesToBase64 } from \"@fastnear/utils\";\nimport type { ConnectorActionLike } from \"./types.js\";\n\nconst toBase64Code = (value: unknown): string => {\n if (typeof value === \"string\") return value;\n if (value instanceof Uint8Array) return bytesToBase64(value);\n if (Array.isArray(value)) return bytesToBase64(Uint8Array.from(value));\n throw new Error(\"DeployContract code must be Uint8Array, Array<number>, or base64 string\");\n};\n\nexport const connectorActionsToFastnearActions = (actions: ConnectorActionLike[]): any[] => {\n return actions.map((action) => {\n if (typeof action !== \"object\" || action == null) {\n throw new Error(\"Invalid action\");\n }\n\n if (!(\"type\" in action) || typeof action.type !== \"string\") {\n throw new Error(\"Action is missing type\");\n }\n\n switch (action.type) {\n case \"FunctionCall\":\n return {\n type: \"FunctionCall\",\n methodName: action.params?.methodName,\n args: action.params?.args ?? {},\n gas: action.params?.gas ?? \"30000000000000\",\n deposit: action.params?.deposit ?? \"0\",\n };\n case \"Transfer\":\n return {\n type: \"Transfer\",\n deposit: action.params?.deposit,\n };\n case \"AddKey\":\n return {\n type: \"AddKey\",\n publicKey: action.params?.publicKey,\n accessKey: {\n nonce: action.params?.accessKey?.nonce ?? 0,\n permission:\n action.params?.accessKey?.permission === \"FullAccess\"\n ? \"FullAccess\"\n : {\n receiverId: action.params?.accessKey?.permission?.receiverId,\n methodNames: action.params?.accessKey?.permission?.methodNames ?? [],\n allowance: action.params?.accessKey?.permission?.allowance,\n },\n },\n };\n case \"DeleteKey\":\n return {\n type: \"DeleteKey\",\n publicKey: action.params?.publicKey,\n };\n case \"CreateAccount\":\n return {\n type: \"CreateAccount\",\n };\n case \"DeleteAccount\":\n return {\n type: \"DeleteAccount\",\n beneficiaryId: action.params?.beneficiaryId,\n };\n case \"DeployContract\":\n return {\n type: \"DeployContract\",\n codeBase64: toBase64Code(action.params?.code),\n };\n case \"Stake\":\n return {\n type: \"Stake\",\n stake: action.params?.stake,\n publicKey: action.params?.publicKey,\n };\n default:\n throw new Error(`Unsupported action type: ${action.type}`);\n }\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAG9B,MAAM,eAAe,wBAAC,UAA2B;AAC/C,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,iBAAiB,WAAY,YAAO,4BAAc,KAAK;AAC3D,MAAI,MAAM,QAAQ,KAAK,EAAG,YAAO,4BAAc,WAAW,KAAK,KAAK,CAAC;AACrE,QAAM,IAAI,MAAM,yEAAyE;AAC3F,GALqB;AAOd,MAAM,oCAAoC,wBAAC,YAA0C;AAC1F,SAAO,QAAQ,IAAI,CAAC,WAAW;AAC7B,QAAI,OAAO,WAAW,YAAY,UAAU,MAAM;AAChD,YAAM,IAAI,MAAM,gBAAgB;AAAA,IAClC;AAEA,QAAI,EAAE,UAAU,WAAW,OAAO,OAAO,SAAS,UAAU;AAC1D,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAEA,YAAQ,OAAO,MAAM;AAAA,MACnB,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,YAAY,OAAO,QAAQ;AAAA,UAC3B,MAAM,OAAO,QAAQ,QAAQ,CAAC;AAAA,UAC9B,KAAK,OAAO,QAAQ,OAAO;AAAA,UAC3B,SAAS,OAAO,QAAQ,WAAW;AAAA,QACrC;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,SAAS,OAAO,QAAQ;AAAA,QAC1B;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,WAAW,OAAO,QAAQ;AAAA,UAC1B,WAAW;AAAA,YACT,OAAO,OAAO,QAAQ,WAAW,SAAS;AAAA,YAC1C,YACE,OAAO,QAAQ,WAAW,eAAe,eACrC,eACA;AAAA,cACE,YAAY,OAAO,QAAQ,WAAW,YAAY;AAAA,cAClD,aAAa,OAAO,QAAQ,WAAW,YAAY,eAAe,CAAC;AAAA,cACnE,WAAW,OAAO,QAAQ,WAAW,YAAY;AAAA,YACnD;AAAA,UACR;AAAA,QACF;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,WAAW,OAAO,QAAQ;AAAA,QAC5B;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,QACR;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,eAAe,OAAO,QAAQ;AAAA,QAChC;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,YAAY,aAAa,OAAO,QAAQ,IAAI;AAAA,QAC9C;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO,OAAO,QAAQ;AAAA,UACtB,WAAW,OAAO,QAAQ;AAAA,QAC5B;AAAA,MACF;AACE,cAAM,IAAI,MAAM,4BAA4B,OAAO,IAAI,EAAE;AAAA,IAC7D;AAAA,EACF,CAAC;AACH,GArEiD;","names":[]}