@gardenfi/wallet-connectors 2.2.0-beta.3 → 2.2.1-beta.1
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/dist/index7.cjs +1 -1
- package/dist/index7.js +39 -43
- package/package.json +2 -2
package/dist/index7.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var m=r=>{throw TypeError(r)};var f=(r,t,e)=>t.has(r)||m("Cannot "+e);var a=(r,t,e)=>(f(r,t,"read from private field"),e?e.call(r):t.get(r)),w=(r,t,e)=>t.has(r)?m("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,e),g=(r,t,e,s)=>(f(r,t,"write to private field"),s?s.call(r,e):t.set(r,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("bitcoinjs-lib"),N=require("tiny-secp256k1"),n=require("@gardenfi/utils"),i=require("./index3.cjs"),c=require("@gardenfi/core"),A=require("./index4.cjs");function y(r){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(t,e,s.get?s:{enumerable:!0,get:()=>r[e]})}}return t.default=r,Object.freeze(t)}const u=y(P),x=y(N);P.initEccLib(x);var o;class O{constructor(t){w(this,o);this.address="",this.id=i.WALLET_CONFIG.Phantom.id,this.name=i.WALLET_CONFIG.Phantom.name,this.icon=i.WALLET_CONFIG.Phantom.icon,this.disconnect=()=>(this.address="",Promise.resolve(n.Ok("Disconnected Phantom wallet"))),g(this,o,t)}async connect(t){if(t||(t=n.Network.MAINNET),t===n.Network.TESTNET)return n.Err("Phantom wallet does not support testnet");try{const e=await a(this,o).requestAccounts();for(const s of e)s.purpose==="payment"&&(this.address=s.address);return this.address===""?n.Err("Could not connect to Phantom bitcoin payment account"):n.Ok({address:this.address,provider:this,network:t,id:i.WALLET_CONFIG.Phantom.id})}catch(e){return n.Err("Error while connecting to Phantom wallet: "+e)}}async requestAccounts(){return await n.executeWithTryCatch(async()=>{const t=await a(this,o).requestAccounts();return t.length>0&&(this.address=t[0].address),t.map(e=>e.address)},"Error while requesting accounts from Phantom wallet")}async getAccounts(){return this.requestAccounts()}async getNetwork(){return n.Ok(n.Network.MAINNET)}async switchNetwork(){return n.Err("Phantom wallet does not support testnet")}async getBalance(){return await n.executeWithTryCatch(async()=>{const t=await A.getBalance(this.address,n.Network.MAINNET);if(t.ok&&t.val)return t.val;throw new Error(t.error)},"Error while getting balance from Phantom wallet")}async sendBitcoin(t,e){return await n.executeWithTryCatch(async()=>{const s=u.networks.bitcoin,d=new c.BitcoinProvider(c.BitcoinNetwork.Mainnet);try{const{txHex:h,utxoCount:p}=await c.BitcoinWallet.generateUnsignedPSBT(d,s,this.address,t,e),b=await a(this,o).signPSBT(this.fromHexString(h),{inputsToSign:[{address:this.address,signingIndexes:Array.from({length:p},(S,T)=>T),sigHash:u.Transaction.SIGHASH_ALL}]}),l=u.Psbt.fromBuffer(Buffer.from(b)).extractTransaction(),E=l.getId();return await d.broadcast(l.toHex()),E}catch{throw new Error("Failed to send bitcoin")}},"Error while sending bitcoin from Phantom wallet")}fromHexString(t){return Uint8Array.from(t.match(/.{1,2}/g).map(e=>parseInt(e,16)))}on(t,e){a(this,o).on(t,e)}off(t,e){a(this,o).off(t,e)}}o=new WeakMap;exports.PhantomProvider=O;
|
package/dist/index7.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
var
|
|
1
|
+
var w = (n) => {
|
|
2
2
|
throw TypeError(n);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var s = (n, t, r) => (
|
|
6
|
-
import * as
|
|
7
|
-
import { initEccLib as
|
|
8
|
-
import * as
|
|
9
|
-
import { Ok as
|
|
4
|
+
var g = (n, t, r) => t.has(n) || w("Cannot " + r);
|
|
5
|
+
var s = (n, t, r) => (g(n, t, "read from private field"), r ? r.call(n) : t.get(n)), p = (n, t, r) => t.has(n) ? w("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, r), P = (n, t, r, o) => (g(n, t, "write to private field"), o ? o.call(n, r) : t.set(n, r), r);
|
|
6
|
+
import * as d from "bitcoinjs-lib";
|
|
7
|
+
import { initEccLib as T } from "bitcoinjs-lib";
|
|
8
|
+
import * as x from "tiny-secp256k1";
|
|
9
|
+
import { Ok as h, Network as a, Err as i, executeWithTryCatch as m } from "@gardenfi/utils";
|
|
10
10
|
import { WALLET_CONFIG as c } from "./index3.js";
|
|
11
|
-
import { BitcoinProvider as
|
|
12
|
-
import { getBalance as
|
|
13
|
-
|
|
14
|
-
var
|
|
11
|
+
import { BitcoinProvider as N, BitcoinNetwork as B, BitcoinWallet as I } from "@gardenfi/core";
|
|
12
|
+
import { getBalance as v } from "./index4.js";
|
|
13
|
+
T(x);
|
|
14
|
+
var e;
|
|
15
15
|
class _ {
|
|
16
16
|
constructor(t) {
|
|
17
|
-
|
|
18
|
-
this.address = "", this.id = c.Phantom.id, this.name = c.Phantom.name, this.icon = c.Phantom.icon, this.disconnect = () => (this.address = "", Promise.resolve(
|
|
17
|
+
p(this, e);
|
|
18
|
+
this.address = "", this.id = c.Phantom.id, this.name = c.Phantom.name, this.icon = c.Phantom.icon, this.disconnect = () => (this.address = "", Promise.resolve(h("Disconnected Phantom wallet"))), P(this, e, t);
|
|
19
19
|
}
|
|
20
20
|
async connect(t) {
|
|
21
21
|
if (t || (t = a.MAINNET), t === a.TESTNET)
|
|
22
22
|
return i("Phantom wallet does not support testnet");
|
|
23
23
|
try {
|
|
24
|
-
const r = await s(this,
|
|
25
|
-
for (const
|
|
26
|
-
|
|
27
|
-
return this.address === "" ? i("Could not connect to Phantom bitcoin payment account") :
|
|
24
|
+
const r = await s(this, e).requestAccounts();
|
|
25
|
+
for (const o of r)
|
|
26
|
+
o.purpose === "payment" && (this.address = o.address);
|
|
27
|
+
return this.address === "" ? i("Could not connect to Phantom bitcoin payment account") : h({
|
|
28
28
|
address: this.address,
|
|
29
29
|
provider: this,
|
|
30
30
|
network: t,
|
|
@@ -35,8 +35,8 @@ class _ {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
async requestAccounts() {
|
|
38
|
-
return await
|
|
39
|
-
const t = await s(this,
|
|
38
|
+
return await m(async () => {
|
|
39
|
+
const t = await s(this, e).requestAccounts();
|
|
40
40
|
return t.length > 0 && (this.address = t[0].address), t.map((r) => r.address);
|
|
41
41
|
}, "Error while requesting accounts from Phantom wallet");
|
|
42
42
|
}
|
|
@@ -45,50 +45,46 @@ class _ {
|
|
|
45
45
|
}
|
|
46
46
|
// bitcoin testnet is not supported in Phantom wallet
|
|
47
47
|
async getNetwork() {
|
|
48
|
-
return
|
|
48
|
+
return h(a.MAINNET);
|
|
49
49
|
}
|
|
50
50
|
async switchNetwork() {
|
|
51
51
|
return i("Phantom wallet does not support testnet");
|
|
52
52
|
}
|
|
53
53
|
async getBalance() {
|
|
54
|
-
return await
|
|
55
|
-
const t = await
|
|
54
|
+
return await m(async () => {
|
|
55
|
+
const t = await v(this.address, a.MAINNET);
|
|
56
56
|
if (t.ok && t.val)
|
|
57
57
|
return t.val;
|
|
58
58
|
throw new Error(t.error);
|
|
59
59
|
}, "Error while getting balance from Phantom wallet");
|
|
60
60
|
}
|
|
61
61
|
async sendBitcoin(t, r) {
|
|
62
|
-
return await
|
|
63
|
-
const
|
|
62
|
+
return await m(async () => {
|
|
63
|
+
const o = d.networks.bitcoin, u = new N(B.Mainnet);
|
|
64
64
|
try {
|
|
65
|
-
const { txHex:
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
const { txHex: f, utxoCount: y } = await I.generateUnsignedPSBT(
|
|
66
|
+
u,
|
|
67
|
+
o,
|
|
68
68
|
this.address,
|
|
69
69
|
t,
|
|
70
70
|
r
|
|
71
|
-
), E = await s(this,
|
|
72
|
-
this.fromHexString(
|
|
71
|
+
), E = await s(this, e).signPSBT(
|
|
72
|
+
this.fromHexString(f),
|
|
73
73
|
{
|
|
74
74
|
inputsToSign: [
|
|
75
75
|
{
|
|
76
76
|
address: this.address,
|
|
77
|
-
signingIndexes: Array.from({ length:
|
|
78
|
-
sigHash:
|
|
77
|
+
signingIndexes: Array.from({ length: y }, (H, A) => A),
|
|
78
|
+
sigHash: d.Transaction.SIGHASH_ALL
|
|
79
79
|
}
|
|
80
80
|
]
|
|
81
81
|
}
|
|
82
|
-
),
|
|
82
|
+
), l = d.Psbt.fromBuffer(
|
|
83
83
|
Buffer.from(E)
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const x = h.getId();
|
|
89
|
-
return await f.broadcast(h.toHex()), x;
|
|
90
|
-
} catch (d) {
|
|
91
|
-
throw new Error(`Failed to send bitcoin: ${d}`);
|
|
84
|
+
).extractTransaction(), b = l.getId();
|
|
85
|
+
return await u.broadcast(l.toHex()), b;
|
|
86
|
+
} catch {
|
|
87
|
+
throw new Error("Failed to send bitcoin");
|
|
92
88
|
}
|
|
93
89
|
}, "Error while sending bitcoin from Phantom wallet");
|
|
94
90
|
}
|
|
@@ -98,13 +94,13 @@ class _ {
|
|
|
98
94
|
);
|
|
99
95
|
}
|
|
100
96
|
on(t, r) {
|
|
101
|
-
s(this,
|
|
97
|
+
s(this, e).on(t, r);
|
|
102
98
|
}
|
|
103
99
|
off(t, r) {
|
|
104
|
-
s(this,
|
|
100
|
+
s(this, e).off(t, r);
|
|
105
101
|
}
|
|
106
102
|
}
|
|
107
|
-
|
|
103
|
+
e = new WeakMap();
|
|
108
104
|
export {
|
|
109
105
|
_ as PhantomProvider
|
|
110
106
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gardenfi/wallet-connectors",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "vite build",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"sideEffects": false,
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@gardenfi/core": "2.3.
|
|
39
|
+
"@gardenfi/core": "2.3.1-beta.1",
|
|
40
40
|
"@gardenfi/utils": "2.3.0",
|
|
41
41
|
"axios": "^1.7.9",
|
|
42
42
|
"bitcoinjs-lib": "^6.1.7",
|