@chainvue/verus-sdk 0.6.3 → 0.8.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.
@@ -0,0 +1,31 @@
1
+ declare const brand: unique symbol;
2
+ type Brand<T, B extends string> = T & {
3
+ readonly [brand]: B;
4
+ };
5
+ /** Transparent R-address (version 0x3c, pubkey-hash). */
6
+ export type RAddress = Brand<string, 'RAddress'>;
7
+ /** Identity i-address (version 0x66) — identities AND currency ids (offline-indistinguishable). */
8
+ export type IAddress = Brand<string, 'IAddress'>;
9
+ /** P2SH address (version 0x55). */
10
+ export type P2shAddress = Brand<string, 'P2shAddress'>;
11
+ /** Any parsed base58check address of a known kind. */
12
+ export type Address = RAddress | IAddress | P2shAddress;
13
+ /**
14
+ * Documentation alias: a currency id IS an i-address. There is deliberately no
15
+ * separate `CurrencyId` brand — an offline SDK cannot tell an i-address naming a
16
+ * currency from one naming an identity, so a distinct brand would be a lie the
17
+ * type system can't check and would force unsafe casts.
18
+ */
19
+ export type CurrencyId = IAddress;
20
+ /** Parse a transparent R-address; throws InvalidAddressError otherwise. */
21
+ export declare function parseRAddress(s: string, label?: string): RAddress;
22
+ /** Parse an identity/currency i-address; throws InvalidAddressError otherwise. */
23
+ export declare function parseIAddress(s: string, label?: string): IAddress;
24
+ /** Parse any supported address into the discriminated union; throws otherwise. */
25
+ export declare function parseAddress(s: string, label?: string): Address;
26
+ /** Narrow an Address to an i-address by its version byte (replaces startsWith('i')). */
27
+ export declare function isIAddress(a: Address): a is IAddress;
28
+ /** Narrow an Address to an R-address by its version byte. */
29
+ export declare function isRAddress(a: Address): a is RAddress;
30
+ export {};
31
+ //# sourceMappingURL=brands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/core/brands.ts"],"names":[],"mappings":"AAmBA,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC;AACnC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9D,yDAAyD;AACzD,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACjD,mGAAmG;AACnG,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACjD,mCAAmC;AACnC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACvD,sDAAsD;AACtD,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;AAkBlC,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAY,GAAG,QAAQ,CAMpE;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAY,GAAG,QAAQ,CAMpE;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAY,GAAG,OAAO,CAYlE;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,QAAQ,CAEpD;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,QAAQ,CAEpD"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseRAddress = parseRAddress;
7
+ exports.parseIAddress = parseIAddress;
8
+ exports.parseAddress = parseAddress;
9
+ exports.isIAddress = isIAddress;
10
+ exports.isRAddress = isRAddress;
11
+ /**
12
+ * Branded domain types + parse-don't-validate constructors.
13
+ *
14
+ * The address-version-laundering bug class (KeyID/IdentityID.fromAddress and
15
+ * fromBase58Check discard the version byte) was defended by scattering
16
+ * assertAddressVersion at each call site. Brands move that guarantee into the
17
+ * type system: once an internal function's signature demands an `IAddress`, a
18
+ * raw `string` (or an `RAddress`) cannot be passed — the compiler rejects it,
19
+ * and a forgotten check is a build error instead of a live-testnet discovery.
20
+ *
21
+ * Brands are structural subtypes of `string`, so a value already flows into the
22
+ * fork's constructors with zero casts; the only way to MINT one is through a
23
+ * parser here, which validates the version byte. No fork imports (uses bs58check
24
+ * directly), so this stays at the dependency-free core.
25
+ */
26
+ const bs58check_1 = __importDefault(require("bs58check"));
27
+ const index_js_1 = require("../constants/index.js");
28
+ const errors_js_1 = require("../errors.js");
29
+ const P2SH_VERSION = 0x55;
30
+ /** Decode a base58check string to its version byte + 20-byte hash, or throw typed. */
31
+ function decode(s, label) {
32
+ let decoded;
33
+ try {
34
+ decoded = bs58check_1.default.decode(s);
35
+ }
36
+ catch (err) {
37
+ throw new errors_js_1.InvalidAddressError(String(s), `${label} is not valid base58check: ${err.message}`);
38
+ }
39
+ if (decoded.length !== 21) {
40
+ throw new errors_js_1.InvalidAddressError(String(s), `${label} must decode to a 1-byte version + 20-byte hash, got ${decoded.length} bytes`);
41
+ }
42
+ return { version: decoded[0] };
43
+ }
44
+ /** Parse a transparent R-address; throws InvalidAddressError otherwise. */
45
+ function parseRAddress(s, label = 'address') {
46
+ const { version } = decode(s, label);
47
+ if (version !== index_js_1.PUBKEY_HASH_PREFIX) {
48
+ throw new errors_js_1.InvalidAddressError(s, `${label} must be an R-address (version ${index_js_1.PUBKEY_HASH_PREFIX}), got version ${version}`);
49
+ }
50
+ return s;
51
+ }
52
+ /** Parse an identity/currency i-address; throws InvalidAddressError otherwise. */
53
+ function parseIAddress(s, label = 'address') {
54
+ const { version } = decode(s, label);
55
+ if (version !== index_js_1.I_ADDR_VERSION) {
56
+ throw new errors_js_1.InvalidAddressError(s, `${label} must be an identity i-address (version ${index_js_1.I_ADDR_VERSION}), got version ${version}`);
57
+ }
58
+ return s;
59
+ }
60
+ /** Parse any supported address into the discriminated union; throws otherwise. */
61
+ function parseAddress(s, label = 'address') {
62
+ const { version } = decode(s, label);
63
+ switch (version) {
64
+ case index_js_1.PUBKEY_HASH_PREFIX:
65
+ return s;
66
+ case index_js_1.I_ADDR_VERSION:
67
+ return s;
68
+ case P2SH_VERSION:
69
+ return s;
70
+ default:
71
+ throw new errors_js_1.InvalidAddressError(s, `${label} has unsupported version byte ${version}`);
72
+ }
73
+ }
74
+ /** Narrow an Address to an i-address by its version byte (replaces startsWith('i')). */
75
+ function isIAddress(a) {
76
+ return decode(a, 'address').version === index_js_1.I_ADDR_VERSION;
77
+ }
78
+ /** Narrow an Address to an R-address by its version byte. */
79
+ function isRAddress(a) {
80
+ return decode(a, 'address').version === index_js_1.PUBKEY_HASH_PREFIX;
81
+ }
82
+ //# sourceMappingURL=brands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/core/brands.ts"],"names":[],"mappings":";;;;;AAwDA,sCAMC;AAGD,sCAMC;AAGD,oCAYC;AAGD,gCAEC;AAGD,gCAEC;AAhGD;;;;;;;;;;;;;;GAcG;AACH,0DAAkC;AAClC,oDAA2E;AAC3E,4CAAmD;AAsBnD,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,sFAAsF;AACtF,SAAS,MAAM,CAAC,CAAS,EAAE,KAAa;IACtC,IAAI,OAAmB,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,GAAG,mBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,+BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,8BAA+B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,+BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,wDAAwD,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;IACnI,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAW,EAAE,CAAC;AAC3C,CAAC;AAED,2EAA2E;AAC3E,SAAgB,aAAa,CAAC,CAAS,EAAE,KAAK,GAAG,SAAS;IACxD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,6BAAkB,EAAE,CAAC;QACnC,MAAM,IAAI,+BAAmB,CAAC,CAAC,EAAE,GAAG,KAAK,kCAAkC,6BAAkB,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC5H,CAAC;IACD,OAAO,CAAa,CAAC;AACvB,CAAC;AAED,kFAAkF;AAClF,SAAgB,aAAa,CAAC,CAAS,EAAE,KAAK,GAAG,SAAS;IACxD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,yBAAc,EAAE,CAAC;QAC/B,MAAM,IAAI,+BAAmB,CAAC,CAAC,EAAE,GAAG,KAAK,2CAA2C,yBAAc,kBAAkB,OAAO,EAAE,CAAC,CAAC;IACjI,CAAC;IACD,OAAO,CAAa,CAAC;AACvB,CAAC;AAED,kFAAkF;AAClF,SAAgB,YAAY,CAAC,CAAS,EAAE,KAAK,GAAG,SAAS;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,6BAAkB;YACrB,OAAO,CAAa,CAAC;QACvB,KAAK,yBAAc;YACjB,OAAO,CAAa,CAAC;QACvB,KAAK,YAAY;YACf,OAAO,CAAgB,CAAC;QAC1B;YACE,MAAM,IAAI,+BAAmB,CAAC,CAAC,EAAE,GAAG,KAAK,iCAAiC,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,SAAgB,UAAU,CAAC,CAAU;IACnC,OAAO,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,KAAK,yBAAc,CAAC;AACzD,CAAC;AAED,6DAA6D;AAC7D,SAAgB,UAAU,CAAC,CAAU;IACnC,OAAO,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,KAAK,6BAAkB,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/currency/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAOrD,OAAO,KAAK,EAAQ,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI1F;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,OAAO,GACf,oBAAoB,CA6HtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/currency/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAQrD,OAAO,KAAK,EAAQ,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI1F;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,OAAO,GACf,oBAAoB,CA6ItB"}
@@ -28,6 +28,7 @@ const index_js_2 = require("../signing/index.js");
28
28
  const index_js_3 = require("../utxo/index.js");
