mirror of
https://github.com/alexgo-io/stacks.js.git
synced 2026-01-12 17:52:41 +08:00
feat: add payload type assertions (#1395)
Adds assertion methods (i.e. type predicates) for the Payload type: `isTokenTransferPayload`, `isContractCallPayload`, `isSmartContractPayload`, `isPoisonPayload`, `isCoinbasePayload` — Thanks to @edu-stx
This commit is contained in:
@@ -18,6 +18,11 @@ export {
|
||||
PoisonPayload,
|
||||
CoinbasePayload,
|
||||
serializePayload,
|
||||
isTokenTransferPayload,
|
||||
isContractCallPayload,
|
||||
isSmartContractPayload,
|
||||
isPoisonPayload,
|
||||
isCoinbasePayload,
|
||||
} from './payload';
|
||||
|
||||
export {
|
||||
|
||||
@@ -24,6 +24,22 @@ export type Payload =
|
||||
| PoisonPayload
|
||||
| CoinbasePayload;
|
||||
|
||||
export function isTokenTransferPayload(p: Payload): p is TokenTransferPayload {
|
||||
return p.payloadType === PayloadType.TokenTransfer;
|
||||
}
|
||||
export function isContractCallPayload(p: Payload): p is ContractCallPayload {
|
||||
return p.payloadType === PayloadType.ContractCall;
|
||||
}
|
||||
export function isSmartContractPayload(p: Payload): p is SmartContractPayload {
|
||||
return p.payloadType === PayloadType.SmartContract;
|
||||
}
|
||||
export function isPoisonPayload(p: Payload): p is PoisonPayload {
|
||||
return p.payloadType === PayloadType.PoisonMicroblock;
|
||||
}
|
||||
export function isCoinbasePayload(p: Payload): p is CoinbasePayload {
|
||||
return p.payloadType === PayloadType.Coinbase;
|
||||
}
|
||||
|
||||
export interface TokenTransferPayload {
|
||||
readonly type: StacksMessageType.Payload;
|
||||
readonly payloadType: PayloadType.TokenTransfer;
|
||||
|
||||
Reference in New Issue
Block a user