@temple-wallet/dapp 3.0.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "Madfish Solutions",
5
5
  "email": "info@madfish.solutions"
6
6
  },
7
- "version": "3.0.1",
7
+ "version": "6.0.0",
8
8
  "source": "src/index.ts",
9
9
  "main": "dist/index.js",
10
10
  "module": "dist/index.module.js",
@@ -28,17 +28,17 @@
28
28
  "doc": "typedoc --plugin typedoc-plugin-markdown --mode file --readme none"
29
29
  },
30
30
  "dependencies": {
31
- "nanoid": "^3.1.10"
31
+ "nanoid": "^3.1.30"
32
32
  },
33
33
  "devDependencies": {
34
- "@taquito/taquito": "^8.0.0-beta.2",
35
- "microbundle": "^0.12.2",
34
+ "@taquito/taquito": "^11.0.2",
35
+ "microbundle": "^0.14.2",
36
36
  "typedoc": "^0.17.8",
37
37
  "typedoc-plugin-markdown": "^2.3.1",
38
- "typescript": "^3.9.6"
38
+ "typescript": "^4.3.4"
39
39
  },
40
40
  "peerDependencies": {
41
- "@taquito/taquito": "^7.0.0 || ^7.0.0-beta || ^8.0.0-beta"
41
+ "@taquito/taquito": "^11.0.2"
42
42
  },
