@1sat/actions 0.0.56 → 0.0.58

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.
@@ -2,7 +2,6 @@ import type { Action } from '../types';
2
2
  export interface AuthTokenRequest {
3
3
  requestPath: string;
4
4
  body?: string;
5
- scheme?: 'brc77' | 'bsm';
6
5
  bodyEncoding?: 'utf8' | 'hex' | 'base64';
7
6
  timestamp?: string;
8
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authToken.d.ts","sourceRoot":"","sources":["../../src/signing/authToken.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAA;AAOrD,MAAM,WAAW,gBAAgB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAaD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CA4EpE,CAAA"}
1
+ {"version":3,"file":"authToken.d.ts","sourceRoot":"","sources":["../../src/signing/authToken.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAA;AAOrD,MAAM,WAAW,gBAAgB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CA2EpE,CAAA"}
@@ -1,17 +1,11 @@
1
- import { BSM, BigNumber, Hash, PublicKey, Signature, Utils } from '@bsv/sdk';
2
- const { toArray, toHex } = Utils;
3
- const AUTH_PROTOCOL_ID = [2, 'bitcoin-auth'];
4
- const AUTH_KEY_ID = 'auth-0';
5
- function compactSign(derSig, msgHash, pubKeyHex) {
6
- const sig = Signature.fromDER(toHex(derSig), 'hex');
7
- const pubKey = PublicKey.fromString(pubKeyHex);
8
- const recovery = sig.CalculateRecoveryFactor(pubKey, new BigNumber(msgHash));
9
- return sig.toCompact(recovery, true, 'base64');
10
- }
1
+ import { Hash, Random, Utils } from '@bsv/sdk';
2
+ const { toArray, toBase64, toHex } = Utils;
3
+ const BRC77_VERSION = [0x42, 0x42, 0x33, 0x01];
4
+ const BRC77_PROTOCOL_ID = [2, 'message signing'];
11
5
  export const getAuthToken = {
12
6
  meta: {
13
7
  name: 'getAuthToken',
14
- description: 'Generate a BRC-77 or BSM auth token for HTTP request signing',
8
+ description: 'Generate a BRC-77 auth token for HTTP request signing',
15
9
  category: 'signing',
16
10
  inputSchema: {
17
11
  type: 'object',
@@ -24,11 +18,6 @@ export const getAuthToken = {
24
18
  type: 'string',
25
19
  description: 'Request body to include in signature',
26
20
  },
27
- scheme: {
28
- type: 'string',
29
- enum: ['brc77', 'bsm'],
30
- description: 'Signature scheme (default: brc77)',
31
- },
32
21
  bodyEncoding: {
33
22
  type: 'string',
34
23
  enum: ['utf8', 'hex', 'base64'],
@@ -44,7 +33,6 @@ export const getAuthToken = {
44
33
  },
45
34
  async execute(ctx, input) {
46
35
  try {
47
- const scheme = input.scheme ?? 'brc77';
48
36
  const bodyEncoding = input.bodyEncoding ?? 'utf8';
49
37
  const timestamp = input.timestamp ?? new Date().toISOString();
50
38
  const bodyHash = input.body
@@ -52,22 +40,27 @@ export const getAuthToken = {
52
40
  : '';
53
41
  const message = `${input.requestPath}|${timestamp}|${bodyHash}`;
54
42
  const messageBytes = toArray(message, 'utf8');
55
- const msgHash = scheme === 'bsm'
56
- ? BSM.magicHash(messageBytes)
57
- : Hash.sha256(messageBytes);
58
- const { publicKey: pubKeyHex } = await ctx.wallet.getPublicKey({
59
- protocolID: AUTH_PROTOCOL_ID,
60
- keyID: AUTH_KEY_ID,
61
- forSelf: true,
43
+ const keyID = Random(32);
44
+ const keyIDBase64 = toBase64(keyID);
45
+ const { publicKey: senderPubKeyHex } = await ctx.wallet.getPublicKey({
46
+ identityKey: true,
62
47
  });
63
48
  const { signature: derSig } = await ctx.wallet.createSignature({
64
- protocolID: AUTH_PROTOCOL_ID,
65
- keyID: AUTH_KEY_ID,
66
- counterparty: 'self',
67
- hashToDirectlySign: Array.from(msgHash),
49
+ protocolID: BRC77_PROTOCOL_ID,
50
+ keyID: keyIDBase64,
51
+ counterparty: 'anyone',
52
+ data: Array.from(messageBytes),
68
53
  });
69
- const signature = compactSign(derSig, msgHash, pubKeyHex);
70
- const authToken = `${pubKeyHex}|${scheme}|${timestamp}|${input.requestPath}|${signature}`;
54
+ const senderPubKeyBytes = toArray(senderPubKeyHex, 'hex');
55
+ const envelope = [
56
+ ...BRC77_VERSION,
57
+ ...senderPubKeyBytes,
58
+ 0x00,
59
+ ...keyID,
60
+ ...derSig,
61
+ ];
62
+ const signatureBase64 = toBase64(envelope);
63
+ const authToken = `${senderPubKeyHex}|brc77|${timestamp}|${input.requestPath}|${signatureBase64}`;
71
64
  return { authToken };
72
65
  }
73
66
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"authToken.js","sourceRoot":"","sources":["../../src/signing/authToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authToken.js","sourceRoot":"","sources":["../../src/signing/authToken.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/actions",
3
- "version": "0.0.56",
3
+ "version": "0.0.58",
4
4
  "description": "Action definitions for the 1Sat SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,7 +24,7 @@
24
24
  "@1sat/client": "0.0.16",
25
25
  "@1sat/types": "0.0.13",
26
26
  "@1sat/utils": "0.0.11",
27
- "@1sat/wallet": "0.0.25",
27
+ "@1sat/wallet": "0.0.31",
28
28
  "@1sat/templates": "0.0.2"
29
29
  },
30
30
  "peerDependencies": {