@vela-ventures/aosync-sdk-react 1.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/dist/component.d.ts +4 -0
- package/dist/component.js +5 -0
- package/dist/component.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/useWallet.d.ts +13 -0
- package/dist/useWallet.js +136 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,WAAW,GAAC,CAAC,KAAK,EAAC,EAAE;IACzB,MAAM,EAAC,KAAK,EAAC,GAAG,KAAK,CAAC;IACtB,OAAO,CACL;QACE,oCAAS,KAAK,CAAU,CACpB,CACP,CAAC;AACJ,CAAC,CAAA;AACD,eAAe,WAAW,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useWallet } from "./useWallet";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useWallet } from "./useWallet";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC5B,OAAO,cAAc,CAAA;AACzB,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Transaction from "arweave/web/lib/transaction";
|
|
2
|
+
interface UseAOWalletReturn {
|
|
3
|
+
isConnected: boolean;
|
|
4
|
+
connect: () => Promise<void>;
|
|
5
|
+
disconnect: () => Promise<void>;
|
|
6
|
+
getAllAddresses: () => Promise<string[]>;
|
|
7
|
+
getAddress: () => Promise<string | undefined>;
|
|
8
|
+
sendAR: (recipient: string, quantity: string) => Promise<any>;
|
|
9
|
+
signAOMessage: (target: string, recipient: string, quantity: string) => Promise<any>;
|
|
10
|
+
sign: (transaction: Transaction) => Promise<Transaction>;
|
|
11
|
+
}
|
|
12
|
+
export declare const useWallet: () => UseAOWalletReturn;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { useEffect, useRef, useState } from "react";
|
|
11
|
+
import WalletClient from "@vela-ventures/ao-sync-sdk";
|
|
12
|
+
import Arweave from "arweave";
|
|
13
|
+
export const useWallet = () => {
|
|
14
|
+
const [isConnected, setIsConnected] = useState(false);
|
|
15
|
+
const walletRef = useRef(new WalletClient());
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const wallet = walletRef.current;
|
|
18
|
+
wallet.reconnect();
|
|
19
|
+
const handleDisconnect = () => setIsConnected(false);
|
|
20
|
+
const handleConnect = () => setIsConnected(true);
|
|
21
|
+
wallet.on("disconnected", handleDisconnect);
|
|
22
|
+
wallet.on("connected", handleConnect);
|
|
23
|
+
return () => {
|
|
24
|
+
wallet.off("disconnected", handleDisconnect);
|
|
25
|
+
wallet.off("connected", handleConnect);
|
|
26
|
+
};
|
|
27
|
+
}, []);
|
|
28
|
+
const connect = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
try {
|
|
30
|
+
yield walletRef.current.connect({});
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.error("Error connecting wallet:", error);
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const disconnect = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
+
try {
|
|
39
|
+
yield walletRef.current.disconnect();
|
|
40
|
+
setIsConnected(false);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error("Error disconnecting wallet:", error);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
const getAddress = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
+
try {
|
|
49
|
+
return yield walletRef.current.getActiveAddress();
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error("Error getting address:", error);
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
const getAllAddresses = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
+
try {
|
|
58
|
+
return yield walletRef.current.getAllAddresses();
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error("Error getting address:", error);
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const sendAR = (recipient, quantity) => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
try {
|
|
67
|
+
const arweave = Arweave.init({
|
|
68
|
+
host: "arweave.net",
|
|
69
|
+
port: 443,
|
|
70
|
+
protocol: "https",
|
|
71
|
+
});
|
|
72
|
+
const tx = yield arweave.createTransaction({
|
|
73
|
+
target: recipient,
|
|
74
|
+
quantity: quantity,
|
|
75
|
+
});
|
|
76
|
+
const signedTx = yield walletRef.current.sign(tx);
|
|
77
|
+
return yield arweave.transactions.post(signedTx);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error("Error sending AR:", error);
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
const signAOMessage = (target, recipient, quantity) => __awaiter(void 0, void 0, void 0, function* () {
|
|
85
|
+
try {
|
|
86
|
+
const dataItem = {
|
|
87
|
+
data: "",
|
|
88
|
+
target,
|
|
89
|
+
tags: [
|
|
90
|
+
{ name: "Action", value: "Transfer" },
|
|
91
|
+
{ name: "Recipient", value: recipient },
|
|
92
|
+
{ name: "Quantity", value: quantity },
|
|
93
|
+
{ name: "SDK", value: "Beacon Wallet" },
|
|
94
|
+
{ name: "Data-Protocol", value: "ao" },
|
|
95
|
+
{ name: "Variant", value: "ao.TN.1" },
|
|
96
|
+
{ name: "Type", value: "Message" },
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
const signedDataItem = yield walletRef.current.signDataItem(dataItem);
|
|
100
|
+
const response = yield fetch("https://mu.ao-testnet.xyz", {
|
|
101
|
+
method: "POST",
|
|
102
|
+
headers: {
|
|
103
|
+
"Content-Type": "application/octet-stream",
|
|
104
|
+
},
|
|
105
|
+
body: signedDataItem,
|
|
106
|
+
});
|
|
107
|
+
if (!response.ok) {
|
|
108
|
+
throw new Error("Network response was not ok");
|
|
109
|
+
}
|
|
110
|
+
return signedDataItem;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
console.error("Error signing AO message:", error);
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const sign = (transaction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
118
|
+
try {
|
|
119
|
+
return yield walletRef.current.sign(transaction);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.error("Error signing wallet:", error);
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
isConnected,
|
|
128
|
+
connect,
|
|
129
|
+
disconnect,
|
|
130
|
+
getAddress,
|
|
131
|
+
getAllAddresses,
|
|
132
|
+
sendAR,
|
|
133
|
+
signAOMessage,
|
|
134
|
+
sign,
|
|
135
|
+
};
|
|
136
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vela-ventures/aosync-sdk-react",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc"
|
|
16
|
+
},
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "vela-ventures",
|
|
19
|
+
"email": "admin@vela.ventures",
|
|
20
|
+
"url": "https://vela.ventures/"
|
|
21
|
+
},
|
|
22
|
+
"description": "React SDK for Beacon wallet",
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@babel/cli": "^7.26.4",
|
|
25
|
+
"@babel/core": "^7.26.0",
|
|
26
|
+
"@babel/preset-env": "^7.26.0",
|
|
27
|
+
"@babel/preset-react": "^7.26.3",
|
|
28
|
+
"@types/react": "^19.0.7",
|
|
29
|
+
"@types/react-dom": "^19.0.3",
|
|
30
|
+
"@vela-ventures/ao-sync-sdk": "^1.1.9",
|
|
31
|
+
"arconnect": "^1.0.4",
|
|
32
|
+
"arweave": "^1.15.5",
|
|
33
|
+
"react": "^19.0.0",
|
|
34
|
+
"react-dom": "^19.0.0",
|
|
35
|
+
"typescript": "^5.7.3"
|
|
36
|
+
},
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"contributors": [
|
|
39
|
+
"Artem Purundzhian <artempa1607@gmail.com>"
|
|
40
|
+
],
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"react": "^18.2.0"
|
|
43
|
+
}
|
|
44
|
+
}
|