import "../_dnt.polyfills.js"; import { hex } from "../crypto/mod.js" import { MetaRune } from "../mod.js" import { Rune, RunicArgs, ValueRune } from "../rune/mod.js" import { Chain, ChainRune } from "./ChainRune.js" import { ExtrinsicRune } from "./ExtrinsicRune.js" import { ExtrinsicStatusRune } from "./ExtrinsicStatusRune.js" import { PatternRune } from "./PatternRune.js" export class SignedExtrinsicRune extends PatternRune { static from( chain: ChainRune, ...[value]: RunicArgs ): SignedExtrinsicRune> { return Rune.resolve(value).into(SignedExtrinsicRune, chain) } static fromHex( chain: ChainRune, ...[value]: RunicArgs ): SignedExtrinsicRune> { return this.from(chain, Rune.resolve(value).map(hex.decode)) } call() { return this.chain.$extrinsic .decoded(this.as(SignedExtrinsicRune)) .access("call") .unsafeAs() .into(ExtrinsicRune, this.chain) } hex() { return this.into(ValueRune).map(hex.encode) } sent() { return this .hex() .map((hex) => this.chain.connection.subscribe( "author_submitAndWatchExtrinsic", "author_unwatchExtrinsic", hex, ) ) .into(MetaRune) .asOrtho() .pin(this.chain.connection) .into(ExtrinsicStatusRune, this.chain, this) } }