@steemit/steem-js 1.0.18 → 1.0.19
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/auth/account-update-chain.d.ts +38 -8
- package/dist/auth/index.d.ts +1 -1
- package/dist/browser.esm.js +60 -40
- package/dist/browser.esm.js.map +1 -1
- package/dist/index.cjs +60 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +60 -40
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +60 -40
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types.d.ts +4 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -21993,11 +21993,25 @@ if (typeof BigInt === "function") {
|
|
|
21993
21993
|
}
|
|
21994
21994
|
|
|
21995
21995
|
/**
|
|
21996
|
-
* Chain-safe JSON normalization for account_update operations.
|
|
21997
|
-
*
|
|
21998
|
-
*
|
|
21996
|
+
* Chain-safe JSON normalization for `account_update` operations.
|
|
21997
|
+
*
|
|
21998
|
+
* Protocol types (steem/libraries/protocol):
|
|
21999
|
+
* - `authority` — weight_threshold (uint32), account_auths / key_auths (fc::flat_map)
|
|
22000
|
+
* - `account_update_operation` — account, optional owner/active/posting, memo_key, json_metadata (string)
|
|
22001
|
+
*
|
|
22002
|
+
* JSON-RPC (`condenser_api.broadcast_transaction` → fc::from_variant):
|
|
22003
|
+
* - `authority` is a variant_object, not a bare key_auths array.
|
|
22004
|
+
* - `fc::flat_map` serializes as an array of [key, weight] pairs (see fc/container/flat.hpp),
|
|
22005
|
+
* not a JSON object `{ "key": weight }` — object maps cause bad_cast_exception.
|
|
22006
|
+
* - `json_metadata` must be a string (protocol `string`), not a parsed JSON object.
|
|
22007
|
+
*
|
|
22008
|
+
* Binary signing (transaction digest) uses the same logical fields; the serializer packs
|
|
22009
|
+
* flat_maps as sorted on-wire maps (see serializeAuthority in serializer/transaction.ts).
|
|
22010
|
+
*/
|
|
22011
|
+
/**
|
|
22012
|
+
* Coerce `json_metadata` to protocol `string` (FC string field).
|
|
22013
|
+
* Node rejects object/array variants with bad_cast when broadcasting.
|
|
21999
22014
|
*/
|
|
22000
|
-
/** Steem broadcast JSON requires json_metadata to be a string (not object/array). */
|
|
22001
22015
|
function normalizeChainJsonMetadata(value) {
|
|
22002
22016
|
if (typeof value === 'string')
|
|
22003
22017
|
return value;
|
|
@@ -22009,6 +22023,10 @@ function normalizeChainJsonMetadata(value) {
|
|
|
22009
22023
|
return JSON.stringify(value);
|
|
22010
22024
|
return String(value);
|
|
22011
22025
|
}
|
|
22026
|
+
/**
|
|
22027
|
+
* Parse fc::flat_map JSON (pair array) or mistaken object-map input into pair arrays.
|
|
22028
|
+
* Broadcast output always uses pair arrays per fc::from_variant(flat_map).
|
|
22029
|
+
*/
|
|
22012
22030
|
function toAuthPairs(raw) {
|
|
22013
22031
|
if (Array.isArray(raw)) {
|
|
22014
22032
|
return raw
|
|
@@ -22037,7 +22055,7 @@ function toKeyAuthPairs(raw) {
|
|
|
22037
22055
|
}
|
|
22038
22056
|
return [];
|
|
22039
22057
|
}
|
|
22040
|
-
/** Normalize API authority data (
|
|
22058
|
+
/** Normalize API authority data (get_accounts-style input; accepts pair arrays or object maps). */
|
|
22041
22059
|
function normalizeAuthoritySource(source) {
|
|
22042
22060
|
if (Array.isArray(source) || !source || typeof source !== 'object') {
|
|
22043
22061
|
return { weight_threshold: 1, account_auths: [], key_auths: [] };
|
|
@@ -22063,7 +22081,10 @@ function sanitizeAuthority(value, field) {
|
|
|
22063
22081
|
}
|
|
22064
22082
|
return { weight_threshold, account_auths, key_auths };
|
|
22065
22083
|
}
|
|
22066
|
-
/**
|
|
22084
|
+
/**
|
|
22085
|
+
* Coerce account_update operation payload to protocol JSON shape for signing and broadcast.
|
|
22086
|
+
* Emits fc::flat_map fields as pair arrays, not object maps.
|
|
22087
|
+
*/
|
|
22067
22088
|
function sanitizeAccountUpdatePayload(payload) {
|
|
22068
22089
|
return {
|
|
22069
22090
|
account: String(payload.account || ''),
|
|
@@ -22475,8 +22496,9 @@ function serializeAccountCreate(bb, data) {
|
|
|
22475
22496
|
writeString(bb, String(dataObj.json_metadata || ''));
|
|
22476
22497
|
}
|
|
22477
22498
|
/**
|
|
22478
|
-
* Serialize
|
|
22479
|
-
*
|
|
22499
|
+
* Serialize account_update_operation (steem_operations.hpp).
|
|
22500
|
+
* JSON fields: account, owner/active/posting (authority objects), memo_key, json_metadata (string).
|
|
22501
|
+
* Optional authorities use a presence byte before serializeAuthority.
|
|
22480
22502
|
*/
|
|
22481
22503
|
function serializeAccountUpdate(bb, data) {
|
|
22482
22504
|
const dataObj = data;
|
|
@@ -23143,7 +23165,26 @@ function serializeCustomJson(bb, data) {
|
|
|
23143
23165
|
writeString(bb, String(dataObj.json || '{}'));
|
|
23144
23166
|
}
|
|
23145
23167
|
/**
|
|
23146
|
-
*
|
|
23168
|
+
* Read authority map fields for binary packing (on-wire sorted flat_map).
|
|
23169
|
+
* JSON-RPC uses fc::flat_map → array of [key, weight] pairs; object maps are accepted
|
|
23170
|
+
* here only so callers that forgot to normalize still sign the intended keys.
|
|
23171
|
+
*/
|
|
23172
|
+
function authorityMapEntries(raw) {
|
|
23173
|
+
if (Array.isArray(raw)) {
|
|
23174
|
+
return raw
|
|
23175
|
+
.filter((entry) => Array.isArray(entry) && entry.length >= 2)
|
|
23176
|
+
.map(([key, weight]) => [String(key), Number(weight)])
|
|
23177
|
+
.filter(([, weight]) => Number.isFinite(weight));
|
|
23178
|
+
}
|
|
23179
|
+
if (raw && typeof raw === 'object') {
|
|
23180
|
+
return Object.entries(raw)
|
|
23181
|
+
.map(([key, weight]) => [String(key), Number(weight)])
|
|
23182
|
+
.filter(([, weight]) => Number.isFinite(weight));
|
|
23183
|
+
}
|
|
23184
|
+
return [];
|
|
23185
|
+
}
|
|
23186
|
+
/**
|
|
23187
|
+
* Serialize steem::protocol::authority (weight_threshold + sorted account/key flat_maps).
|
|
23147
23188
|
*/
|
|
23148
23189
|
function serializeAuthority(bb, auth) {
|
|
23149
23190
|
if (Array.isArray(auth)) {
|
|
@@ -23155,40 +23196,19 @@ function serializeAuthority(bb, auth) {
|
|
|
23155
23196
|
const authObj = auth;
|
|
23156
23197
|
bb.writeUint32(authObj.weight_threshold || 1);
|
|
23157
23198
|
// Account auths (map<string, uint16>)
|
|
23158
|
-
const accountAuths = (
|
|
23159
|
-
// Maps in Steem serialization are sorted by key
|
|
23160
|
-
const accountAuthsArray = accountAuths;
|
|
23161
|
-
accountAuthsArray.sort((a, b) => {
|
|
23162
|
-
const aKey = Array.isArray(a) && a[0] ? String(a[0]) : '';
|
|
23163
|
-
const bKey = Array.isArray(b) && b[0] ? String(b[0]) : '';
|
|
23164
|
-
return aKey.localeCompare(bKey);
|
|
23165
|
-
});
|
|
23199
|
+
const accountAuths = authorityMapEntries(authObj.account_auths).sort((a, b) => a[0].localeCompare(b[0]));
|
|
23166
23200
|
bb.writeVarint32(accountAuths.length);
|
|
23167
|
-
for (const
|
|
23168
|
-
|
|
23169
|
-
|
|
23170
|
-
bb.writeUint16(authEntry[1]);
|
|
23171
|
-
}
|
|
23201
|
+
for (const [account, weight] of accountAuths) {
|
|
23202
|
+
writeString(bb, account);
|
|
23203
|
+
bb.writeUint16(weight);
|
|
23172
23204
|
}
|
|
23173
23205
|
// Key auths (map<public_key, uint16>)
|
|
23174
|
-
const keyAuths = (
|
|
23175
|
-
// Maps in Steem serialization are sorted by key (public key string)
|
|
23176
|
-
// But serialized as bytes. Usually sorting by string representation of public key works.
|
|
23177
|
-
const keyAuthsArray = keyAuths;
|
|
23178
|
-
keyAuthsArray.sort((a, b) => {
|
|
23179
|
-
const aKey = Array.isArray(a) && a[0] ? String(a[0]) : '';
|
|
23180
|
-
const bKey = Array.isArray(b) && b[0] ? String(b[0]) : '';
|
|
23181
|
-
return aKey.localeCompare(bKey);
|
|
23182
|
-
});
|
|
23206
|
+
const keyAuths = authorityMapEntries(authObj.key_auths).sort((a, b) => a[0].localeCompare(b[0]));
|
|
23183
23207
|
bb.writeVarint32(keyAuths.length);
|
|
23184
|
-
for (const
|
|
23185
|
-
|
|
23186
|
-
|
|
23187
|
-
|
|
23188
|
-
const pubKey = PublicKey.fromStringOrThrow(keyStr);
|
|
23189
|
-
bb.append(pubKey.toBuffer());
|
|
23190
|
-
bb.writeUint16(weight);
|
|
23191
|
-
}
|
|
23208
|
+
for (const [keyStr, weight] of keyAuths) {
|
|
23209
|
+
const pubKey = PublicKey.fromStringOrThrow(keyStr);
|
|
23210
|
+
bb.append(pubKey.toBuffer());
|
|
23211
|
+
bb.writeUint16(weight);
|
|
23192
23212
|
}
|
|
23193
23213
|
}
|
|
23194
23214
|
/**
|
|
@@ -26392,7 +26412,7 @@ const steem = {
|
|
|
26392
26412
|
memo,
|
|
26393
26413
|
operations,
|
|
26394
26414
|
utils: utils$3,
|
|
26395
|
-
version: '1.0.
|
|
26415
|
+
version: '1.0.19',
|
|
26396
26416
|
config: {
|
|
26397
26417
|
set: (options) => {
|
|
26398
26418
|
// If nodes is provided, extract the first node as url for API
|