43
43
  "publishConfig": {
44
44
  "access": "public"
@@ -5,8 +5,8 @@ import {
5
5
  createSetDelegateOperation,
6
6
  createTransferOperation,
7
7
  WalletDelegateParams,
8
- WalletOriginateParams,
9
8
  WalletTransferParams,
9
+ WalletOriginateParams,
10
10
  } from "@taquito/taquito";
11
11
 
12
12
  import {
@@ -69,16 +69,34 @@ export class TempleWallet implements WalletProvider {
69
69
  return this.permission.pkh;
70
70
  }
71
71
 
72
- async mapTransferParamsToWalletParams(params: WalletTransferParams) {
73
- return createTransferOperation(params);
72
+ async mapTransferParamsToWalletParams(
73
+ params: () => Promise<WalletTransferParams>
74
+ ) {
75
+ const walletParams = await params();
76
+ return this.removeDefaultParams(
77
+ walletParams,
78
+ await createTransferOperation(this.formatParameters(walletParams))
79
+ );
74
80
  }
75
81
 
76
- async mapOriginateParamsToWalletParams(params: WalletOriginateParams) {
77
- return createOriginationOperation(params as any);
82
+ async mapOriginateParamsToWalletParams(
83
+ params: () => Promise<WalletOriginateParams>
84
+ ) {
85
+ const walletParams = await params();
86
+ return this.removeDefaultParams(
87
+ walletParams,
88
+ await createOriginationOperation(this.formatParameters(walletParams))
89
+ );
78
90
  }
79
91
 
80
- async mapDelegateParamsToWalletParams(params: WalletDelegateParams) {
81
- return createSetDelegateOperation(params as any);
92
+ async mapDelegateParamsToWalletParams(
93
+ params: () => Promise<WalletDelegateParams>
94
+ ) {
95
+ const walletParams = await params();
96
+ return this.removeDefaultParams(
97
+ walletParams,
98
+ await createSetDelegateOperation(this.formatParameters(walletParams))
99
+ );
82
100
  }
83
101
 
84
102
  async sendOperations(opParams: any[]) {
@@ -95,6 +113,38 @@ export class TempleWallet implements WalletProvider {
95
113
  assertConnected(this.permission);
96
114
  return requestBroadcast(signedOpBytes);
97
115
  }
116
+
117
+ private formatParameters(params: any) {
118
+ if (params.fee) {
119
+ params.fee = params.fee.toString();
120
+ }
121
+ if (params.storageLimit) {
122
+ params.storageLimit = params.storageLimit.toString();
123
+ }
124
+ if (params.gasLimit) {
125
+ params.gasLimit = params.gasLimit.toString();
126
+ }
127
+ return params;
128
+ }
129
+
130
+ private removeDefaultParams(
131
+ params: WalletTransferParams | WalletOriginateParams | WalletDelegateParams,
132
+ operatedParams: any
133
+ ) {
134
+ // If fee, storageLimit or gasLimit is undefined by user
135
+ // in case of beacon wallet, dont override it by
136
+ // defaults.
137
+ if (!params.fee) {
138
+ delete operatedParams.fee;
139
+ }
140
+ if (!params.storageLimit) {
141
+ delete operatedParams.storage_limit;
142
+ }
143
+ if (!params.gasLimit) {
144
+ delete operatedParams.gas_limit;
145
+ }
146
+ return operatedParams;
147
+ }
98
148
  }
99
149
 
100
150
  export class NotConnectedTempleWalletError extends TempleWalletError {
@@ -117,6 +167,8 @@ function formatOpParams(op: any) {
117
167
  return {
118
168
  ...rest,
119
169
  mutez: true, // The balance was already converted from Tez (ꜩ) to Mutez (uꜩ)
170
+ fee,
171
+ gasLimit: gas_limit,
120
172
  storageLimit: storage_limit,
121
173
  };
122
174
 
@@ -128,12 +180,16 @@ function formatOpParams(op: any) {
128
180
  amount: +amount,
129
181
  mutez: true,
130
182
  parameter: parameters,
183
+ fee,
184
+ gasLimit: gas_limit,
131
185
  storageLimit: storage_limit,
132
186
  };
133
187
 
134
188
  default:
135
189
  return {
136
190
  ...rest,
191
+ fee,
192
+ gasLimit: gas_limit,
137
193
  storageLimit: storage_limit,
138
194
  };
139
195
  }
package/src/types.ts CHANGED
@@ -116,6 +116,7 @@ export type TempleDAppNetwork =
116
116
  | "mainnet"
117
117
  | "edo2net"
118
118
  | "florencenet"
119
+ | "granadanet"
119
120
  | "sandbox"
120
121
  | { name: string; rpc: string };
121
122
 
package/dist/client.d.ts DELETED
@@ -1,30 +0,0 @@
1
- import { TempleDAppNetwork, TempleDAppMetadata, TempleDAppPermission } from "./types";
2
- export declare function isAvailable(): Promise<boolean>;
3
- export declare function onAvailabilityChange(callback: (available: boolean) => void): () => void;
4
- export declare function onPermissionChange(callback: (permission: TempleDAppPermission) => void): () => void;
5
- export declare function getCurrentPermission(): Promise<TempleDAppPermission>;
6
- export declare function requestPermission(network: TempleDAppNetwork, appMeta: TempleDAppMetadata, force: boolean): Promise<{
7
- rpc: string;
8
- pkh: string;
9
- publicKey: string;
10
- }>;
11
- export declare function requestOperation(sourcePkh: string, opParams: any): Promise<string>;
12
- export declare function requestSign(sourcePkh: string, payload: string): Promise<string>;
13
- export declare function requestBroadcast(signedOpBytes: string): Promise<string>;
14
- export declare class TempleWalletError implements Error {
15
- name: string;
16
- message: string;
17
- }
18
- export declare class NotGrantedTempleWalletError extends TempleWalletError {
19
- name: string;
20
- message: string;
21
- }
22
- export declare class NotFoundTempleWalletError extends TempleWalletError {
23
- name: string;
24
- message: string;
25
- }
26
- export declare class InvalidParamsTempleWalletError extends TempleWalletError {
27
- name: string;
28
- message: string;
29
- }
30
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,WAAW,qBAyB1B;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,cAkB1E;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI,cAiBrD;AAED,wBAAsB,oBAAoB,kCAQzC;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,OAAO;;;;GAcf;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAQtE;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAQnE;AAED,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,mBAO3D;AA4ED,qBAAa,iBAAkB,YAAW,KAAK;IAC7C,IAAI,SAAuB;IAC3B,OAAO,SAA6D;CACrE;AAED,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE,IAAI,SAAiC;IACrC,OAAO,SAA4B;CACpC;AAED,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,IAAI,SAA+B;IACnC,OAAO,SAA0C;CAClD;AAED,qBAAa,8BAA+B,SAAQ,iBAAiB;IACnE,IAAI,SAAoC;IACxC,OAAO,SAAqD;CAC7D"}
package/dist/client.js DELETED
@@ -1,205 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidParamsTempleWalletError = exports.NotFoundTempleWalletError = exports.NotGrantedTempleWalletError = exports.TempleWalletError = exports.requestBroadcast = exports.requestSign = exports.requestOperation = exports.requestPermission = exports.getCurrentPermission = exports.onPermissionChange = exports.onAvailabilityChange = exports.isAvailable = void 0;
4
- const nanoid_1 = require("nanoid");
5
- const taquito_1 = require("@taquito/taquito");
6
- const types_1 = require("./types");
7
- function isAvailable() {
8
- return new Promise((resolve) => {
9
- const handleMessage = (evt) => {
10
- if (evt.source === window &&
11
- evt.data?.type === types_1.TemplePageMessageType.Response &&
12
- evt.data?.payload === "PONG") {
13
- done(true);
14
- }
15
- };
16
- const done = (result) => {
17
- resolve(result);
18
- window.removeEventListener("message", handleMessage);
19
- clearTimeout(t);
20
- };
21
- send({
22
- type: types_1.TemplePageMessageType.Request,
23
- payload: "PING",
24
- });
25
- window.addEventListener("message", handleMessage);
26
- const t = setTimeout(() => done(false), 500);
27
- });
28
- }
29
- exports.isAvailable = isAvailable;
30
- function onAvailabilityChange(callback) {
31
- let t;
32
- let currentStatus = false;
33
- const check = async (attempt = 0) => {
34
- const initial = attempt < 5;
35
- const available = await isAvailable();
36
- if (currentStatus !== available) {
37
- callback(available);
38
- currentStatus = available;
39
- }
40
- t = setTimeout(check, available ? 10000 : !initial ? 5000 : 0, initial ? attempt + 1 : attempt);
41
- };
42
- check();
43
- return () => clearTimeout(t);
44
- }
45
- exports.onAvailabilityChange = onAvailabilityChange;
46
- function onPermissionChange(callback) {
47
- let t;
48
- let currentPerm = null;
49
- const check = async () => {
50
- try {
51
- const perm = await getCurrentPermission();
52
- if (!permissionsAreEqual(perm, currentPerm)) {
53
- callback(perm);
54
- currentPerm = perm;
55
- }
56
- }
57
- catch { }
58
- t = setTimeout(check, 10000);
59
- };
60
- check();
61
- return () => clearTimeout(t);
62
- }
63
- exports.onPermissionChange = onPermissionChange;
64
- async function getCurrentPermission() {
65
- const res = await request({
66
- type: types_1.TempleDAppMessageType.GetCurrentPermissionRequest,
67
- });
68
- assertResponse(res.type === types_1.TempleDAppMessageType.GetCurrentPermissionResponse);
69
- return res.permission;
70
- }
71
- exports.getCurrentPermission = getCurrentPermission;
72
- async function requestPermission(network, appMeta, force) {
73
- const res = await request({
74
- type: types_1.TempleDAppMessageType.PermissionRequest,
75
- network,
76
- appMeta,
77
- force,
78
- });
79
- assertResponse(res.type === types_1.TempleDAppMessageType.PermissionResponse);
80
- return {
81
- rpc: res.rpc,
82
- pkh: res.pkh,
83
- publicKey: res.publicKey,
84
- };
85
- }
86
- exports.requestPermission = requestPermission;
87
- async function requestOperation(sourcePkh, opParams) {
88
- const res = await request({
89
- type: types_1.TempleDAppMessageType.OperationRequest,
90
- sourcePkh,
91
- opParams,
92
- });
93
- assertResponse(res.type === types_1.TempleDAppMessageType.OperationResponse);
94
- return res.opHash;
95
- }
96
- exports.requestOperation = requestOperation;
97
- async function requestSign(sourcePkh, payload) {
98
- const res = await request({
99
- type: types_1.TempleDAppMessageType.SignRequest,
100
- sourcePkh,
101
- payload,
102
- });
103
- assertResponse(res.type === types_1.TempleDAppMessageType.SignResponse);
104
- return res.signature;
105
- }
106
- exports.requestSign = requestSign;
107
- async function requestBroadcast(signedOpBytes) {
108
- const res = await request({
109
- type: types_1.TempleDAppMessageType.BroadcastRequest,
110
- signedOpBytes,
111
- });
112
- assertResponse(res.type === types_1.TempleDAppMessageType.BroadcastResponse);
113
- return res.opHash;
114
- }
115
- exports.requestBroadcast = requestBroadcast;
116
- function request(payload) {
117
- return new Promise((resolve, reject) => {
118
- const reqId = nanoid_1.nanoid();
119
- const handleMessage = (evt) => {
120
- const res = evt.data;
121
- switch (true) {
122
- case evt.source !== window || res?.reqId !== reqId:
123
- return;
124
- case res?.type === types_1.TemplePageMessageType.Response:
125
- resolve(res.payload);
126
- window.removeEventListener("message", handleMessage);
127
- break;
128
- case res?.type === types_1.TemplePageMessageType.ErrorResponse:
129
- reject(createError(res.payload));
130
- window.removeEventListener("message", handleMessage);
131
- break;
132
- }
133
- };
134
- send({
135
- type: types_1.TemplePageMessageType.Request,
136
- payload,
137
- reqId,
138
- });
139
- window.addEventListener("message", handleMessage);
140
- });
141
- }
142
- function permissionsAreEqual(aPerm, bPerm) {
143
- if (aPerm === null)
144
- return bPerm === null;
145
- return aPerm.pkh === bPerm?.pkh && aPerm.rpc === bPerm?.rpc;
146
- }
147
- function createError(payload) {
148
- switch (true) {
149
- case payload === types_1.TempleDAppErrorType.NotGranted:
150
- return new NotGrantedTempleWalletError();
151
- case payload === types_1.TempleDAppErrorType.NotFound:
152
- return new NotFoundTempleWalletError();
153
- case payload === types_1.TempleDAppErrorType.InvalidParams:
154
- return new InvalidParamsTempleWalletError();
155
- case Array.isArray(payload) &&
156
- payload[0] === types_1.TempleDAppErrorType.TezosOperation &&
157
- Array.isArray(payload[1]) &&
158
- payload[1].length > 0:
159
- return new taquito_1.TezosOperationError(payload[1]);
160
- case typeof payload === "string" && payload.startsWith("__tezos__"):
161
- return new Error(payload.replace("__tezos__", ""));
162
- default:
163
- return new TempleWalletError();
164
- }
165
- }
166
- function assertResponse(condition) {
167
- if (!condition) {
168
- throw new Error("Invalid response recieved");
169
- }
170
- }
171
- function send(msg) {
172
- window.postMessage(msg, "*");
173
- }
174
- class TempleWalletError {
175
- constructor() {
176
- this.name = "TempleWalletError";
177
- this.message = "An unknown error occured. Please try again or report it";
178
- }
179
- }
180
- exports.TempleWalletError = TempleWalletError;
181
- class NotGrantedTempleWalletError extends TempleWalletError {
182
- constructor() {
183
- super(...arguments);
184
- this.name = "NotGrantedTempleWalletError";
185
- this.message = "Permission Not Granted";
186
- }
187
- }
188
- exports.NotGrantedTempleWalletError = NotGrantedTempleWalletError;
189
- class NotFoundTempleWalletError extends TempleWalletError {
190
- constructor() {
191
- super(...arguments);
192
- this.name = "NotFoundTempleWalletError";
193
- this.message = "Account Not Found. Try connect again";
194
- }
195
- }
196
- exports.NotFoundTempleWalletError = NotFoundTempleWalletError;
197
- class InvalidParamsTempleWalletError extends TempleWalletError {
198
- constructor() {
199
- super(...arguments);
200
- this.name = "InvalidParamsTempleWalletError";
201
- this.message = "Some of the parameters you provided are invalid";
202
- }
203
- }
204
- exports.InvalidParamsTempleWalletError = InvalidParamsTempleWalletError;
205
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from "./types";
2
- export * from "./client";
3
- export * from "./taquito-wallet";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
- var e,r,t,n=require("nanoid"),o=require("@taquito/taquito");function s(){return(s=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function i(e,r){e.prototype=Object.create(r.prototype),e.prototype.constructor=e,e.__proto__=r}function a(e,r){if(null==e)return{};var t,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r.indexOf(t=s[n])>=0||(o[t]=e[t]);return o}(e=exports.TempleDAppMessageType||(exports.TempleDAppMessageType={})).GetCurrentPermissionRequest="GET_CURRENT_PERMISSION_REQUEST",e.GetCurrentPermissionResponse="GET_CURRENT_PERMISSION_RESPONSE",e.PermissionRequest="PERMISSION_REQUEST",e.PermissionResponse="PERMISSION_RESPONSE",e.OperationRequest="OPERATION_REQUEST",e.OperationResponse="OPERATION_RESPONSE",e.SignRequest="SIGN_REQUEST",e.SignResponse="SIGN_RESPONSE",e.BroadcastRequest="BROADCAST_REQUEST",e.BroadcastResponse="BROADCAST_RESPONSE",(r=exports.TempleDAppErrorType||(exports.TempleDAppErrorType={})).NotGranted="NOT_GRANTED",r.NotFound="NOT_FOUND",r.InvalidParams="INVALID_PARAMS",r.TezosOperation="TEZOS_OPERATION",(t=exports.TemplePageMessageType||(exports.TemplePageMessageType={})).Request="TEMPLE_PAGE_REQUEST",t.Response="TEMPLE_PAGE_RESPONSE",t.ErrorResponse="TEMPLE_PAGE_ERROR_RESPONSE";var p=function(e){try{return Promise.resolve(f({type:exports.TempleDAppMessageType.BroadcastRequest,signedOpBytes:e})).then(function(e){return h(e.type===exports.TempleDAppMessageType.BroadcastResponse),e.opHash})}catch(e){return Promise.reject(e)}},u=function(e,r){try{return Promise.resolve(f({type:exports.TempleDAppMessageType.SignRequest,sourcePkh:e,payload:r})).then(function(e){return h(e.type===exports.TempleDAppMessageType.SignResponse),e.signature})}catch(e){return Promise.reject(e)}},c=function(e,r){try{return Promise.resolve(f({type:exports.TempleDAppMessageType.OperationRequest,sourcePkh:e,opParams:r})).then(function(e){return h(e.type===exports.TempleDAppMessageType.OperationResponse),e.opHash})}catch(e){return Promise.reject(e)}},l=function(e,r,t){try{return Promise.resolve(f({type:exports.TempleDAppMessageType.PermissionRequest,network:e,appMeta:r,force:t})).then(function(e){return h(e.type===exports.TempleDAppMessageType.PermissionResponse),{rpc:e.rpc,pkh:e.pkh,publicKey:e.publicKey}})}catch(e){return Promise.reject(e)}},m=function(){try{return Promise.resolve(f({type:exports.TempleDAppMessageType.GetCurrentPermissionRequest})).then(function(e){return h(e.type===exports.TempleDAppMessageType.GetCurrentPermissionResponse),e.permission})}catch(e){return Promise.reject(e)}};function T(){return new Promise(function(e){var r=function(e){var r,n;e.source===window&&(null===(r=e.data)||void 0===r?void 0:r.type)===exports.TemplePageMessageType.Response&&"PONG"===(null===(n=e.data)||void 0===n?void 0:n.payload)&&t(!0)},t=function(t){e(t),window.removeEventListener("message",r),clearTimeout(n)};v({type:exports.TemplePageMessageType.Request,payload:"PING"}),window.addEventListener("message",r);var n=setTimeout(function(){return t(!1)},500)})}function P(e){var r,t=!1;return function n(o){void 0===o&&(o=0);try{var s=o<5;return Promise.resolve(T()).then(function(i){t!==i&&(e(i),t=i),r=setTimeout(n,i?1e4:s?0:5e3,s?o+1:o)})}catch(e){return Promise.reject(e)}}(),function(){return clearTimeout(r)}}function y(e){var r,t=null;return function n(){try{var o=function(){r=setTimeout(n,1e4)},s=function(r,n){try{var o=Promise.resolve(m()).then(function(r){var n,o;o=t,(null===(n=r)?null===o:n.pkh===(null==o?void 0:o.pkh)&&n.rpc===(null==o?void 0:o.rpc))||(e(r),t=r)})}catch(e){return}return o&&o.then?o.then(void 0,function(){}):o}();return Promise.resolve(s&&s.then?s.then(o):o())}catch(e){return Promise.reject(e)}}(),function(){return clearTimeout(r)}}function f(e){return new Promise(function(r,t){var s=n.nanoid();v({type:exports.TemplePageMessageType.Request,payload:e,reqId:s}),window.addEventListener("message",function e(n){var i=n.data;switch(!0){case n.source!==window||(null==i?void 0:i.reqId)!==s:return;case(null==i?void 0:i.type)===exports.TemplePageMessageType.Response:r(i.payload),window.removeEventListener("message",e);break;case(null==i?void 0:i.type)===exports.TemplePageMessageType.ErrorResponse:t(function(e){switch(!0){case e===exports.TempleDAppErrorType.NotGranted:return new g;case e===exports.TempleDAppErrorType.NotFound:return new E;case e===exports.TempleDAppErrorType.InvalidParams:return new R;case Array.isArray(e)&&e[0]===exports.TempleDAppErrorType.TezosOperation&&Array.isArray(e[1])&&e[1].length>0:return new o.TezosOperationError(e[1]);case"string"==typeof e&&e.startsWith("__tezos__"):return new Error(e.replace("__tezos__",""));default:return new d}}(i.payload)),window.removeEventListener("message",e)}})})}function h(e){if(!e)throw new Error("Invalid response recieved")}function v(e){window.postMessage(e,"*")}var d=function(){this.name="TempleWalletError",this.message="An unknown error occured. Please try again or report it"},g=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="NotGrantedTempleWalletError",r.message="Permission Not Granted",r}return i(r,e),r}(d),E=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="NotFoundTempleWalletError",r.message="Account Not Found. Try connect again",r}return i(r,e),r}(d),R=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="InvalidParamsTempleWalletError",r.message="Some of the parameters you provided are invalid",r}return i(r,e),r}(d),O=function(){function e(e,r){this.appName=e,this.permission=null,r&&(this.permission=r)}var r,t=e.prototype;return t.toTezos=function(){S(this.permission);var e=new o.TezosToolkit(this.permission.rpc);return e.setProvider({wallet:this}),e},t.connect=function(e,r){void 0===r&&(r={forcePermission:!1});try{var t=this;return Promise.resolve(l(e,{name:t.appName},r.forcePermission)).then(function(e){t.permission=e})}catch(e){return Promise.reject(e)}},t.reconnect=function(e){return this.connect(e,{forcePermission:!0})},t.getPKH=function(){try{return S(this.permission),Promise.resolve(this.permission.pkh)}catch(e){return Promise.reject(e)}},t.mapTransferParamsToWalletParams=function(e){try{return Promise.resolve(o.createTransferOperation(e))}catch(e){return Promise.reject(e)}},t.mapOriginateParamsToWalletParams=function(e){try{return Promise.resolve(o.createOriginationOperation(e))}catch(e){return Promise.reject(e)}},t.mapDelegateParamsToWalletParams=function(e){try{return Promise.resolve(o.createSetDelegateOperation(e))}catch(e){return Promise.reject(e)}},t.sendOperations=function(e){try{return S(this.permission),Promise.resolve(c(this.permission.pkh,e.map(x)))}catch(e){return Promise.reject(e)}},t.sign=function(e){try{return S(this.permission),Promise.resolve(u(this.permission.pkh,e))}catch(e){return Promise.reject(e)}},t.broadcast=function(e){try{return S(this.permission),Promise.resolve(p(e))}catch(e){return Promise.reject(e)}},(r=[{key:"connected",get:function(){return Boolean(this.permission)}}])&&function(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(e.prototype,r),e}();O.isAvailable=T,O.onAvailabilityChange=P,O.getCurrentPermission=m,O.onPermissionChange=y;var A=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="TempleWalletNotConnected",r.message="You need to connect TempleWallet by calling templeWallet.connect() first",r}return i(r,e),r}(d);function S(e){if(!e)throw new A}function x(e){var r=e.storage_limit,t=a(e,["fee","gas_limit","storage_limit"]);switch(e.kind){case"origination":return s({},t,{mutez:!0,storageLimit:r});case"transaction":var n=t.destination,o=t.amount,i=t.parameters;return s({},a(t,["destination","amount","parameters"]),{to:n,amount:+o,mutez:!0,parameter:i,storageLimit:r});default:return s({},t,{storageLimit:r})}}exports.InvalidParamsTempleWalletError=R,exports.NotConnectedTempleWalletError=A,exports.NotFoundTempleWalletError=E,exports.NotGrantedTempleWalletError=g,exports.TempleWallet=O,exports.TempleWalletError=d,exports.getCurrentPermission=m,exports.isAvailable=T,exports.onAvailabilityChange=P,exports.onPermissionChange=y,exports.requestBroadcast=p,exports.requestOperation=c,exports.requestPermission=l,exports.requestSign=u;
2
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/types.ts","../src/client.ts","../src/taquito-wallet.ts"],"sourcesContent":["export type TempleDAppMessage = TempleDAppRequest | TempleDAppResponse;\n\nexport type TempleDAppRequest =\n | TempleDAppGetCurrentPermissionRequest\n | TempleDAppPermissionRequest\n | TempleDAppOperationRequest\n | TempleDAppSignRequest\n | TempleDAppBroadcastRequest;\n\nexport type TempleDAppResponse =\n | TempleDAppGetCurrentPermissionResponse\n | TempleDAppPermissionResponse\n | TempleDAppOperationResponse\n | TempleDAppSignResponse\n | TempleDAppBroadcastResponse;\n\nexport interface TempleDAppMessageBase {\n type: TempleDAppMessageType;\n}\n\nexport enum TempleDAppMessageType {\n GetCurrentPermissionRequest = \"GET_CURRENT_PERMISSION_REQUEST\",\n GetCurrentPermissionResponse = \"GET_CURRENT_PERMISSION_RESPONSE\",\n PermissionRequest = \"PERMISSION_REQUEST\",\n PermissionResponse = \"PERMISSION_RESPONSE\",\n OperationRequest = \"OPERATION_REQUEST\",\n OperationResponse = \"OPERATION_RESPONSE\",\n SignRequest = \"SIGN_REQUEST\",\n SignResponse = \"SIGN_RESPONSE\",\n BroadcastRequest = \"BROADCAST_REQUEST\",\n BroadcastResponse = \"BROADCAST_RESPONSE\",\n}\n\n/**\n * Messages\n */\n\nexport interface TempleDAppGetCurrentPermissionRequest\n extends TempleDAppMessageBase {\n type: TempleDAppMessageType.GetCurrentPermissionRequest;\n}\n\nexport interface TempleDAppGetCurrentPermissionResponse\n extends TempleDAppMessageBase {\n type: TempleDAppMessageType.GetCurrentPermissionResponse;\n permission: TempleDAppPermission;\n}\n\nexport interface TempleDAppPermissionRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.PermissionRequest;\n network: TempleDAppNetwork;\n appMeta: TempleDAppMetadata;\n force?: boolean;\n}\n\nexport interface TempleDAppPermissionResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.PermissionResponse;\n pkh: string;\n publicKey: string;\n rpc: string;\n}\n\nexport interface TempleDAppOperationRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.OperationRequest;\n sourcePkh: string;\n opParams: any[];\n}\n\nexport interface TempleDAppOperationResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.OperationResponse;\n opHash: string;\n}\n\nexport interface TempleDAppSignRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.SignRequest;\n sourcePkh: string;\n payload: string;\n}\n\nexport interface TempleDAppSignResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.SignResponse;\n signature: string;\n}\n\nexport interface TempleDAppBroadcastRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.BroadcastRequest;\n signedOpBytes: string;\n}\n\nexport interface TempleDAppBroadcastResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.BroadcastResponse;\n opHash: string;\n}\n\n/**\n * Errors\n */\nexport enum TempleDAppErrorType {\n NotGranted = \"NOT_GRANTED\",\n NotFound = \"NOT_FOUND\",\n InvalidParams = \"INVALID_PARAMS\",\n TezosOperation = \"TEZOS_OPERATION\",\n}\n\n/**\n * Misc\n */\n\nexport type TempleDAppPermission = {\n rpc: string;\n pkh: string;\n publicKey: string;\n} | null;\n\nexport type TempleDAppNetwork =\n | \"mainnet\"\n | \"edo2net\"\n | \"florencenet\"\n | \"sandbox\"\n | { name: string; rpc: string };\n\nexport interface TempleDAppMetadata {\n name: string;\n}\n\nexport interface TemplePageMessage {\n type: TemplePageMessageType;\n payload: any;\n reqId?: string | number;\n}\n\nexport enum TemplePageMessageType {\n Request = \"TEMPLE_PAGE_REQUEST\",\n Response = \"TEMPLE_PAGE_RESPONSE\",\n ErrorResponse = \"TEMPLE_PAGE_ERROR_RESPONSE\",\n}\n","import { nanoid } from \"nanoid\";\nimport { TezosOperationError } from \"@taquito/taquito\";\nimport {\n TemplePageMessageType,\n TemplePageMessage,\n TempleDAppMessageType,\n TempleDAppRequest,\n TempleDAppResponse,\n TempleDAppErrorType,\n TempleDAppNetwork,\n TempleDAppMetadata,\n TempleDAppPermission,\n} from \"./types\";\n\nexport function isAvailable() {\n return new Promise<boolean>((resolve) => {\n const handleMessage = (evt: MessageEvent) => {\n if (\n evt.source === window &&\n evt.data?.type === TemplePageMessageType.Response &&\n evt.data?.payload === \"PONG\"\n ) {\n done(true);\n }\n };\n\n const done = (result: boolean) => {\n resolve(result);\n window.removeEventListener(\"message\", handleMessage);\n clearTimeout(t);\n };\n\n send({\n type: TemplePageMessageType.Request,\n payload: \"PING\",\n });\n window.addEventListener(\"message\", handleMessage);\n const t = setTimeout(() => done(false), 500);\n });\n}\n\nexport function onAvailabilityChange(callback: (available: boolean) => void) {\n let t: any;\n let currentStatus = false;\n const check = async (attempt = 0) => {\n const initial = attempt < 5;\n const available = await isAvailable();\n if (currentStatus !== available) {\n callback(available);\n currentStatus = available;\n }\n t = setTimeout(\n check,\n available ? 10_000 : !initial ? 5_000 : 0,\n initial ? attempt + 1 : attempt\n );\n };\n check();\n return () => clearTimeout(t);\n}\n\nexport function onPermissionChange(\n callback: (permission: TempleDAppPermission) => void\n) {\n let t: any;\n let currentPerm: TempleDAppPermission = null;\n const check = async () => {\n try {\n const perm = await getCurrentPermission();\n if (!permissionsAreEqual(perm, currentPerm)) {\n callback(perm);\n currentPerm = perm;\n }\n } catch {}\n\n t = setTimeout(check, 10_000);\n };\n check();\n return () => clearTimeout(t);\n}\n\nexport async function getCurrentPermission() {\n const res = await request({\n type: TempleDAppMessageType.GetCurrentPermissionRequest,\n });\n assertResponse(\n res.type === TempleDAppMessageType.GetCurrentPermissionResponse\n );\n return res.permission;\n}\n\nexport async function requestPermission(\n network: TempleDAppNetwork,\n appMeta: TempleDAppMetadata,\n force: boolean\n) {\n const res = await request({\n type: TempleDAppMessageType.PermissionRequest,\n network,\n appMeta,\n force,\n });\n assertResponse(res.type === TempleDAppMessageType.PermissionResponse);\n return {\n rpc: res.rpc,\n pkh: res.pkh,\n publicKey: res.publicKey,\n };\n}\n\nexport async function requestOperation(sourcePkh: string, opParams: any) {\n const res = await request({\n type: TempleDAppMessageType.OperationRequest,\n sourcePkh,\n opParams,\n });\n assertResponse(res.type === TempleDAppMessageType.OperationResponse);\n return res.opHash;\n}\n\nexport async function requestSign(sourcePkh: string, payload: string) {\n const res = await request({\n type: TempleDAppMessageType.SignRequest,\n sourcePkh,\n payload,\n });\n assertResponse(res.type === TempleDAppMessageType.SignResponse);\n return res.signature;\n}\n\nexport async function requestBroadcast(signedOpBytes: string) {\n const res = await request({\n type: TempleDAppMessageType.BroadcastRequest,\n signedOpBytes,\n });\n assertResponse(res.type === TempleDAppMessageType.BroadcastResponse);\n return res.opHash;\n}\n\nfunction request(payload: TempleDAppRequest) {\n return new Promise<TempleDAppResponse>((resolve, reject) => {\n const reqId = nanoid();\n const handleMessage = (evt: MessageEvent) => {\n const res = evt.data as TemplePageMessage;\n switch (true) {\n case evt.source !== window || res?.reqId !== reqId:\n return;\n\n case res?.type === TemplePageMessageType.Response:\n resolve(res.payload);\n window.removeEventListener(\"message\", handleMessage);\n break;\n\n case res?.type === TemplePageMessageType.ErrorResponse:\n reject(createError(res.payload));\n window.removeEventListener(\"message\", handleMessage);\n break;\n }\n };\n\n send({\n type: TemplePageMessageType.Request,\n payload,\n reqId,\n });\n\n window.addEventListener(\"message\", handleMessage);\n });\n}\n\nfunction permissionsAreEqual(\n aPerm: TempleDAppPermission,\n bPerm: TempleDAppPermission\n) {\n if (aPerm === null) return bPerm === null;\n return aPerm.pkh === bPerm?.pkh && aPerm.rpc === bPerm?.rpc;\n}\n\nfunction createError(payload: any) {\n switch (true) {\n case payload === TempleDAppErrorType.NotGranted:\n return new NotGrantedTempleWalletError();\n\n case payload === TempleDAppErrorType.NotFound:\n return new NotFoundTempleWalletError();\n\n case payload === TempleDAppErrorType.InvalidParams:\n return new InvalidParamsTempleWalletError();\n\n case Array.isArray(payload) &&\n payload[0] === TempleDAppErrorType.TezosOperation &&\n Array.isArray(payload[1]) &&\n payload[1].length > 0:\n return new TezosOperationError(payload[1]);\n\n case typeof payload === \"string\" && payload.startsWith(\"__tezos__\"):\n return new Error(payload.replace(\"__tezos__\", \"\"));\n\n default:\n return new TempleWalletError();\n }\n}\n\nfunction assertResponse(condition: any): asserts condition {\n if (!condition) {\n throw new Error(\"Invalid response recieved\");\n }\n}\n\nfunction send(msg: TemplePageMessage) {\n window.postMessage(msg, \"*\");\n}\n\nexport class TempleWalletError implements Error {\n name = \"TempleWalletError\";\n message = \"An unknown error occured. Please try again or report it\";\n}\n\nexport class NotGrantedTempleWalletError extends TempleWalletError {\n name = \"NotGrantedTempleWalletError\";\n message = \"Permission Not Granted\";\n}\n\nexport class NotFoundTempleWalletError extends TempleWalletError {\n name = \"NotFoundTempleWalletError\";\n message = \"Account Not Found. Try connect again\";\n}\n\nexport class InvalidParamsTempleWalletError extends TempleWalletError {\n name = \"InvalidParamsTempleWalletError\";\n message = \"Some of the parameters you provided are invalid\";\n}\n","import {\n TezosToolkit,\n WalletProvider,\n createOriginationOperation,\n createSetDelegateOperation,\n createTransferOperation,\n WalletDelegateParams,\n WalletOriginateParams,\n WalletTransferParams,\n} from \"@taquito/taquito\";\n\nimport {\n isAvailable,\n onAvailabilityChange,\n getCurrentPermission,\n onPermissionChange,\n requestPermission,\n requestOperation,\n requestSign,\n requestBroadcast,\n TempleWalletError,\n} from \"./client\";\n\nimport { TempleDAppNetwork, TempleDAppPermission } from \"./types\";\n\nexport class TempleWallet implements WalletProvider {\n static isAvailable = isAvailable;\n static onAvailabilityChange = onAvailabilityChange;\n static getCurrentPermission = getCurrentPermission;\n static onPermissionChange = onPermissionChange;\n\n permission: TempleDAppPermission = null;\n\n constructor(\n private appName: string,\n existingPermission?: TempleDAppPermission\n ) {\n if (existingPermission) {\n this.permission = existingPermission;\n }\n }\n\n get connected() {\n return Boolean(this.permission);\n }\n\n toTezos() {\n assertConnected(this.permission);\n const tezos = new TezosToolkit(this.permission.rpc);\n tezos.setProvider({ wallet: this });\n return tezos;\n }\n\n async connect(network: TempleDAppNetwork, opts = { forcePermission: false }) {\n const perm = await requestPermission(\n network,\n { name: this.appName },\n opts.forcePermission\n );\n this.permission = perm;\n }\n\n reconnect(network: TempleDAppNetwork) {\n return this.connect(network, { forcePermission: true });\n }\n\n async getPKH() {\n assertConnected(this.permission);\n return this.permission.pkh;\n }\n\n async mapTransferParamsToWalletParams(params: WalletTransferParams) {\n return createTransferOperation(params);\n }\n\n async mapOriginateParamsToWalletParams(params: WalletOriginateParams) {\n return createOriginationOperation(params as any);\n }\n\n async mapDelegateParamsToWalletParams(params: WalletDelegateParams) {\n return createSetDelegateOperation(params as any);\n }\n\n async sendOperations(opParams: any[]) {\n assertConnected(this.permission);\n return requestOperation(this.permission.pkh, opParams.map(formatOpParams));\n }\n\n async sign(payload: string) {\n assertConnected(this.permission);\n return requestSign(this.permission.pkh, payload);\n }\n\n async broadcast(signedOpBytes: string) {\n assertConnected(this.permission);\n return requestBroadcast(signedOpBytes);\n }\n}\n\nexport class NotConnectedTempleWalletError extends TempleWalletError {\n name = \"TempleWalletNotConnected\";\n message =\n \"You need to connect TempleWallet by calling templeWallet.connect() first\";\n}\n\nfunction assertConnected(perm: TempleDAppPermission): asserts perm {\n if (!perm) {\n throw new NotConnectedTempleWalletError();\n }\n}\n\nfunction formatOpParams(op: any) {\n const { fee, gas_limit, storage_limit, ...rest } = op;\n\n switch (op.kind) {\n case \"origination\":\n return {\n ...rest,\n mutez: true, // The balance was already converted from Tez (ꜩ) to Mutez (uꜩ)\n storageLimit: storage_limit,\n };\n\n case \"transaction\":\n const { destination, amount, parameters, ...txRest } = rest;\n return {\n ...txRest,\n to: destination,\n amount: +amount,\n mutez: true,\n parameter: parameters,\n storageLimit: storage_limit,\n };\n\n default:\n return {\n ...rest,\n storageLimit: storage_limit,\n };\n }\n}\n"],"names":["TempleDAppMessageType","TempleDAppErrorType","TemplePageMessageType","requestBroadcast","signedOpBytes","request","type","BroadcastRequest","res","assertResponse","BroadcastResponse","opHash","requestSign","sourcePkh","payload","SignRequest","SignResponse","signature","requestOperation","opParams","OperationRequest","OperationResponse","requestPermission","network","appMeta","force","PermissionRequest","PermissionResponse","rpc","pkh","publicKey","getCurrentPermission","GetCurrentPermissionRequest","GetCurrentPermissionResponse","permission","isAvailable","Promise","resolve","handleMessage","evt","source","window","data","Response","done","result","removeEventListener","clearTimeout","t","send","Request","addEventListener","setTimeout","onAvailabilityChange","callback","currentStatus","check","attempt","initial","available","onPermissionChange","currentPerm","perm","aPerm","bPerm","reject","reqId","nanoid","ErrorResponse","NotGranted","NotGrantedTempleWalletError","NotFound","NotFoundTempleWalletError","InvalidParams","InvalidParamsTempleWalletError","Array","isArray","TezosOperation","length","TezosOperationError","startsWith","Error","replace","TempleWalletError","createError","condition","msg","postMessage","this","_this","_this2","_this3","TempleWallet","appName","existingPermission","toTezos","assertConnected","tezos","TezosToolkit","setProvider","wallet","connect","opts","forcePermission","name","reconnect","getPKH","mapTransferParamsToWalletParams","params","createTransferOperation","mapOriginateParamsToWalletParams","createOriginationOperation","mapDelegateParamsToWalletParams","createSetDelegateOperation","sendOperations","map","formatOpParams","sign","broadcast","Boolean","NotConnectedTempleWalletError","_this11","op","storage_limit","rest","kind","mutez","storageLimit","destination","amount","parameters","to","parameter"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{nanoid as e}from"nanoid";import{TezosOperationError as t,TezosToolkit as s,createTransferOperation as n,createOriginationOperation as r,createSetDelegateOperation as o}from"@taquito/taquito";var a,i,c;function u(){return new Promise(e=>{const t=e=>{var t,n;e.source===window&&(null===(t=e.data)||void 0===t?void 0:t.type)===c.Response&&"PONG"===(null===(n=e.data)||void 0===n?void 0:n.payload)&&s(!0)},s=s=>{e(s),window.removeEventListener("message",t),clearTimeout(n)};w({type:c.Request,payload:"PING"}),window.addEventListener("message",t);const n=setTimeout(()=>s(!1),500)})}function p(e){let t,s=!1;const n=async(r=0)=>{const o=r<5,a=await u();s!==a&&(e(a),s=a),t=setTimeout(n,a?1e4:o?0:5e3,o?r+1:r)};return n(),()=>clearTimeout(t)}function m(e){let t,s=null;const n=async()=>{try{const t=await l();o=s,(null===(r=t)?null===o:r.pkh===(null==o?void 0:o.pkh)&&r.rpc===(null==o?void 0:o.rpc))||(e(t),s=t)}catch{}var r,o;t=setTimeout(n,1e4)};return n(),()=>clearTimeout(t)}async function l(){const e=await y({type:a.GetCurrentPermissionRequest});return h(e.type===a.GetCurrentPermissionResponse),e.permission}async function d(e,t,s){const n=await y({type:a.PermissionRequest,network:e,appMeta:t,force:s});return h(n.type===a.PermissionResponse),{rpc:n.rpc,pkh:n.pkh,publicKey:n.publicKey}}async function E(e,t){const s=await y({type:a.OperationRequest,sourcePkh:e,opParams:t});return h(s.type===a.OperationResponse),s.opHash}async function R(e,t){const s=await y({type:a.SignRequest,sourcePkh:e,payload:t});return h(s.type===a.SignResponse),s.signature}async function P(e){const t=await y({type:a.BroadcastRequest,signedOpBytes:e});return h(t.type===a.BroadcastResponse),t.opHash}function y(s){return new Promise((n,r)=>{const o=e(),a=e=>{const s=e.data;switch(!0){case e.source!==window||(null==s?void 0:s.reqId)!==o:return;case(null==s?void 0:s.type)===c.Response:n(s.payload),window.removeEventListener("message",a);break;case(null==s?void 0:s.type)===c.ErrorResponse:r(function(e){switch(!0){case e===i.NotGranted:return new S;case e===i.NotFound:return new N;case e===i.InvalidParams:return new g;case Array.isArray(e)&&e[0]===i.TezosOperation&&Array.isArray(e[1])&&e[1].length>0:return new t(e[1]);case"string"==typeof e&&e.startsWith("__tezos__"):return new Error(e.replace("__tezos__",""));default:return new T}}(s.payload)),window.removeEventListener("message",a)}};w({type:c.Request,payload:s,reqId:o}),window.addEventListener("message",a)})}function h(e){if(!e)throw new Error("Invalid response recieved")}function w(e){window.postMessage(e,"*")}!function(e){e.GetCurrentPermissionRequest="GET_CURRENT_PERMISSION_REQUEST",e.GetCurrentPermissionResponse="GET_CURRENT_PERMISSION_RESPONSE",e.PermissionRequest="PERMISSION_REQUEST",e.PermissionResponse="PERMISSION_RESPONSE",e.OperationRequest="OPERATION_REQUEST",e.OperationResponse="OPERATION_RESPONSE",e.SignRequest="SIGN_REQUEST",e.SignResponse="SIGN_RESPONSE",e.BroadcastRequest="BROADCAST_REQUEST",e.BroadcastResponse="BROADCAST_RESPONSE"}(a||(a={})),function(e){e.NotGranted="NOT_GRANTED",e.NotFound="NOT_FOUND",e.InvalidParams="INVALID_PARAMS",e.TezosOperation="TEZOS_OPERATION"}(i||(i={})),function(e){e.Request="TEMPLE_PAGE_REQUEST",e.Response="TEMPLE_PAGE_RESPONSE",e.ErrorResponse="TEMPLE_PAGE_ERROR_RESPONSE"}(c||(c={}));class T{constructor(){this.name="TempleWalletError",this.message="An unknown error occured. Please try again or report it"}}class S extends T{constructor(){super(...arguments),this.name="NotGrantedTempleWalletError",this.message="Permission Not Granted"}}class N extends T{constructor(){super(...arguments),this.name="NotFoundTempleWalletError",this.message="Account Not Found. Try connect again"}}class g extends T{constructor(){super(...arguments),this.name="InvalidParamsTempleWalletError",this.message="Some of the parameters you provided are invalid"}}class O{constructor(e,t){this.appName=e,this.permission=null,t&&(this.permission=t)}get connected(){return Boolean(this.permission)}toTezos(){f(this.permission);const e=new s(this.permission.rpc);return e.setProvider({wallet:this}),e}async connect(e,t={forcePermission:!1}){const s=await d(e,{name:this.appName},t.forcePermission);this.permission=s}reconnect(e){return this.connect(e,{forcePermission:!0})}async getPKH(){return f(this.permission),this.permission.pkh}async mapTransferParamsToWalletParams(e){return n(e)}async mapOriginateParamsToWalletParams(e){return r(e)}async mapDelegateParamsToWalletParams(e){return o(e)}async sendOperations(e){return f(this.permission),E(this.permission.pkh,e.map(v))}async sign(e){return f(this.permission),R(this.permission.pkh,e)}async broadcast(e){return f(this.permission),P(e)}}O.isAvailable=u,O.onAvailabilityChange=p,O.getCurrentPermission=l,O.onPermissionChange=m;class _ extends T{constructor(){super(...arguments),this.name="TempleWalletNotConnected",this.message="You need to connect TempleWallet by calling templeWallet.connect() first"}}function f(e){if(!e)throw new _}function v(e){const{storage_limit:t,...s}=e;switch(e.kind){case"origination":return{...s,mutez:!0,storageLimit:t};case"transaction":const{destination:e,amount:n,parameters:r,...o}=s;return{...o,to:e,amount:+n,mutez:!0,parameter:r,storageLimit:t};default:return{...s,storageLimit:t}}}export{g as InvalidParamsTempleWalletError,_ as NotConnectedTempleWalletError,N as NotFoundTempleWalletError,S as NotGrantedTempleWalletError,i as TempleDAppErrorType,a as TempleDAppMessageType,c as TemplePageMessageType,O as TempleWallet,T as TempleWalletError,l as getCurrentPermission,u as isAvailable,p as onAvailabilityChange,m as onPermissionChange,P as requestBroadcast,E as requestOperation,d as requestPermission,R as requestSign};
2
- //# sourceMappingURL=index.modern.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/types.ts","../src/client.ts","../src/taquito-wallet.ts"],"sourcesContent":["export type TempleDAppMessage = TempleDAppRequest | TempleDAppResponse;\n\nexport type TempleDAppRequest =\n | TempleDAppGetCurrentPermissionRequest\n | TempleDAppPermissionRequest\n | TempleDAppOperationRequest\n | TempleDAppSignRequest\n | TempleDAppBroadcastRequest;\n\nexport type TempleDAppResponse =\n | TempleDAppGetCurrentPermissionResponse\n | TempleDAppPermissionResponse\n | TempleDAppOperationResponse\n | TempleDAppSignResponse\n | TempleDAppBroadcastResponse;\n\nexport interface TempleDAppMessageBase {\n type: TempleDAppMessageType;\n}\n\nexport enum TempleDAppMessageType {\n GetCurrentPermissionRequest = \"GET_CURRENT_PERMISSION_REQUEST\",\n GetCurrentPermissionResponse = \"GET_CURRENT_PERMISSION_RESPONSE\",\n PermissionRequest = \"PERMISSION_REQUEST\",\n PermissionResponse = \"PERMISSION_RESPONSE\",\n OperationRequest = \"OPERATION_REQUEST\",\n OperationResponse = \"OPERATION_RESPONSE\",\n SignRequest = \"SIGN_REQUEST\",\n SignResponse = \"SIGN_RESPONSE\",\n BroadcastRequest = \"BROADCAST_REQUEST\",\n BroadcastResponse = \"BROADCAST_RESPONSE\",\n}\n\n/**\n * Messages\n */\n\nexport interface TempleDAppGetCurrentPermissionRequest\n extends TempleDAppMessageBase {\n type: TempleDAppMessageType.GetCurrentPermissionRequest;\n}\n\nexport interface TempleDAppGetCurrentPermissionResponse\n extends TempleDAppMessageBase {\n type: TempleDAppMessageType.GetCurrentPermissionResponse;\n permission: TempleDAppPermission;\n}\n\nexport interface TempleDAppPermissionRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.PermissionRequest;\n network: TempleDAppNetwork;\n appMeta: TempleDAppMetadata;\n force?: boolean;\n}\n\nexport interface TempleDAppPermissionResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.PermissionResponse;\n pkh: string;\n publicKey: string;\n rpc: string;\n}\n\nexport interface TempleDAppOperationRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.OperationRequest;\n sourcePkh: string;\n opParams: any[];\n}\n\nexport interface TempleDAppOperationResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.OperationResponse;\n opHash: string;\n}\n\nexport interface TempleDAppSignRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.SignRequest;\n sourcePkh: string;\n payload: string;\n}\n\nexport interface TempleDAppSignResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.SignResponse;\n signature: string;\n}\n\nexport interface TempleDAppBroadcastRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.BroadcastRequest;\n signedOpBytes: string;\n}\n\nexport interface TempleDAppBroadcastResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.BroadcastResponse;\n opHash: string;\n}\n\n/**\n * Errors\n */\nexport enum TempleDAppErrorType {\n NotGranted = \"NOT_GRANTED\",\n NotFound = \"NOT_FOUND\",\n InvalidParams = \"INVALID_PARAMS\",\n TezosOperation = \"TEZOS_OPERATION\",\n}\n\n/**\n * Misc\n */\n\nexport type TempleDAppPermission = {\n rpc: string;\n pkh: string;\n publicKey: string;\n} | null;\n\nexport type TempleDAppNetwork =\n | \"mainnet\"\n | \"edo2net\"\n | \"florencenet\"\n | \"sandbox\"\n | { name: string; rpc: string };\n\nexport interface TempleDAppMetadata {\n name: string;\n}\n\nexport interface TemplePageMessage {\n type: TemplePageMessageType;\n payload: any;\n reqId?: string | number;\n}\n\nexport enum TemplePageMessageType {\n Request = \"TEMPLE_PAGE_REQUEST\",\n Response = \"TEMPLE_PAGE_RESPONSE\",\n ErrorResponse = \"TEMPLE_PAGE_ERROR_RESPONSE\",\n}\n","import { nanoid } from \"nanoid\";\nimport { TezosOperationError } from \"@taquito/taquito\";\nimport {\n TemplePageMessageType,\n TemplePageMessage,\n TempleDAppMessageType,\n TempleDAppRequest,\n TempleDAppResponse,\n TempleDAppErrorType,\n TempleDAppNetwork,\n TempleDAppMetadata,\n TempleDAppPermission,\n} from \"./types\";\n\nexport function isAvailable() {\n return new Promise<boolean>((resolve) => {\n const handleMessage = (evt: MessageEvent) => {\n if (\n evt.source === window &&\n evt.data?.type === TemplePageMessageType.Response &&\n evt.data?.payload === \"PONG\"\n ) {\n done(true);\n }\n };\n\n const done = (result: boolean) => {\n resolve(result);\n window.removeEventListener(\"message\", handleMessage);\n clearTimeout(t);\n };\n\n send({\n type: TemplePageMessageType.Request,\n payload: \"PING\",\n });\n window.addEventListener(\"message\", handleMessage);\n const t = setTimeout(() => done(false), 500);\n });\n}\n\nexport function onAvailabilityChange(callback: (available: boolean) => void) {\n let t: any;\n let currentStatus = false;\n const check = async (attempt = 0) => {\n const initial = attempt < 5;\n const available = await isAvailable();\n if (currentStatus !== available) {\n callback(available);\n currentStatus = available;\n }\n t = setTimeout(\n check,\n available ? 10_000 : !initial ? 5_000 : 0,\n initial ? attempt + 1 : attempt\n );\n };\n check();\n return () => clearTimeout(t);\n}\n\nexport function onPermissionChange(\n callback: (permission: TempleDAppPermission) => void\n) {\n let t: any;\n let currentPerm: TempleDAppPermission = null;\n const check = async () => {\n try {\n const perm = await getCurrentPermission();\n if (!permissionsAreEqual(perm, currentPerm)) {\n callback(perm);\n currentPerm = perm;\n }\n } catch {}\n\n t = setTimeout(check, 10_000);\n };\n check();\n return () => clearTimeout(t);\n}\n\nexport async function getCurrentPermission() {\n const res = await request({\n type: TempleDAppMessageType.GetCurrentPermissionRequest,\n });\n assertResponse(\n res.type === TempleDAppMessageType.GetCurrentPermissionResponse\n );\n return res.permission;\n}\n\nexport async function requestPermission(\n network: TempleDAppNetwork,\n appMeta: TempleDAppMetadata,\n force: boolean\n) {\n const res = await request({\n type: TempleDAppMessageType.PermissionRequest,\n network,\n appMeta,\n force,\n });\n assertResponse(res.type === TempleDAppMessageType.PermissionResponse);\n return {\n rpc: res.rpc,\n pkh: res.pkh,\n publicKey: res.publicKey,\n };\n}\n\nexport async function requestOperation(sourcePkh: string, opParams: any) {\n const res = await request({\n type: TempleDAppMessageType.OperationRequest,\n sourcePkh,\n opParams,\n });\n assertResponse(res.type === TempleDAppMessageType.OperationResponse);\n return res.opHash;\n}\n\nexport async function requestSign(sourcePkh: string, payload: string) {\n const res = await request({\n type: TempleDAppMessageType.SignRequest,\n sourcePkh,\n payload,\n });\n assertResponse(res.type === TempleDAppMessageType.SignResponse);\n return res.signature;\n}\n\nexport async function requestBroadcast(signedOpBytes: string) {\n const res = await request({\n type: TempleDAppMessageType.BroadcastRequest,\n signedOpBytes,\n });\n assertResponse(res.type === TempleDAppMessageType.BroadcastResponse);\n return res.opHash;\n}\n\nfunction request(payload: TempleDAppRequest) {\n return new Promise<TempleDAppResponse>((resolve, reject) => {\n const reqId = nanoid();\n const handleMessage = (evt: MessageEvent) => {\n const res = evt.data as TemplePageMessage;\n switch (true) {\n case evt.source !== window || res?.reqId !== reqId:\n return;\n\n case res?.type === TemplePageMessageType.Response:\n resolve(res.payload);\n window.removeEventListener(\"message\", handleMessage);\n break;\n\n case res?.type === TemplePageMessageType.ErrorResponse:\n reject(createError(res.payload));\n window.removeEventListener(\"message\", handleMessage);\n break;\n }\n };\n\n send({\n type: TemplePageMessageType.Request,\n payload,\n reqId,\n });\n\n window.addEventListener(\"message\", handleMessage);\n });\n}\n\nfunction permissionsAreEqual(\n aPerm: TempleDAppPermission,\n bPerm: TempleDAppPermission\n) {\n if (aPerm === null) return bPerm === null;\n return aPerm.pkh === bPerm?.pkh && aPerm.rpc === bPerm?.rpc;\n}\n\nfunction createError(payload: any) {\n switch (true) {\n case payload === TempleDAppErrorType.NotGranted:\n return new NotGrantedTempleWalletError();\n\n case payload === TempleDAppErrorType.NotFound:\n return new NotFoundTempleWalletError();\n\n case payload === TempleDAppErrorType.InvalidParams:\n return new InvalidParamsTempleWalletError();\n\n case Array.isArray(payload) &&\n payload[0] === TempleDAppErrorType.TezosOperation &&\n Array.isArray(payload[1]) &&\n payload[1].length > 0:\n return new TezosOperationError(payload[1]);\n\n case typeof payload === \"string\" && payload.startsWith(\"__tezos__\"):\n return new Error(payload.replace(\"__tezos__\", \"\"));\n\n default:\n return new TempleWalletError();\n }\n}\n\nfunction assertResponse(condition: any): asserts condition {\n if (!condition) {\n throw new Error(\"Invalid response recieved\");\n }\n}\n\nfunction send(msg: TemplePageMessage) {\n window.postMessage(msg, \"*\");\n}\n\nexport class TempleWalletError implements Error {\n name = \"TempleWalletError\";\n message = \"An unknown error occured. Please try again or report it\";\n}\n\nexport class NotGrantedTempleWalletError extends TempleWalletError {\n name = \"NotGrantedTempleWalletError\";\n message = \"Permission Not Granted\";\n}\n\nexport class NotFoundTempleWalletError extends TempleWalletError {\n name = \"NotFoundTempleWalletError\";\n message = \"Account Not Found. Try connect again\";\n}\n\nexport class InvalidParamsTempleWalletError extends TempleWalletError {\n name = \"InvalidParamsTempleWalletError\";\n message = \"Some of the parameters you provided are invalid\";\n}\n","import {\n TezosToolkit,\n WalletProvider,\n createOriginationOperation,\n createSetDelegateOperation,\n createTransferOperation,\n WalletDelegateParams,\n WalletOriginateParams,\n WalletTransferParams,\n} from \"@taquito/taquito\";\n\nimport {\n isAvailable,\n onAvailabilityChange,\n getCurrentPermission,\n onPermissionChange,\n requestPermission,\n requestOperation,\n requestSign,\n requestBroadcast,\n TempleWalletError,\n} from \"./client\";\n\nimport { TempleDAppNetwork, TempleDAppPermission } from \"./types\";\n\nexport class TempleWallet implements WalletProvider {\n static isAvailable = isAvailable;\n static onAvailabilityChange = onAvailabilityChange;\n static getCurrentPermission = getCurrentPermission;\n static onPermissionChange = onPermissionChange;\n\n permission: TempleDAppPermission = null;\n\n constructor(\n private appName: string,\n existingPermission?: TempleDAppPermission\n ) {\n if (existingPermission) {\n this.permission = existingPermission;\n }\n }\n\n get connected() {\n return Boolean(this.permission);\n }\n\n toTezos() {\n assertConnected(this.permission);\n const tezos = new TezosToolkit(this.permission.rpc);\n tezos.setProvider({ wallet: this });\n return tezos;\n }\n\n async connect(network: TempleDAppNetwork, opts = { forcePermission: false }) {\n const perm = await requestPermission(\n network,\n { name: this.appName },\n opts.forcePermission\n );\n this.permission = perm;\n }\n\n reconnect(network: TempleDAppNetwork) {\n return this.connect(network, { forcePermission: true });\n }\n\n async getPKH() {\n assertConnected(this.permission);\n return this.permission.pkh;\n }\n\n async mapTransferParamsToWalletParams(params: WalletTransferParams) {\n return createTransferOperation(params);\n }\n\n async mapOriginateParamsToWalletParams(params: WalletOriginateParams) {\n return createOriginationOperation(params as any);\n }\n\n async mapDelegateParamsToWalletParams(params: WalletDelegateParams) {\n return createSetDelegateOperation(params as any);\n }\n\n async sendOperations(opParams: any[]) {\n assertConnected(this.permission);\n return requestOperation(this.permission.pkh, opParams.map(formatOpParams));\n }\n\n async sign(payload: string) {\n assertConnected(this.permission);\n return requestSign(this.permission.pkh, payload);\n }\n\n async broadcast(signedOpBytes: string) {\n assertConnected(this.permission);\n return requestBroadcast(signedOpBytes);\n }\n}\n\nexport class NotConnectedTempleWalletError extends TempleWalletError {\n name = \"TempleWalletNotConnected\";\n message =\n \"You need to connect TempleWallet by calling templeWallet.connect() first\";\n}\n\nfunction assertConnected(perm: TempleDAppPermission): asserts perm {\n if (!perm) {\n throw new NotConnectedTempleWalletError();\n }\n}\n\nfunction formatOpParams(op: any) {\n const { fee, gas_limit, storage_limit, ...rest } = op;\n\n switch (op.kind) {\n case \"origination\":\n return {\n ...rest,\n mutez: true, // The balance was already converted from Tez (ꜩ) to Mutez (uꜩ)\n storageLimit: storage_limit,\n };\n\n case \"transaction\":\n const { destination, amount, parameters, ...txRest } = rest;\n return {\n ...txRest,\n to: destination,\n amount: +amount,\n mutez: true,\n parameter: parameters,\n storageLimit: storage_limit,\n };\n\n default:\n return {\n ...rest,\n storageLimit: storage_limit,\n };\n }\n}\n"],"names":["TempleDAppMessageType","TempleDAppErrorType","TemplePageMessageType","isAvailable","Promise","resolve","handleMessage","evt","source","window","data","type","Response","payload","done","result","removeEventListener","clearTimeout","t","send","Request","addEventListener","setTimeout","onAvailabilityChange","callback","currentStatus","check","async","attempt","initial","available","onPermissionChange","currentPerm","perm","getCurrentPermission","bPerm","aPerm","pkh","rpc","res","request","GetCurrentPermissionRequest","assertResponse","GetCurrentPermissionResponse","permission","requestPermission","network","appMeta","force","PermissionRequest","PermissionResponse","publicKey","requestOperation","sourcePkh","opParams","OperationRequest","OperationResponse","opHash","requestSign","SignRequest","SignResponse","signature","requestBroadcast","signedOpBytes","BroadcastRequest","BroadcastResponse","reject","reqId","nanoid","ErrorResponse","NotGranted","NotGrantedTempleWalletError","NotFound","NotFoundTempleWalletError","InvalidParams","InvalidParamsTempleWalletError","Array","isArray","TezosOperation","length","TezosOperationError","startsWith","Error","replace","TempleWalletError","createError","condition","msg","postMessage","constructor","this","TempleWallet","appName","existingPermission","connected","Boolean","toTezos","assertConnected","tezos","TezosToolkit","setProvider","wallet","[object Object]","opts","forcePermission","name","reconnect","connect","params","createTransferOperation","createOriginationOperation","createSetDelegateOperation","map","formatOpParams","NotConnectedTempleWalletError","op","storage_limit","rest","kind","mutez","storageLimit","destination","amount","parameters","txRest","to","parameter"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{nanoid as e}from"nanoid";import{TezosOperationError as r,TezosToolkit as t,createTransferOperation as n,createOriginationOperation as o,createSetDelegateOperation as i}from"@taquito/taquito";var s,a,u;function c(){return(c=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function m(e,r){e.prototype=Object.create(r.prototype),e.prototype.constructor=e,e.__proto__=r}function p(e,r){if(null==e)return{};var t,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r.indexOf(t=i[n])>=0||(o[t]=e[t]);return o}!function(e){e.GetCurrentPermissionRequest="GET_CURRENT_PERMISSION_REQUEST",e.GetCurrentPermissionResponse="GET_CURRENT_PERMISSION_RESPONSE",e.PermissionRequest="PERMISSION_REQUEST",e.PermissionResponse="PERMISSION_RESPONSE",e.OperationRequest="OPERATION_REQUEST",e.OperationResponse="OPERATION_RESPONSE",e.SignRequest="SIGN_REQUEST",e.SignResponse="SIGN_RESPONSE",e.BroadcastRequest="BROADCAST_REQUEST",e.BroadcastResponse="BROADCAST_RESPONSE"}(s||(s={})),function(e){e.NotGranted="NOT_GRANTED",e.NotFound="NOT_FOUND",e.InvalidParams="INVALID_PARAMS",e.TezosOperation="TEZOS_OPERATION"}(a||(a={})),function(e){e.Request="TEMPLE_PAGE_REQUEST",e.Response="TEMPLE_PAGE_RESPONSE",e.ErrorResponse="TEMPLE_PAGE_ERROR_RESPONSE"}(u||(u={}));var l=function(e){try{return Promise.resolve(R({type:s.BroadcastRequest,signedOpBytes:e})).then(function(e){return g(e.type===s.BroadcastResponse),e.opHash})}catch(e){return Promise.reject(e)}},f=function(e,r){try{return Promise.resolve(R({type:s.SignRequest,sourcePkh:e,payload:r})).then(function(e){return g(e.type===s.SignResponse),e.signature})}catch(e){return Promise.reject(e)}},P=function(e,r){try{return Promise.resolve(R({type:s.OperationRequest,sourcePkh:e,opParams:r})).then(function(e){return g(e.type===s.OperationResponse),e.opHash})}catch(e){return Promise.reject(e)}},h=function(e,r,t){try{return Promise.resolve(R({type:s.PermissionRequest,network:e,appMeta:r,force:t})).then(function(e){return g(e.type===s.PermissionResponse),{rpc:e.rpc,pkh:e.pkh,publicKey:e.publicKey}})}catch(e){return Promise.reject(e)}},v=function(){try{return Promise.resolve(R({type:s.GetCurrentPermissionRequest})).then(function(e){return g(e.type===s.GetCurrentPermissionResponse),e.permission})}catch(e){return Promise.reject(e)}};function d(){return new Promise(function(e){var r=function(e){var r,n;e.source===window&&(null===(r=e.data)||void 0===r?void 0:r.type)===u.Response&&"PONG"===(null===(n=e.data)||void 0===n?void 0:n.payload)&&t(!0)},t=function(t){e(t),window.removeEventListener("message",r),clearTimeout(n)};T({type:u.Request,payload:"PING"}),window.addEventListener("message",r);var n=setTimeout(function(){return t(!1)},500)})}function y(e){var r,t=!1;return function n(o){void 0===o&&(o=0);try{var i=o<5;return Promise.resolve(d()).then(function(s){t!==s&&(e(s),t=s),r=setTimeout(n,s?1e4:i?0:5e3,i?o+1:o)})}catch(e){return Promise.reject(e)}}(),function(){return clearTimeout(r)}}function E(e){var r,t=null;return function n(){try{var o=function(){r=setTimeout(n,1e4)},i=function(r,n){try{var o=Promise.resolve(v()).then(function(r){var n,o;o=t,(null===(n=r)?null===o:n.pkh===(null==o?void 0:o.pkh)&&n.rpc===(null==o?void 0:o.rpc))||(e(r),t=r)})}catch(e){return}return o&&o.then?o.then(void 0,function(){}):o}();return Promise.resolve(i&&i.then?i.then(o):o())}catch(e){return Promise.reject(e)}}(),function(){return clearTimeout(r)}}function R(t){return new Promise(function(n,o){var i=e();T({type:u.Request,payload:t,reqId:i}),window.addEventListener("message",function e(t){var s=t.data;switch(!0){case t.source!==window||(null==s?void 0:s.reqId)!==i:return;case(null==s?void 0:s.type)===u.Response:n(s.payload),window.removeEventListener("message",e);break;case(null==s?void 0:s.type)===u.ErrorResponse:o(function(e){switch(!0){case e===a.NotGranted:return new _;case e===a.NotFound:return new S;case e===a.InvalidParams:return new w;case Array.isArray(e)&&e[0]===a.TezosOperation&&Array.isArray(e[1])&&e[1].length>0:return new r(e[1]);case"string"==typeof e&&e.startsWith("__tezos__"):return new Error(e.replace("__tezos__",""));default:return new O}}(s.payload)),window.removeEventListener("message",e)}})})}function g(e){if(!e)throw new Error("Invalid response recieved")}function T(e){window.postMessage(e,"*")}var O=function(){this.name="TempleWalletError",this.message="An unknown error occured. Please try again or report it"},_=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="NotGrantedTempleWalletError",r.message="Permission Not Granted",r}return m(r,e),r}(O),S=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="NotFoundTempleWalletError",r.message="Account Not Found. Try connect again",r}return m(r,e),r}(O),w=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="InvalidParamsTempleWalletError",r.message="Some of the parameters you provided are invalid",r}return m(r,e),r}(O),N=function(){function e(e,r){this.appName=e,this.permission=null,r&&(this.permission=r)}var r,s=e.prototype;return s.toTezos=function(){I(this.permission);var e=new t(this.permission.rpc);return e.setProvider({wallet:this}),e},s.connect=function(e,r){void 0===r&&(r={forcePermission:!1});try{var t=this;return Promise.resolve(h(e,{name:t.appName},r.forcePermission)).then(function(e){t.permission=e})}catch(e){return Promise.reject(e)}},s.reconnect=function(e){return this.connect(e,{forcePermission:!0})},s.getPKH=function(){try{return I(this.permission),Promise.resolve(this.permission.pkh)}catch(e){return Promise.reject(e)}},s.mapTransferParamsToWalletParams=function(e){try{return Promise.resolve(n(e))}catch(e){return Promise.reject(e)}},s.mapOriginateParamsToWalletParams=function(e){try{return Promise.resolve(o(e))}catch(e){return Promise.reject(e)}},s.mapDelegateParamsToWalletParams=function(e){try{return Promise.resolve(i(e))}catch(e){return Promise.reject(e)}},s.sendOperations=function(e){try{return I(this.permission),Promise.resolve(P(this.permission.pkh,e.map(j)))}catch(e){return Promise.reject(e)}},s.sign=function(e){try{return I(this.permission),Promise.resolve(f(this.permission.pkh,e))}catch(e){return Promise.reject(e)}},s.broadcast=function(e){try{return I(this.permission),Promise.resolve(l(e))}catch(e){return Promise.reject(e)}},(r=[{key:"connected",get:function(){return Boolean(this.permission)}}])&&function(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(e.prototype,r),e}();N.isAvailable=d,N.onAvailabilityChange=y,N.getCurrentPermission=v,N.onPermissionChange=E;var A=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).name="TempleWalletNotConnected",r.message="You need to connect TempleWallet by calling templeWallet.connect() first",r}return m(r,e),r}(O);function I(e){if(!e)throw new A}function j(e){var r=e.storage_limit,t=p(e,["fee","gas_limit","storage_limit"]);switch(e.kind){case"origination":return c({},t,{mutez:!0,storageLimit:r});case"transaction":var n=t.destination,o=t.amount,i=t.parameters;return c({},p(t,["destination","amount","parameters"]),{to:n,amount:+o,mutez:!0,parameter:i,storageLimit:r});default:return c({},t,{storageLimit:r})}}export{w as InvalidParamsTempleWalletError,A as NotConnectedTempleWalletError,S as NotFoundTempleWalletError,_ as NotGrantedTempleWalletError,a as TempleDAppErrorType,s as TempleDAppMessageType,u as TemplePageMessageType,N as TempleWallet,O as TempleWalletError,v as getCurrentPermission,d as isAvailable,y as onAvailabilityChange,E as onPermissionChange,l as requestBroadcast,P as requestOperation,h as requestPermission,f as requestSign};
2
- //# sourceMappingURL=index.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.module.js","sources":["../src/types.ts","../src/client.ts","../src/taquito-wallet.ts"],"sourcesContent":["export type TempleDAppMessage = TempleDAppRequest | TempleDAppResponse;\n\nexport type TempleDAppRequest =\n | TempleDAppGetCurrentPermissionRequest\n | TempleDAppPermissionRequest\n | TempleDAppOperationRequest\n | TempleDAppSignRequest\n | TempleDAppBroadcastRequest;\n\nexport type TempleDAppResponse =\n | TempleDAppGetCurrentPermissionResponse\n | TempleDAppPermissionResponse\n | TempleDAppOperationResponse\n | TempleDAppSignResponse\n | TempleDAppBroadcastResponse;\n\nexport interface TempleDAppMessageBase {\n type: TempleDAppMessageType;\n}\n\nexport enum TempleDAppMessageType {\n GetCurrentPermissionRequest = \"GET_CURRENT_PERMISSION_REQUEST\",\n GetCurrentPermissionResponse = \"GET_CURRENT_PERMISSION_RESPONSE\",\n PermissionRequest = \"PERMISSION_REQUEST\",\n PermissionResponse = \"PERMISSION_RESPONSE\",\n OperationRequest = \"OPERATION_REQUEST\",\n OperationResponse = \"OPERATION_RESPONSE\",\n SignRequest = \"SIGN_REQUEST\",\n SignResponse = \"SIGN_RESPONSE\",\n BroadcastRequest = \"BROADCAST_REQUEST\",\n BroadcastResponse = \"BROADCAST_RESPONSE\",\n}\n\n/**\n * Messages\n */\n\nexport interface TempleDAppGetCurrentPermissionRequest\n extends TempleDAppMessageBase {\n type: TempleDAppMessageType.GetCurrentPermissionRequest;\n}\n\nexport interface TempleDAppGetCurrentPermissionResponse\n extends TempleDAppMessageBase {\n type: TempleDAppMessageType.GetCurrentPermissionResponse;\n permission: TempleDAppPermission;\n}\n\nexport interface TempleDAppPermissionRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.PermissionRequest;\n network: TempleDAppNetwork;\n appMeta: TempleDAppMetadata;\n force?: boolean;\n}\n\nexport interface TempleDAppPermissionResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.PermissionResponse;\n pkh: string;\n publicKey: string;\n rpc: string;\n}\n\nexport interface TempleDAppOperationRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.OperationRequest;\n sourcePkh: string;\n opParams: any[];\n}\n\nexport interface TempleDAppOperationResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.OperationResponse;\n opHash: string;\n}\n\nexport interface TempleDAppSignRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.SignRequest;\n sourcePkh: string;\n payload: string;\n}\n\nexport interface TempleDAppSignResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.SignResponse;\n signature: string;\n}\n\nexport interface TempleDAppBroadcastRequest extends TempleDAppMessageBase {\n type: TempleDAppMessageType.BroadcastRequest;\n signedOpBytes: string;\n}\n\nexport interface TempleDAppBroadcastResponse extends TempleDAppMessageBase {\n type: TempleDAppMessageType.BroadcastResponse;\n opHash: string;\n}\n\n/**\n * Errors\n */\nexport enum TempleDAppErrorType {\n NotGranted = \"NOT_GRANTED\",\n NotFound = \"NOT_FOUND\",\n InvalidParams = \"INVALID_PARAMS\",\n TezosOperation = \"TEZOS_OPERATION\",\n}\n\n/**\n * Misc\n */\n\nexport type TempleDAppPermission = {\n rpc: string;\n pkh: string;\n publicKey: string;\n} | null;\n\nexport type TempleDAppNetwork =\n | \"mainnet\"\n | \"edo2net\"\n | \"florencenet\"\n | \"sandbox\"\n | { name: string; rpc: string };\n\nexport interface TempleDAppMetadata {\n name: string;\n}\n\nexport interface TemplePageMessage {\n type: TemplePageMessageType;\n payload: any;\n reqId?: string | number;\n}\n\nexport enum TemplePageMessageType {\n Request = \"TEMPLE_PAGE_REQUEST\",\n Response = \"TEMPLE_PAGE_RESPONSE\",\n ErrorResponse = \"TEMPLE_PAGE_ERROR_RESPONSE\",\n}\n","import { nanoid } from \"nanoid\";\nimport { TezosOperationError } from \"@taquito/taquito\";\nimport {\n TemplePageMessageType,\n TemplePageMessage,\n TempleDAppMessageType,\n TempleDAppRequest,\n TempleDAppResponse,\n TempleDAppErrorType,\n TempleDAppNetwork,\n TempleDAppMetadata,\n TempleDAppPermission,\n} from \"./types\";\n\nexport function isAvailable() {\n return new Promise<boolean>((resolve) => {\n const handleMessage = (evt: MessageEvent) => {\n if (\n evt.source === window &&\n evt.data?.type === TemplePageMessageType.Response &&\n evt.data?.payload === \"PONG\"\n ) {\n done(true);\n }\n };\n\n const done = (result: boolean) => {\n resolve(result);\n window.removeEventListener(\"message\", handleMessage);\n clearTimeout(t);\n };\n\n send({\n type: TemplePageMessageType.Request,\n payload: \"PING\",\n });\n window.addEventListener(\"message\", handleMessage);\n const t = setTimeout(() => done(false), 500);\n });\n}\n\nexport function onAvailabilityChange(callback: (available: boolean) => void) {\n let t: any;\n let currentStatus = false;\n const check = async (attempt = 0) => {\n const initial = attempt < 5;\n const available = await isAvailable();\n if (currentStatus !== available) {\n callback(available);\n currentStatus = available;\n }\n t = setTimeout(\n check,\n available ? 10_000 : !initial ? 5_000 : 0,\n initial ? attempt + 1 : attempt\n );\n };\n check();\n return () => clearTimeout(t);\n}\n\nexport function onPermissionChange(\n callback: (permission: TempleDAppPermission) => void\n) {\n let t: any;\n let currentPerm: TempleDAppPermission = null;\n const check = async () => {\n try {\n const perm = await getCurrentPermission();\n if (!permissionsAreEqual(perm, currentPerm)) {\n callback(perm);\n currentPerm = perm;\n }\n } catch {}\n\n t = setTimeout(check, 10_000);\n };\n check();\n return () => clearTimeout(t);\n}\n\nexport async function getCurrentPermission() {\n const res = await request({\n type: TempleDAppMessageType.GetCurrentPermissionRequest,\n });\n assertResponse(\n res.type === TempleDAppMessageType.GetCurrentPermissionResponse\n );\n return res.permission;\n}\n\nexport async function requestPermission(\n network: TempleDAppNetwork,\n appMeta: TempleDAppMetadata,\n force: boolean\n) {\n const res = await request({\n type: TempleDAppMessageType.PermissionRequest,\n network,\n appMeta,\n force,\n });\n assertResponse(res.type === TempleDAppMessageType.PermissionResponse);\n return {\n rpc: res.rpc,\n pkh: res.pkh,\n publicKey: res.publicKey,\n };\n}\n\nexport async function requestOperation(sourcePkh: string, opParams: any) {\n const res = await request({\n type: TempleDAppMessageType.OperationRequest,\n sourcePkh,\n opParams,\n });\n assertResponse(res.type === TempleDAppMessageType.OperationResponse);\n return res.opHash;\n}\n\nexport async function requestSign(sourcePkh: string, payload: string) {\n const res = await request({\n type: TempleDAppMessageType.SignRequest,\n sourcePkh,\n payload,\n });\n assertResponse(res.type === TempleDAppMessageType.SignResponse);\n return res.signature;\n}\n\nexport async function requestBroadcast(signedOpBytes: string) {\n const res = await request({\n type: TempleDAppMessageType.BroadcastRequest,\n signedOpBytes,\n });\n assertResponse(res.type === TempleDAppMessageType.BroadcastResponse);\n return res.opHash;\n}\n\nfunction request(payload: TempleDAppRequest) {\n return new Promise<TempleDAppResponse>((resolve, reject) => {\n const reqId = nanoid();\n const handleMessage = (evt: MessageEvent) => {\n const res = evt.data as TemplePageMessage;\n switch (true) {\n case evt.source !== window || res?.reqId !== reqId:\n return;\n\n case res?.type === TemplePageMessageType.Response:\n resolve(res.payload);\n window.removeEventListener(\"message\", handleMessage);\n break;\n\n case res?.type === TemplePageMessageType.ErrorResponse:\n reject(createError(res.payload));\n window.removeEventListener(\"message\", handleMessage);\n break;\n }\n };\n\n send({\n type: TemplePageMessageType.Request,\n payload,\n reqId,\n });\n\n window.addEventListener(\"message\", handleMessage);\n });\n}\n\nfunction permissionsAreEqual(\n aPerm: TempleDAppPermission,\n bPerm: TempleDAppPermission\n) {\n if (aPerm === null) return bPerm === null;\n return aPerm.pkh === bPerm?.pkh && aPerm.rpc === bPerm?.rpc;\n}\n\nfunction createError(payload: any) {\n switch (true) {\n case payload === TempleDAppErrorType.NotGranted:\n return new NotGrantedTempleWalletError();\n\n case payload === TempleDAppErrorType.NotFound:\n return new NotFoundTempleWalletError();\n\n case payload === TempleDAppErrorType.InvalidParams:\n return new InvalidParamsTempleWalletError();\n\n case Array.isArray(payload) &&\n payload[0] === TempleDAppErrorType.TezosOperation &&\n Array.isArray(payload[1]) &&\n payload[1].length > 0:\n return new TezosOperationError(payload[1]);\n\n case typeof payload === \"string\" && payload.startsWith(\"__tezos__\"):\n return new Error(payload.replace(\"__tezos__\", \"\"));\n\n default:\n return new TempleWalletError();\n }\n}\n\nfunction assertResponse(condition: any): asserts condition {\n if (!condition) {\n throw new Error(\"Invalid response recieved\");\n }\n}\n\nfunction send(msg: TemplePageMessage) {\n window.postMessage(msg, \"*\");\n}\n\nexport class TempleWalletError implements Error {\n name = \"TempleWalletError\";\n message = \"An unknown error occured. Please try again or report it\";\n}\n\nexport class NotGrantedTempleWalletError extends TempleWalletError {\n name = \"NotGrantedTempleWalletError\";\n message = \"Permission Not Granted\";\n}\n\nexport class NotFoundTempleWalletError extends TempleWalletError {\n name = \"NotFoundTempleWalletError\";\n message = \"Account Not Found. Try connect again\";\n}\n\nexport class InvalidParamsTempleWalletError extends TempleWalletError {\n name = \"InvalidParamsTempleWalletError\";\n message = \"Some of the parameters you provided are invalid\";\n}\n","import {\n TezosToolkit,\n WalletProvider,\n createOriginationOperation,\n createSetDelegateOperation,\n createTransferOperation,\n WalletDelegateParams,\n WalletOriginateParams,\n WalletTransferParams,\n} from \"@taquito/taquito\";\n\nimport {\n isAvailable,\n onAvailabilityChange,\n getCurrentPermission,\n onPermissionChange,\n requestPermission,\n requestOperation,\n requestSign,\n requestBroadcast,\n TempleWalletError,\n} from \"./client\";\n\nimport { TempleDAppNetwork, TempleDAppPermission } from \"./types\";\n\nexport class TempleWallet implements WalletProvider {\n static isAvailable = isAvailable;\n static onAvailabilityChange = onAvailabilityChange;\n static getCurrentPermission = getCurrentPermission;\n static onPermissionChange = onPermissionChange;\n\n permission: TempleDAppPermission = null;\n\n constructor(\n private appName: string,\n existingPermission?: TempleDAppPermission\n ) {\n if (existingPermission) {\n this.permission = existingPermission;\n }\n }\n\n get connected() {\n return Boolean(this.permission);\n }\n\n toTezos() {\n assertConnected(this.permission);\n const tezos = new TezosToolkit(this.permission.rpc);\n tezos.setProvider({ wallet: this });\n return tezos;\n }\n\n async connect(network: TempleDAppNetwork, opts = { forcePermission: false }) {\n const perm = await requestPermission(\n network,\n { name: this.appName },\n opts.forcePermission\n );\n this.permission = perm;\n }\n\n reconnect(network: TempleDAppNetwork) {\n return this.connect(network, { forcePermission: true });\n }\n\n async getPKH() {\n assertConnected(this.permission);\n return this.permission.pkh;\n }\n\n async mapTransferParamsToWalletParams(params: WalletTransferParams) {\n return createTransferOperation(params);\n }\n\n async mapOriginateParamsToWalletParams(params: WalletOriginateParams) {\n return createOriginationOperation(params as any);\n }\n\n async mapDelegateParamsToWalletParams(params: WalletDelegateParams) {\n return createSetDelegateOperation(params as any);\n }\n\n async sendOperations(opParams: any[]) {\n assertConnected(this.permission);\n return requestOperation(this.permission.pkh, opParams.map(formatOpParams));\n }\n\n async sign(payload: string) {\n assertConnected(this.permission);\n return requestSign(this.permission.pkh, payload);\n }\n\n async broadcast(signedOpBytes: string) {\n assertConnected(this.permission);\n return requestBroadcast(signedOpBytes);\n }\n}\n\nexport class NotConnectedTempleWalletError extends TempleWalletError {\n name = \"TempleWalletNotConnected\";\n message =\n \"You need to connect TempleWallet by calling templeWallet.connect() first\";\n}\n\nfunction assertConnected(perm: TempleDAppPermission): asserts perm {\n if (!perm) {\n throw new NotConnectedTempleWalletError();\n }\n}\n\nfunction formatOpParams(op: any) {\n const { fee, gas_limit, storage_limit, ...rest } = op;\n\n switch (op.kind) {\n case \"origination\":\n return {\n ...rest,\n mutez: true, // The balance was already converted from Tez (ꜩ) to Mutez (uꜩ)\n storageLimit: storage_limit,\n };\n\n case \"transaction\":\n const { destination, amount, parameters, ...txRest } = rest;\n return {\n ...txRest,\n to: destination,\n amount: +amount,\n mutez: true,\n parameter: parameters,\n storageLimit: storage_limit,\n };\n\n default:\n return {\n ...rest,\n storageLimit: storage_limit,\n };\n }\n}\n"],"names":["TempleDAppMessageType","TempleDAppErrorType","TemplePageMessageType","requestBroadcast","signedOpBytes","request","type","BroadcastRequest","res","assertResponse","BroadcastResponse","opHash","requestSign","sourcePkh","payload","SignRequest","SignResponse","signature","requestOperation","opParams","OperationRequest","OperationResponse","requestPermission","network","appMeta","force","PermissionRequest","PermissionResponse","rpc","pkh","publicKey","getCurrentPermission","GetCurrentPermissionRequest","GetCurrentPermissionResponse","permission","isAvailable","Promise","resolve","handleMessage","evt","source","window","data","Response","done","result","removeEventListener","clearTimeout","t","send","Request","addEventListener","setTimeout","onAvailabilityChange","callback","currentStatus","check","attempt","initial","available","onPermissionChange","currentPerm","perm","aPerm","bPerm","reject","reqId","nanoid","ErrorResponse","NotGranted","NotGrantedTempleWalletError","NotFound","NotFoundTempleWalletError","InvalidParams","InvalidParamsTempleWalletError","Array","isArray","TezosOperation","length","TezosOperationError","startsWith","Error","replace","TempleWalletError","createError","condition","msg","postMessage","this","_this","_this2","_this3","TempleWallet","appName","existingPermission","toTezos","assertConnected","tezos","TezosToolkit","setProvider","wallet","connect","opts","forcePermission","name","reconnect","getPKH","mapTransferParamsToWalletParams","params","createTransferOperation","mapOriginateParamsToWalletParams","createOriginationOperation","mapDelegateParamsToWalletParams","createSetDelegateOperation","sendOperations","map","formatOpParams","sign","broadcast","Boolean","NotConnectedTempleWalletError","_this11","op","storage_limit","rest","kind","mutez","storageLimit","destination","amount","parameters","to","parameter"],"mappings":"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"}