everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
57 lines (55 loc) • 2.34 kB
JavaScript
const require_theme = require('../../utils/theme.cjs');
const require_custody_signer = require('./custody-signer.cjs');
const require_delegate_signer = require('./delegate-signer.cjs');
const require_near_signer = require('./near-signer.cjs');
let effect = require("effect");
//#region src/services/auth/signer.ts
/** The strategy dispatch, exported for the train's procedural deps. */
const dispatchSubmit = (input) => input.mode === "custody" ? (async () => {
await require_custody_signer.ensureCustodyBalance(input.custodyWallet);
console.log(` Signing via ${require_theme.colors.cyan(`OutLayer custody wallet ${input.custodyWallet.nearAccountId}`)}`);
return require_custody_signer.submitRegistryWriteCustody({
contract: input.contract,
args: input.args,
custodyWallet: input.custodyWallet,
idempotencyKey: input.idempotencyKey
});
})() : input.mode === "wallet" ? (async () => {
const record = await require_delegate_signer.ensureDelegateKey({
configDir: input.configDir,
account: input.account,
contract: input.contract,
network: input.network,
siteUrl: input.credential.siteUrl
});
return require_delegate_signer.submitRegistryWriteDelegated({
account: input.account,
contract: input.contract,
network: input.network,
args: input.args,
delegatePrivateKey: record.privateKey,
relayEndpoint: `${input.credential.siteUrl}/api/auth/near/relay`,
apiKey: input.credential.apiKey
});
})() : require_near_signer.submitRegistryWrite({
account: input.account,
contract: input.contract,
method: "__fastdata_kv",
args: input.args,
network: input.network,
privateKey: input.privateKey
}, input.strategy);
var SignerService = class SignerService extends effect.Context.Service()("everything-dev/auth/signer") {
static Live = effect.Layer.succeed(this, SignerService.of({
submitRegistryWrite: require_near_signer.submitRegistryWrite,
submitRegistryWriteDelegated: require_delegate_signer.submitRegistryWriteDelegated,
submitRegistryWriteCustody: require_custody_signer.submitRegistryWriteCustody,
ensureDelegateKey: require_delegate_signer.ensureDelegateKey,
ensureCustodyBalance: require_custody_signer.ensureCustodyBalance,
submit: dispatchSubmit
}));
};
//#endregion
exports.SignerService = SignerService;
exports.dispatchSubmit = dispatchSubmit;
//# sourceMappingURL=signer.cjs.map