api: Document StateSearchMsg replaced message behavior
This commit is contained in:
parent
73eabc310f
commit
4fb4313ee7
@ -404,13 +404,55 @@ type FullNode interface {
|
|||||||
// StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed
|
// StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed
|
||||||
StateSearchMsg(context.Context, cid.Cid) (*MsgLookup, error)
|
StateSearchMsg(context.Context, cid.Cid) (*MsgLookup, error)
|
||||||
// StateSearchMsgLimited looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
// StateSearchMsgLimited looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
||||||
|
//
|
||||||
|
// NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
// a MsgLookup for the replacing message - the MsgLookup.Message will be a different
|
||||||
|
// CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
|
||||||
|
// result of the execution of the replacing message.
|
||||||
|
//
|
||||||
|
// If the caller wants to ensure that exactly the requested message was executed,
|
||||||
|
// they MUST check that MsgLookup.Message is equal to the provided 'cid'.
|
||||||
|
// Without this check both the requested and original message may appear as
|
||||||
|
// successfully executed on-chain, which may look like a double-spend.
|
||||||
|
//
|
||||||
|
// A replacing message is a message with a different CID, any of Gas values, and
|
||||||
|
// different signature, but with all other parameters matching (source/destination,
|
||||||
|
// nonce, params, etc.)
|
||||||
StateSearchMsgLimited(ctx context.Context, msg cid.Cid, limit abi.ChainEpoch) (*MsgLookup, error)
|
StateSearchMsgLimited(ctx context.Context, msg cid.Cid, limit abi.ChainEpoch) (*MsgLookup, error)
|
||||||
// StateWaitMsg looks back in the chain for a message. If not found, it blocks until the
|
// StateWaitMsg looks back in the chain for a message. If not found, it blocks until the
|
||||||
// message arrives on chain, and gets to the indicated confidence depth.
|
// message arrives on chain, and gets to the indicated confidence depth.
|
||||||
|
//
|
||||||
|
// NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
// a MsgLookup for the replacing message - the MsgLookup.Message will be a different
|
||||||
|
// CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
|
||||||
|
// result of the execution of the replacing message.
|
||||||
|
//
|
||||||
|
// If the caller wants to ensure that exactly the requested message was executed,
|
||||||
|
// they MUST check that MsgLookup.Message is equal to the provided 'cid'.
|
||||||
|
// Without this check both the requested and original message may appear as
|
||||||
|
// successfully executed on-chain, which may look like a double-spend.
|
||||||
|
//
|
||||||
|
// A replacing message is a message with a different CID, any of Gas values, and
|
||||||
|
// different signature, but with all other parameters matching (source/destination,
|
||||||
|
// nonce, params, etc.)
|
||||||
StateWaitMsg(ctx context.Context, cid cid.Cid, confidence uint64) (*MsgLookup, error)
|
StateWaitMsg(ctx context.Context, cid cid.Cid, confidence uint64) (*MsgLookup, error)
|
||||||
// StateWaitMsgLimited looks back up to limit epochs in the chain for a message.
|
// StateWaitMsgLimited looks back up to limit epochs in the chain for a message.
|
||||||
// If not found, it blocks until the message arrives on chain, and gets to the
|
// If not found, it blocks until the message arrives on chain, and gets to the
|
||||||
// indicated confidence depth.
|
// indicated confidence depth.
|
||||||
|
//
|
||||||
|
// NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
// a MsgLookup for the replacing message - the MsgLookup.Message will be a different
|
||||||
|
// CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
|
||||||
|
// result of the execution of the replacing message.
|
||||||
|
//
|
||||||
|
// If the caller wants to ensure that exactly the requested message was executed,
|
||||||
|
// they MUST check that MsgLookup.Message is equal to the provided 'cid'.
|
||||||
|
// Without this check both the requested and original message may appear as
|
||||||
|
// successfully executed on-chain, which may look like a double-spend.
|
||||||
|
//
|
||||||
|
// A replacing message is a message with a different CID, any of Gas values, and
|
||||||
|
// different signature, but with all other parameters matching (source/destination,
|
||||||
|
// nonce, params, etc.)
|
||||||
StateWaitMsgLimited(ctx context.Context, cid cid.Cid, confidence uint64, limit abi.ChainEpoch) (*MsgLookup, error)
|
StateWaitMsgLimited(ctx context.Context, cid cid.Cid, confidence uint64, limit abi.ChainEpoch) (*MsgLookup, error)
|
||||||
// StateListMiners returns the addresses of every miner that has claimed power in the Power Actor
|
// StateListMiners returns the addresses of every miner that has claimed power in the Power Actor
|
||||||
StateListMiners(context.Context, types.TipSetKey) ([]address.Address, error)
|
StateListMiners(context.Context, types.TipSetKey) ([]address.Address, error)
|
||||||
@ -431,7 +473,13 @@ type FullNode interface {
|
|||||||
// StateChangedActors returns all the actors whose states change between the two given state CIDs
|
// StateChangedActors returns all the actors whose states change between the two given state CIDs
|
||||||
// TODO: Should this take tipset keys instead?
|
// TODO: Should this take tipset keys instead?
|
||||||
StateChangedActors(context.Context, cid.Cid, cid.Cid) (map[string]types.Actor, error)
|
StateChangedActors(context.Context, cid.Cid, cid.Cid) (map[string]types.Actor, error)
|
||||||
// StateGetReceipt returns the message receipt for the given message
|
// StateGetReceipt returns the message receipt for the given message or for a
|
||||||
|
// matching gas-repriced replacing message
|
||||||
|
//
|
||||||
|
// NOTE: If the requested message was replaced, this method will return the receipt
|
||||||
|
// for the replacing message - if the caller needs the receipt for exactly the
|
||||||
|
// requested message, use StateSearchMsg().Receipt, and check that MsgLookup.Message
|
||||||
|
// is matching the requseted CID
|
||||||
StateGetReceipt(context.Context, cid.Cid, types.TipSetKey) (*types.MessageReceipt, error)
|
StateGetReceipt(context.Context, cid.Cid, types.TipSetKey) (*types.MessageReceipt, error)
|
||||||
// StateMinerSectorCount returns the number of sectors in a miner's sector set and proving set
|
// StateMinerSectorCount returns the number of sectors in a miner's sector set and proving set
|
||||||
StateMinerSectorCount(context.Context, address.Address, types.TipSetKey) (MinerSectors, error)
|
StateMinerSectorCount(context.Context, address.Address, types.TipSetKey) (MinerSectors, error)
|
||||||
|
@ -3686,7 +3686,13 @@ Response:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### StateGetReceipt
|
### StateGetReceipt
|
||||||
StateGetReceipt returns the message receipt for the given message
|
StateGetReceipt returns the message receipt for the given message or for a
|
||||||
|
matching gas-repriced replacing message
|
||||||
|
|
||||||
|
NOTE: If the requested message was replaced, this method will return the receipt
|
||||||
|
for the replacing message - if the caller needs the receipt for exactly the
|
||||||
|
requested message, use StateSearchMsg().Receipt, and check that MsgLookup.Message
|
||||||
|
is matching the requseted CID
|
||||||
|
|
||||||
|
|
||||||
Perms: read
|
Perms: read
|
||||||
@ -4583,6 +4589,20 @@ Response:
|
|||||||
### StateSearchMsgLimited
|
### StateSearchMsgLimited
|
||||||
StateSearchMsgLimited looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
StateSearchMsgLimited looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
|
||||||
|
|
||||||
|
NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
a MsgLookup for the replacing message - the MsgLookup.Message will be a different
|
||||||
|
CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
|
||||||
|
result of the execution of the replacing message.
|
||||||
|
|
||||||
|
If the caller wants to ensure that exactly the requested message was executed,
|
||||||
|
they MUST check that MsgLookup.Message is equal to the provided 'cid'.
|
||||||
|
Without this check both the requested and original message may appear as
|
||||||
|
successfully executed on-chain, which may look like a double-spend.
|
||||||
|
|
||||||
|
A replacing message is a message with a different CID, any of Gas values, and
|
||||||
|
different signature, but with all other parameters matching (source/destination,
|
||||||
|
nonce, params, etc.)
|
||||||
|
|
||||||
|
|
||||||
Perms: read
|
Perms: read
|
||||||
|
|
||||||
@ -4877,6 +4897,20 @@ Response: `"0"`
|
|||||||
StateWaitMsg looks back in the chain for a message. If not found, it blocks until the
|
StateWaitMsg looks back in the chain for a message. If not found, it blocks until the
|
||||||
message arrives on chain, and gets to the indicated confidence depth.
|
message arrives on chain, and gets to the indicated confidence depth.
|
||||||
|
|
||||||
|
NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
a MsgLookup for the replacing message - the MsgLookup.Message will be a different
|
||||||
|
CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
|
||||||
|
result of the execution of the replacing message.
|
||||||
|
|
||||||
|
If the caller wants to ensure that exactly the requested message was executed,
|
||||||
|
they MUST check that MsgLookup.Message is equal to the provided 'cid'.
|
||||||
|
Without this check both the requested and original message may appear as
|
||||||
|
successfully executed on-chain, which may look like a double-spend.
|
||||||
|
|
||||||
|
A replacing message is a message with a different CID, any of Gas values, and
|
||||||
|
different signature, but with all other parameters matching (source/destination,
|
||||||
|
nonce, params, etc.)
|
||||||
|
|
||||||
|
|
||||||
Perms: read
|
Perms: read
|
||||||
|
|
||||||
@ -4919,6 +4953,20 @@ StateWaitMsgLimited looks back up to limit epochs in the chain for a message.
|
|||||||
If not found, it blocks until the message arrives on chain, and gets to the
|
If not found, it blocks until the message arrives on chain, and gets to the
|
||||||
indicated confidence depth.
|
indicated confidence depth.
|
||||||
|
|
||||||
|
NOTE: If a replacing message is found on chain, this method will return
|
||||||
|
a MsgLookup for the replacing message - the MsgLookup.Message will be a different
|
||||||
|
CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
|
||||||
|
result of the execution of the replacing message.
|
||||||
|
|
||||||
|
If the caller wants to ensure that exactly the requested message was executed,
|
||||||
|
they MUST check that MsgLookup.Message is equal to the provided 'cid'.
|
||||||
|
Without this check both the requested and original message may appear as
|
||||||
|
successfully executed on-chain, which may look like a double-spend.
|
||||||
|
|
||||||
|
A replacing message is a message with a different CID, any of Gas values, and
|
||||||
|
different signature, but with all other parameters matching (source/destination,
|
||||||
|
nonce, params, etc.)
|
||||||
|
|
||||||
|
|
||||||
Perms: read
|
Perms: read
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user