@helium/helium-admin-cli 0.11.17 → 0.11.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/lib/cjs/close-council-fanout.js +142 -0
- package/lib/cjs/close-council-fanout.js.map +1 -0
- package/lib/cjs/create-council-fanout.js +69 -14
- package/lib/cjs/create-council-fanout.js.map +1 -1
- package/lib/cjs/end-epoch.js +34 -2
- package/lib/cjs/end-epoch.js.map +1 -1
- package/lib/cjs/hip149.js +13 -0
- package/lib/cjs/hip149.js.map +1 -0
- package/lib/cjs/mini-fanout-utils.js +57 -0
- package/lib/cjs/mini-fanout-utils.js.map +1 -0
- package/lib/cjs/queue-hotspot-claims.js +2 -6
- package/lib/cjs/queue-hotspot-claims.js.map +1 -1
- package/lib/cjs/queue-position-claims.js +1 -3
- package/lib/cjs/queue-position-claims.js.map +1 -1
- package/lib/cjs/requeue-hotspot-claims.js +1 -3
- package/lib/cjs/requeue-hotspot-claims.js.map +1 -1
- package/lib/cjs/reschedule-all-mini-fanouts.js +38 -14
- package/lib/cjs/reschedule-all-mini-fanouts.js.map +1 -1
- package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/cjs/update-council-fanout.js +177 -0
- package/lib/cjs/update-council-fanout.js.map +1 -0
- package/lib/cjs/update-data-credits.js +12 -12
- package/lib/esm/src/close-council-fanout.js +92 -0
- package/lib/esm/src/close-council-fanout.js.map +1 -0
- package/lib/esm/src/create-council-fanout.js +69 -14
- package/lib/esm/src/create-council-fanout.js.map +1 -1
- package/lib/esm/src/end-epoch.js +35 -3
- package/lib/esm/src/end-epoch.js.map +1 -1
- package/lib/esm/src/hip149.js +10 -0
- package/lib/esm/src/hip149.js.map +1 -0
- package/lib/esm/src/mini-fanout-utils.js +40 -0
- package/lib/esm/src/mini-fanout-utils.js.map +1 -0
- package/lib/esm/src/queue-hotspot-claims.js +2 -6
- package/lib/esm/src/queue-hotspot-claims.js.map +1 -1
- package/lib/esm/src/queue-position-claims.js +1 -3
- package/lib/esm/src/queue-position-claims.js.map +1 -1
- package/lib/esm/src/requeue-hotspot-claims.js +1 -3
- package/lib/esm/src/requeue-hotspot-claims.js.map +1 -1
- package/lib/esm/src/reschedule-all-mini-fanouts.js +39 -15
- package/lib/esm/src/reschedule-all-mini-fanouts.js.map +1 -1
- package/lib/esm/src/update-council-fanout.js +126 -0
- package/lib/esm/src/update-council-fanout.js.map +1 -0
- package/lib/esm/src/update-data-credits.js +18 -18
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/close-council-fanout.d.ts +2 -0
- package/lib/types/src/close-council-fanout.d.ts.map +1 -0
- package/lib/types/src/create-council-fanout.d.ts.map +1 -1
- package/lib/types/src/end-epoch.d.ts.map +1 -1
- package/lib/types/src/hip149.d.ts +4 -0
- package/lib/types/src/hip149.d.ts.map +1 -0
- package/lib/types/src/mini-fanout-utils.d.ts +25 -0
- package/lib/types/src/mini-fanout-utils.d.ts.map +1 -0
- package/lib/types/src/queue-hotspot-claims.d.ts.map +1 -1
- package/lib/types/src/queue-position-claims.d.ts.map +1 -1
- package/lib/types/src/requeue-hotspot-claims.d.ts.map +1 -1
- package/lib/types/src/reschedule-all-mini-fanouts.d.ts.map +1 -1
- package/lib/types/src/update-council-fanout.d.ts +2 -0
- package/lib/types/src/update-council-fanout.d.ts.map +1 -0
- package/package.json +22 -22
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import { init as initMfan } from "@helium/mini-fanout-sdk";
|
|
3
|
+
import { init as initTuktuk } from "@helium/tuktuk-sdk";
|
|
4
|
+
import { PublicKey } from "@solana/web3.js";
|
|
5
|
+
import os from "os";
|
|
6
|
+
import yargs from "yargs/yargs";
|
|
7
|
+
import { allocateNextTasks, resolveTaskRentRefund } from "./mini-fanout-utils";
|
|
8
|
+
import { loadKeypair, sendInstructionsOrSquadsV4 } from "./utils";
|
|
9
|
+
// HIP 149 Decision 4: update the Advisory Council compensation fanout created by
|
|
10
|
+
// create-council-fanout.ts. Use this on a seat change (add/remove a member) or to
|
|
11
|
+
// change the distribution schedule.
|
|
12
|
+
//
|
|
13
|
+
// Operational rules (see HIP 149 Decision 4, and the header comment on
|
|
14
|
+
// create-council-fanout.ts):
|
|
15
|
+
// - CRANK before running this on a seat change. `update_mini_fanout_v0` replaces
|
|
16
|
+
// the share vec wholesale, so accrual (total_owed) for members not carried
|
|
17
|
+
// forward is lost. Let the current period's distribution run first so accrual
|
|
18
|
+
// maps to the set that was actually seated when it accrued, then update.
|
|
19
|
+
// - The fanout's `owner` (a governance multisig vault) must sign this. Pass
|
|
20
|
+
// `--multisig <governance multisig address>` to route it through Squads V4
|
|
21
|
+
// as a proposal instead of trying to send it directly.
|
|
22
|
+
// - Omitting --members leaves the current share set untouched (only the
|
|
23
|
+
// schedule changes, if given). Omitting --schedule leaves the cron
|
|
24
|
+
// untouched. Passing neither still re-queues the next distribution task,
|
|
25
|
+
// which is a valid way to force a reschedule on an already-scheduled fanout
|
|
26
|
+
// (an idle/unscheduled one should use reschedule-all-mini-fanouts.ts instead,
|
|
27
|
+
// since that path doesn't need the owner's signature).
|
|
28
|
+
// - This instruction bakes in the fanout's *current* next_task/next_pre_task
|
|
29
|
+
// (has_one-checked on-chain) and a task id claimed from the queue's current
|
|
30
|
+
// bitmap at build time -- both can go stale while a Squads proposal sits
|
|
31
|
+
// waiting for approval (the cron can self-reschedule to a new next_task, or
|
|
32
|
+
// another queue_task_v0 call can claim the same id first). Either makes
|
|
33
|
+
// execution fail on-chain (has_one mismatch or TaskAlreadyExists) rather
|
|
34
|
+
// than corrupt anything, but the proposal is then permanently dead and must
|
|
35
|
+
// be rebuilt from a fresh run of this script. Get proposals approved
|
|
36
|
+
// promptly; if one sits for a while, re-run this script and re-propose
|
|
37
|
+
// rather than trusting a stale one to still execute.
|
|
38
|
+
export async function run(args = process.argv) {
|
|
39
|
+
const yarg = yargs(args).options({
|
|
40
|
+
wallet: {
|
|
41
|
+
alias: "k",
|
|
42
|
+
describe: "Anchor wallet keypair (payer; proposer if using --multisig)",
|
|
43
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
44
|
+
},
|
|
45
|
+
url: {
|
|
46
|
+
alias: "u",
|
|
47
|
+
default: "http://127.0.0.1:8899",
|
|
48
|
+
describe: "The solana url",
|
|
49
|
+
},
|
|
50
|
+
miniFanout: {
|
|
51
|
+
type: "string",
|
|
52
|
+
required: true,
|
|
53
|
+
describe: "Address of the mini fanout to update",
|
|
54
|
+
},
|
|
55
|
+
members: {
|
|
56
|
+
type: "string",
|
|
57
|
+
describe: "Comma-separated seated community-member wallet addresses to replace the current share set with (each gets an equal share). Omit to leave shares unchanged.",
|
|
58
|
+
},
|
|
59
|
+
schedule: {
|
|
60
|
+
type: "string",
|
|
61
|
+
describe: "New cron schedule (sec min hour day month dow) for the distribution crank. Omit to leave the schedule unchanged.",
|
|
62
|
+
},
|
|
63
|
+
multisig: {
|
|
64
|
+
type: "string",
|
|
65
|
+
describe: "Address of the squads multisig to propose through. Required in practice, since the fanout owner is the governance multisig and must sign this update.",
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
const argv = await yarg.argv;
|
|
69
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
70
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
71
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
72
|
+
const provider = anchor.getProvider();
|
|
73
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
74
|
+
const program = await initMfan(provider);
|
|
75
|
+
const tuktukProgram = await initTuktuk(provider);
|
|
76
|
+
const miniFanout = new PublicKey(argv.miniFanout);
|
|
77
|
+
const miniFanoutAcc = await program.account.miniFanoutV0.fetch(miniFanout);
|
|
78
|
+
const shares = argv.members
|
|
79
|
+
? argv.members
|
|
80
|
+
.split(",")
|
|
81
|
+
.map((m) => m.trim())
|
|
82
|
+
.filter(Boolean)
|
|
83
|
+
.map((m) => ({
|
|
84
|
+
wallet: new PublicKey(m),
|
|
85
|
+
share: { share: { amount: 1 } },
|
|
86
|
+
}))
|
|
87
|
+
: null;
|
|
88
|
+
if (argv.members && shares.length === 0) {
|
|
89
|
+
throw new Error("--members was given but resolved to zero wallets");
|
|
90
|
+
}
|
|
91
|
+
const { taskId, preTaskId, task, preTask } = await allocateNextTasks(tuktukProgram, miniFanoutAcc.taskQueue);
|
|
92
|
+
const taskRentRefund = await resolveTaskRentRefund(tuktukProgram, miniFanoutAcc.nextTask, miniFanout, program.programId, wallet.publicKey);
|
|
93
|
+
const updateIx = await program.methods
|
|
94
|
+
.updateMiniFanoutV0({
|
|
95
|
+
newTaskId: taskId,
|
|
96
|
+
newPreTaskId: preTaskId,
|
|
97
|
+
shares,
|
|
98
|
+
schedule: argv.schedule ?? null,
|
|
99
|
+
})
|
|
100
|
+
.accountsPartial({
|
|
101
|
+
owner: miniFanoutAcc.owner,
|
|
102
|
+
payer: wallet.publicKey,
|
|
103
|
+
miniFanout,
|
|
104
|
+
taskQueue: miniFanoutAcc.taskQueue,
|
|
105
|
+
newTask: task,
|
|
106
|
+
newPreTask: preTask,
|
|
107
|
+
taskRentRefund,
|
|
108
|
+
})
|
|
109
|
+
.instruction();
|
|
110
|
+
await sendInstructionsOrSquadsV4({
|
|
111
|
+
provider,
|
|
112
|
+
instructions: [updateIx],
|
|
113
|
+
multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
|
|
114
|
+
signers: [],
|
|
115
|
+
});
|
|
116
|
+
console.log("Council fanout updated.");
|
|
117
|
+
console.log(` mini fanout: ${miniFanout.toBase58()}`);
|
|
118
|
+
if (shares) {
|
|
119
|
+
console.log(` members (${shares.length}):`);
|
|
120
|
+
shares.forEach((s) => console.log(` - ${s.wallet.toBase58()}`));
|
|
121
|
+
}
|
|
122
|
+
if (argv.schedule) {
|
|
123
|
+
console.log(` schedule: ${argv.schedule}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=update-council-fanout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-council-fanout.js","sourceRoot":"","sources":["../../../src/update-council-fanout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAElE,iFAAiF;AACjF,kFAAkF;AAClF,oCAAoC;AACpC,EAAE;AACF,uEAAuE;AACvE,6BAA6B;AAC7B,mFAAmF;AACnF,+EAA+E;AAC/E,kFAAkF;AAClF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,2DAA2D;AAC3D,0EAA0E;AAC1E,uEAAuE;AACvE,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;AAClF,2DAA2D;AAC3D,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,yEAAyE;AACzE,2EAA2E;AAC3E,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,6DAA6D;YACvE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,yBAAyB;SAClD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,gBAAgB;SAC3B;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,sCAAsC;SACjD;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,4JAA4J;SAC/J;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,kHAAkH;SACrH;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,uJAAuJ;SAC1J;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;QACzB,CAAC,CAAC,IAAI,CAAC,OAAO;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;YACxB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;SAChC,CAAC,CAAC;QACP,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,IAAI,CAAC,OAAO,IAAI,MAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAClE,aAAa,EACb,aAAa,CAAC,SAAS,CACxB,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAChD,aAAa,EACb,aAAa,CAAC,QAAQ,EACtB,UAAU,EACV,OAAO,CAAC,SAAS,EACjB,MAAM,CAAC,SAAS,CACjB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO;SACnC,kBAAkB,CAAC;QAClB,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,SAAS;QACvB,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;KAChC,CAAC;SACD,eAAe,CAAC;QACf,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,KAAK,EAAE,MAAM,CAAC,SAAS;QACvB,UAAU;QACV,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,OAAO;QACnB,cAAc;KACf,CAAC;SACD,WAAW,EAAE,CAAC;IAEjB,MAAM,0BAA0B,CAAC;QAC/B,QAAQ;QACR,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import * as anchor from
|
|
2
|
-
import { dataCreditsKey, init as initDc } from
|
|
3
|
-
import { PublicKey } from
|
|
4
|
-
import os from
|
|
5
|
-
import yargs from
|
|
6
|
-
import { loadKeypair, sendInstructionsOrSquadsV4, } from
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import { dataCreditsKey, init as initDc } from "@helium/data-credits-sdk";
|
|
3
|
+
import { PublicKey } from "@solana/web3.js";
|
|
4
|
+
import os from "os";
|
|
5
|
+
import yargs from "yargs/yargs";
|
|
6
|
+
import { loadKeypair, sendInstructionsOrSquadsV4, } from "./utils";
|
|
7
7
|
export async function run(args = process.argv) {
|
|
8
8
|
const yarg = yargs(args).options({
|
|
9
9
|
wallet: {
|
|
10
|
-
alias:
|
|
11
|
-
describe:
|
|
10
|
+
alias: "k",
|
|
11
|
+
describe: "Anchor wallet keypair",
|
|
12
12
|
default: `${os.homedir()}/.config/solana/id.json`,
|
|
13
13
|
},
|
|
14
14
|
url: {
|
|
15
|
-
alias:
|
|
16
|
-
default:
|
|
17
|
-
describe:
|
|
15
|
+
alias: "u",
|
|
16
|
+
default: "http://127.0.0.1:8899",
|
|
17
|
+
describe: "The solana url",
|
|
18
18
|
},
|
|
19
19
|
dcMint: {
|
|
20
20
|
required: true,
|
|
21
|
-
type:
|
|
22
|
-
describe:
|
|
21
|
+
type: "string",
|
|
22
|
+
describe: "Data credits mint address",
|
|
23
23
|
},
|
|
24
24
|
newAuthority: {
|
|
25
|
-
type:
|
|
25
|
+
type: "string",
|
|
26
26
|
},
|
|
27
27
|
multisig: {
|
|
28
|
-
type:
|
|
29
|
-
describe:
|
|
28
|
+
type: "string",
|
|
29
|
+
describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
|
|
30
30
|
},
|
|
31
31
|
});
|
|
32
32
|
const argv = await yarg.argv;
|
|
@@ -39,7 +39,7 @@ export async function run(args = process.argv) {
|
|
|
39
39
|
const instructions = [];
|
|
40
40
|
const dataCredits = dataCreditsKey(new PublicKey(argv.dcMint))[0];
|
|
41
41
|
const dataCreditsAcc = await program.account.dataCreditsV0.fetch(dataCredits);
|
|
42
|
-
console.log(
|
|
42
|
+
console.log("Data Credits", dataCredits.toBase58());
|
|
43
43
|
console.log(dataCreditsAcc.authority.toBase58());
|
|
44
44
|
instructions.push(await program.methods
|
|
45
45
|
.updateDataCreditsV0({
|
|
@@ -61,6 +61,6 @@ export async function run(args = process.argv) {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
function isNull(vehntDelegated) {
|
|
64
|
-
return vehntDelegated === null || typeof vehntDelegated ==
|
|
64
|
+
return vehntDelegated === null || typeof vehntDelegated == "undefined";
|
|
65
65
|
}
|
|
66
66
|
//# sourceMappingURL=update-data-credits.js.map
|