@aifinpay/agent 2.6.0 → 2.7.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/README.md +73 -1
- package/dist/agent.d.ts +12 -5
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +12 -9
- package/dist/agent.js.map +1 -1
- package/dist/agentPassport.d.ts.map +1 -1
- package/dist/agentPassport.js.map +1 -1
- package/dist/agentWallet.d.ts +59 -0
- package/dist/agentWallet.d.ts.map +1 -0
- package/dist/agentWallet.js +62 -0
- package/dist/agentWallet.js.map +1 -0
- package/dist/aifp1.d.ts +69 -2
- package/dist/aifp1.d.ts.map +1 -1
- package/dist/aifp1.js +146 -2
- package/dist/aifp1.js.map +1 -1
- package/dist/crossChain.d.ts.map +1 -1
- package/dist/crossChain.js.map +1 -1
- package/dist/crypto.d.ts +0 -1
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +1 -1
- package/dist/crypto.js.map +1 -1
- package/dist/deploymentErrors.d.ts.map +1 -1
- package/dist/deploymentResolver.d.ts.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/facilitators/aifinpay.d.ts.map +1 -1
- package/dist/facilitators/aifinpay.js.map +1 -1
- package/dist/facilitators/coinbase.d.ts.map +1 -1
- package/dist/facilitators/coinbase.js.map +1 -1
- package/dist/facilitators/detect.js.map +1 -1
- package/dist/facilitators/standard-x402.d.ts.map +1 -1
- package/dist/facilitators/standard-x402.js.map +1 -1
- package/dist/generated/solanaV14Deployments.generated.d.ts.map +1 -1
- package/dist/generated/splitterRoutes.generated.d.ts.map +1 -1
- package/dist/generated/v14Deployments.generated.d.ts +1 -1
- package/dist/generated/v14Deployments.generated.d.ts.map +1 -1
- package/dist/generated/v14Deployments.generated.js +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/paymentChains.d.ts.map +1 -1
- package/dist/settlement.d.ts +6 -6
- package/dist/settlement.d.ts.map +1 -1
- package/dist/settlement.js.map +1 -1
- package/dist/settlementHttp.d.ts.map +1 -1
- package/dist/settlementHttp.js.map +1 -1
- package/dist/settlementSolanaV14.d.ts.map +1 -1
- package/dist/settlementSolanaV14.js.map +1 -1
- package/dist/settlementV14.d.ts.map +1 -1
- package/dist/settlementV14.js.map +1 -1
- package/dist/solanaDeploymentResolver.d.ts.map +1 -1
- package/dist/spendLedger.d.ts.map +1 -1
- package/dist/spendLedger.js.map +1 -1
- package/dist/splitterRoutes.d.ts.map +1 -1
- package/dist/splitterRoutes.js.map +1 -1
- package/dist/unifiedAgent.d.ts +30 -6
- package/dist/unifiedAgent.d.ts.map +1 -1
- package/dist/unifiedAgent.js +108 -38
- package/dist/unifiedAgent.js.map +1 -1
- package/dist/wallet.d.ts +1 -27
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +1 -96
- package/dist/wallet.js.map +1 -1
- package/package.json +5 -5
package/dist/wallet.js
CHANGED
|
@@ -1,97 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Lightweight AiFinPay wallet derivation used by the Node agent package.
|
|
3
|
-
* No RPC/client dependency is needed to derive the five address families used
|
|
4
|
-
* by the 13-network product.
|
|
5
|
-
*/
|
|
6
|
-
import nacl from "tweetnacl";
|
|
7
|
-
import bs58 from "bs58";
|
|
8
|
-
import { blake2b } from "@noble/hashes/blake2b";
|
|
9
|
-
import { keccak_256, sha3_256 } from "@noble/hashes/sha3";
|
|
10
|
-
import { sha256 } from "@noble/hashes/sha2";
|
|
11
|
-
import { secp256k1 } from "@noble/curves/secp256k1";
|
|
12
|
-
const b58 = bs58.default ?? bs58;
|
|
13
|
-
const hex = (b) => Array.from(b, (x) => x.toString(16).padStart(2, "0")).join("");
|
|
14
|
-
const fromHex = (s) => {
|
|
15
|
-
const clean = s.startsWith("0x") ? s.slice(2) : s;
|
|
16
|
-
if (clean.length !== 64 || /[^0-9a-fA-F]/.test(clean)) {
|
|
17
|
-
throw new Error("seed must be 32 bytes as 64 hex characters");
|
|
18
|
-
}
|
|
19
|
-
const out = new Uint8Array(32);
|
|
20
|
-
for (let i = 0; i < 32; i++)
|
|
21
|
-
out[i] = parseInt(clean.slice(i * 2, i * 2 + 2), 16);
|
|
22
|
-
return out;
|
|
23
|
-
};
|
|
24
|
-
function domainSeed(domain, seed) {
|
|
25
|
-
const d = new TextEncoder().encode(domain);
|
|
26
|
-
const buf = new Uint8Array(d.length + seed.length);
|
|
27
|
-
buf.set(d, 0);
|
|
28
|
-
buf.set(seed, d.length);
|
|
29
|
-
return sha256(buf);
|
|
30
|
-
}
|
|
31
|
-
function toChecksum(addr20) {
|
|
32
|
-
const lower = hex(addr20);
|
|
33
|
-
const h = hex(keccak_256(new TextEncoder().encode(lower)));
|
|
34
|
-
let out = "0x";
|
|
35
|
-
for (let i = 0; i < lower.length; i++) {
|
|
36
|
-
out += parseInt(h[i], 16) >= 8 ? lower[i].toUpperCase() : lower[i];
|
|
37
|
-
}
|
|
38
|
-
return out;
|
|
39
|
-
}
|
|
40
|
-
function aptosAuthKey(publicKey) {
|
|
41
|
-
const material = new Uint8Array(publicKey.length + 1);
|
|
42
|
-
material.set(publicKey, 0);
|
|
43
|
-
material[publicKey.length] = 0;
|
|
44
|
-
return `0x${hex(sha3_256(material))}`;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* v1 derivation. Existing EVM/Solana/Casper outputs are unchanged; NEAR and
|
|
48
|
-
* Aptos are additive. AIFP-3 is the identity layer that binds these addresses.
|
|
49
|
-
*/
|
|
50
|
-
export function deriveWallet(seedHex) {
|
|
51
|
-
const seed = fromHex(seedHex);
|
|
52
|
-
const sol = nacl.sign.keyPair.fromSeed(seed);
|
|
53
|
-
const evmPriv = domainSeed("aifinpay:evm:v1\0", seed);
|
|
54
|
-
const evmPub = secp256k1.getPublicKey(evmPriv, false).slice(1);
|
|
55
|
-
const evmAddress = toChecksum(keccak_256(evmPub).slice(-20));
|
|
56
|
-
const nearSeed = domainSeed("aifinpay:near:v1\0", seed);
|
|
57
|
-
const nearKp = nacl.sign.keyPair.fromSeed(nearSeed);
|
|
58
|
-
const aptosSeed = domainSeed("aifinpay:aptos:v1\0", seed);
|
|
59
|
-
const aptosKp = nacl.sign.keyPair.fromSeed(aptosSeed);
|
|
60
|
-
const casperSeed = domainSeed("aifinpay:casper:v1\0", seed);
|
|
61
|
-
const casperKp = nacl.sign.keyPair.fromSeed(casperSeed);
|
|
62
|
-
const casperPublicKey = `01${hex(casperKp.publicKey)}`;
|
|
63
|
-
const name = new TextEncoder().encode("ed25519");
|
|
64
|
-
const tagged = new Uint8Array(name.length + 1 + casperKp.publicKey.length);
|
|
65
|
-
tagged.set(name, 0);
|
|
66
|
-
tagged[name.length] = 0;
|
|
67
|
-
tagged.set(casperKp.publicKey, name.length + 1);
|
|
68
|
-
const casperAddress = "account-hash-" + hex(blake2b(tagged, { dkLen: 32 }));
|
|
69
|
-
return {
|
|
70
|
-
solanaAddress: b58.encode(sol.publicKey),
|
|
71
|
-
evmAddress,
|
|
72
|
-
nearAddress: hex(nearKp.publicKey),
|
|
73
|
-
aptosAddress: aptosAuthKey(aptosKp.publicKey),
|
|
74
|
-
casperAddress,
|
|
75
|
-
casperPublicKey,
|
|
76
|
-
keys: {
|
|
77
|
-
seedHex: hex(seed),
|
|
78
|
-
solanaSecretKeyB58: b58.encode(sol.secretKey),
|
|
79
|
-
evmPrivateKey: `0x${hex(evmPriv)}`,
|
|
80
|
-
nearSecretSeedHex: hex(nearSeed),
|
|
81
|
-
aptosSecretSeedHex: hex(aptosSeed),
|
|
82
|
-
casperSecretSeedHex: hex(casperSeed),
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
export async function newWallet() {
|
|
87
|
-
const seed = new Uint8Array(32);
|
|
88
|
-
if (typeof globalThis.crypto?.getRandomValues === "function") {
|
|
89
|
-
globalThis.crypto.getRandomValues(seed);
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
const { randomFillSync } = await import("node:crypto");
|
|
93
|
-
randomFillSync(seed);
|
|
94
|
-
}
|
|
95
|
-
return deriveWallet(hex(seed));
|
|
96
|
-
}
|
|
1
|
+
export * from "@aifinpay/wallet";
|
|
97
2
|
//# sourceMappingURL=wallet.js.map
|
package/dist/wallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aifinpay/agent",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "AiFinPay SDK for global Agent Passport identity and route-verified AIFP-1/AIFP-2 settlement for autonomous AI agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -92,7 +92,8 @@
|
|
|
92
92
|
},
|
|
93
93
|
"bugs": "https://github.com/AiFinPay/sdk/issues",
|
|
94
94
|
"dependencies": {
|
|
95
|
-
"@aifinpay/deployments": "
|
|
95
|
+
"@aifinpay/deployments": "1.1.4",
|
|
96
|
+
"@aifinpay/wallet": "1.5.0",
|
|
96
97
|
"@noble/curves": "^1.9.0",
|
|
97
98
|
"@noble/hashes": "^1.5.0",
|
|
98
99
|
"@solana/web3.js": "^1.95.0",
|
|
@@ -107,13 +108,12 @@
|
|
|
107
108
|
},
|
|
108
109
|
"devDependencies": {
|
|
109
110
|
"@eslint/js": "^9.0.0",
|
|
110
|
-
"@types/node": "^20.
|
|
111
|
+
"@types/node": "^22.20.5",
|
|
111
112
|
"eslint": "^10.10.0",
|
|
112
113
|
"eslint-config-prettier": "^10.1.8",
|
|
113
114
|
"globals": "^16.0.0",
|
|
114
115
|
"prettier": "^3.9.6",
|
|
115
|
-
"typescript": "^
|
|
116
|
-
"typescript-eslint": "^8.0.0",
|
|
116
|
+
"typescript": "^7.0.2",
|
|
117
117
|
"vitest": "^4.1.5"
|
|
118
118
|
},
|
|
119
119
|
"engines": {
|