29
29
  const index_js_4 = require("../utils/index.js");
30
30
  const index_js_5 = require("../identity/index.js");
31
+ const brands_js_1 = require("../core/brands.js");
31
32
  const index_js_6 = require("../keys/index.js");
32
33
  const errors_js_1 = require("../errors.js");
33
34
  const { completeFundedIdentityUpdate } = utxo_lib_1.smarttxs;
@@ -59,6 +60,10 @@ function defineCurrency(params, network) {
59
60
  // Parse identity and set FLAG_ACTIVECURRENCY
60
61
  const identity = new verus_typescript_primitives_1.Identity();
61
62
  identity.fromBuffer(Buffer.from(params.identityHex, 'hex'));
63
+ // A currency definition spends the identity input under primary authority.
64
+ // The fork signs it with whatever WIF it's handed, so a WIF that doesn't
65
+ // control the identity yields a tx the daemon rejects only at broadcast.
66
+ (0, index_js_5.assertWifIsPrimary)(params.wif, identity, verusNetwork);
62
67
  if (!identity.hasActiveCurrency()) {
63
68
  const currentFlags = identity.flags.toNumber();
64
69
  identity.flags = new bn_js_1.default(currentFlags | index_js_1.IDENTITY_FLAG_ACTIVECURRENCY);
@@ -70,6 +75,10 @@ function defineCurrency(params, network) {
70
75
  // large; size the fee from their real byte length so the tx isn't estimated
71
76
  // below the relay minimum.
72
77
  const selection = (0, index_js_3.selectUtxos)(params.utxos, currencyDefValue, new Map(), 2, systemId, undefined, true, identityOutputScript.length + currencyDefScript.length);
78
+ // Currency definition pays only native and emits no token-change output, so a
79
+ // token-bearing funding UTXO would be silently dropped. Fail closed if one
80
+ // was selected (both maps empty ⇒ assert no token enters).
81
+ (0, index_js_3.assertTokenConservation)(selection.selected, new Map(), new Map(), systemId, 'currency definition');
73
82
  // Build transaction
74
83
  const txb = new utxo_lib_1.TransactionBuilder(verusNetwork);
75
84
  txb.setVersion(4);
@@ -82,7 +91,7 @@ function defineCurrency(params, network) {
82
91
  txb.addOutput(currencyDefScript, (0, index_js_4.toSafeNumber)(currencyDefValue));
83
92
  if (selection.nativeChange > 0n) {
84
93
  if (params.changeAddress.startsWith('i')) {
85
- txb.addOutput((0, index_js_5.identityPaymentScript)(params.changeAddress), (0, index_js_4.toSafeNumber)(selection.nativeChange));
94
+ txb.addOutput((0, index_js_5.identityPaymentScript)((0, brands_js_1.parseIAddress)(params.changeAddress, 'changeAddress')), (0, index_js_4.toSafeNumber)(selection.nativeChange));
86
95
  }
87
96
  else {
88
97
  txb.addOutput(params.changeAddress, (0, index_js_4.toSafeNumber)(selection.nativeChange));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/currency/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/currency/index.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,29 @@
10
10
  import { Identity } from 'verus-typescript-primitives';
11
11
  import { nameAndParentAddrToIAddr } from 'verus-typescript-primitives';
12
12
  import type { Network } from '../constants/index.js';
13
+ import { type VerusNetwork } from '../signing/index.js';
14
+ import { type IAddress, type RAddress, type Address } from '../core/brands.js';
13
15
  import type { CreateCommitmentParams, CreateCommitmentResult, RegisterIdentityParams, RegisterIdentityResult, UpdateIdentityParams, UpdateIdentityResult } from '../types/index.js';
14
16
  export { nameAndParentAddrToIAddr };
17
+ /**
18
+ * Assert a base58check address has the expected version byte.
19
+ *
20
+ * KeyID.fromAddress / IdentityID.fromAddress discard the version byte and stamp
21
+ * their own, so an i-address passed where an R-address is expected (or vice
22
+ * versa) is silently laundered into a different, uncontrollable destination —
23
+ * e.g. an i-address as a primary key becomes the hash of the identity paid as a
24
+ * P2PKH nobody controls, permanently bricking the new identity. Validate up
25
+ * front instead.
26
+ */
27
+ export declare function assertAddressVersion(address: string, expectedVersion: number, label: string): void;
28
+ /**
29
+ * Assert the WIF's address is among an identity's current primary addresses.
30
+ * The fork signs CC (identity) inputs with whatever key it is given, so a WIF
31
+ * that doesn't control the identity yields a "valid" signed tx the daemon
32
+ * rejects at broadcast. Used by every path that spends an identity input under
33
+ * primary authority (currency define; update/lock/unlock check inline).
34
+ */
35
+ export declare function assertWifIsPrimary(wif: string, identity: Identity, network: VerusNetwork): void;
15
36
  /**
16
37
  * Generate a random 32-byte salt for name commitment
17
38
  */
@@ -35,11 +56,11 @@ export declare function serializeCommitmentHash(hash: Buffer): Buffer;
35
56
  /**
36
57
  * Build the commitment output script
37
58
  */
38
- export declare function buildCommitmentScript(commitmentHashBuf: Buffer, controlAddress: string): Buffer;
59
+ export declare function buildCommitmentScript(commitmentHashBuf: Buffer, controlAddress: RAddress): Buffer;
39
60
  /**
40
61
  * Build the name reservation output script
41
62
  */
42
- export declare function buildReservationScript(newIdentityIAddress: string, serializedReservation: Buffer, isAdvanced?: boolean): Buffer;
63
+ export declare function buildReservationScript(newIdentityIAddress: IAddress, serializedReservation: Buffer, isAdvanced?: boolean): Buffer;
43
64
  /**
44
65
  * Build an identity definition output script from an Identity object
45
66
  */
@@ -55,7 +76,14 @@ export declare function isVRSCParent(parentIAddress: string | undefined, network
55
76
  /**
56
77
  * Build the full commitment data needed for Step 1 of identity creation
57
78
  */
58
- export declare function prepareNameCommitment(name: string, controlAddress: string, referralIAddress?: string, parentIAddress?: string, network?: Network): {
79
+ export declare function prepareNameCommitment(name: string, controlAddress: string, referralIAddress?: string, parentIAddress?: string, network?: Network,
80
+ /**
81
+ * Explicit 32-byte salt. Omit for a fresh random salt (the normal path); pass
82
+ * a fixed value only to make the commitment deterministic for golden/diff
83
+ * tests. A reused salt on a real registration is a privacy leak, so callers
84
+ * outside tests must not set it.
85
+ */
86
+ salt?: Buffer): {
59
87
  salt: Buffer;
60
88
  serializedReservation: Buffer;
61
89
  commitmentHash: Buffer;
@@ -64,7 +92,14 @@ export declare function prepareNameCommitment(name: string, controlAddress: stri
64
92
  identityAddress: string;
65
93
  };
66
94
  /**
67
- * Build a P2ID output script (pay to identity)
95
+ * Build a pay-to-identity output script for an i-address.
96
+ *
97
+ * Alias of {@link identityPaymentScript}. This previously emitted the bare
98
+ * 26-byte template `OP_DUP OP_HASH160 <idhash> OP_EQUALVERIFY OP_CHECKSIG
99
+ * OP_CHECKCRYPTOCONDITION`, which is NOT a valid Verus scriptPubKey — a Verus
100
+ * P2ID is a CryptoCondition (OptCCParams) output. Funds sent to the old
101
+ * template would have gone to a non-standard script the daemon does not treat
102
+ * as identity-spendable. It now delegates to the chain-verified CC builder.
68
103
  */
69
104
  export declare function buildP2IDScript(iAddress: string): Buffer;
70
105
  /**
@@ -73,11 +108,13 @@ export declare function buildP2IDScript(iAddress: string): Buffer;
73
108
  * an identity (verified against on-chain P2ID outputs). Use this for change
74
109
  * or payment outputs to an i-address.
75
110
  */
76
- export declare function identityPaymentScript(iAddress: string): Buffer;
111
+ export declare function identityPaymentScript(iAddress: IAddress): Buffer;
77
112
  /**
78
- * Build a CC referral payment output script
113
+ * Build a CC referral payment output script. Requires an already-parsed
114
+ * i-address: IdentityID.fromAddress launders the version byte, so accepting a
115
+ * raw string here is exactly the hole that let a wrong-kind address through.
79
116
  */
80
- export declare function buildReferralPaymentScript(iAddress: string): Buffer;
117
+ export declare function buildReferralPaymentScript(iAddress: IAddress): Buffer;
81
118
  /**
82
119
  * Calculate registration fee breakdown
83
120
  */
@@ -91,15 +128,31 @@ export declare function calculateRegistrationFees(hasReferral: boolean, totalFee
91
128
  */
92
129
  export declare function createIdentityObject(params: {
93
130
  name: string;
94
- primaryAddresses: string[];
131
+ primaryAddresses: RAddress[];
95
132
  minSigs?: number;
96
- revocationAuthority: string;
97
- recoveryAuthority: string;
98
- parentIAddress: string;
99
- systemId: string;
133
+ revocationAuthority: IAddress;
134
+ recoveryAuthority: IAddress;
135
+ parentIAddress: IAddress;
136
+ systemId: IAddress;
100
137
  }): Identity;
101
138
  /**
102
- * Build a CReserveTransfer fee output for sub-ID registration
139
+ * Build the parent-currency registration-fee output for a sub-ID.
140
+ *
141
+ * The daemon pays this fee as a plain reserve output (EVAL_RESERVE_OUTPUT)
142
+ * holding `feeAmount` of the parent currency AT the parent currency's own
143
+ * i-address, carrying zero native value. Verified against `registeridentity`
144
+ * on VRSCTEST and an accepted on-chain sub-ID registration: for a currency
145
+ * with idregistrationfees=1.0 the fee output is exactly `{parent: 1.0}` at the
146
+ * parent, 0 native, and the native cost that leaves the transaction is the
147
+ * currency's idimportfees (the caller passes it as `nativeImportFee`).
148
+ *
149
+ * A previous implementation built this as a CReserveTransfer to the
150
+ * reserve-transfer eval address carrying 0.0002 native — a cross-currency
151
+ * transfer, not a same-chain fee payment. That structure never matched the
152
+ * daemon and was never accepted at broadcast.
153
+ *
154
+ * `systemId`/`_controlAddress` are retained for signature compatibility and
155
+ * are unused: the fee is denominated in and paid to the parent currency.
103
156
  */
104
157
  export declare function buildRegistrationFeeOutput(parentCurrencyId: string, feeAmount: bigint, systemId: string, _controlAddress: string): {
105
158
  script: Buffer;
@@ -108,7 +161,7 @@ export declare function buildRegistrationFeeOutput(parentCurrencyId: string, fee
108
161
  /**
109
162
  * Build a token change output (EVAL_RESERVE_OUTPUT)
110
163
  */
111
- export declare function buildTokenChangeOutput(changeAddress: string, currencyChanges: Map<string, bigint>): {
164
+ export declare function buildTokenChangeOutput(changeAddress: Address, currencyChanges: Map<string, bigint>): {
112
165
  script: Buffer;
113
166
  nativeValue: bigint;
114
167
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/identity/index.ts"],"names":[],"mappings":"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"}