- a Go interface is encoded as a top-level Proto3 message. In the example below, the Animal go interface is represented by a Animal proto3 message.
type Animal interface
type Dog struct
type Cat struct
type House struct {
function handleConnCloseTry()
{state, version, counterpartyIdentifier, rootOfTrust} = Get(identifier)
assert(state == OPEN)
assert(identifierCounterparty == counterpartyIdentifier)
assert(verify(roofOfTrust, proofInit, (counterpartyIdentifier, TRYCLOSE)))
state = CLOSED
Set(identifier, (state, version, counterpartyIdentifier, rootOfTrust))
Agree on a plan to set up a testnet using the Cosmos SDK v0.34.0 release, along with mainnet conditions, plus transfer enablement and increased block size, as a testing ground.
After this proposal is passed and after successful testing, and after the software Git hash for v0.34.0 has been finalized, conduct a second proposal which includes the specific Git hash, using expedited rules to determine acceptance.
STACK: | |
%v goroutine 22 [running]: | |
command-line-arguments.timeoutWaitGroup(0xc4200f6b40, 0x7, 0xc4201d1180, 0xc420058bc0, 0x7, 0x7) | |
/gocode/src/github.com/tendermint/tendermint/consensus/reactor_test.go:416 +0x4b8 | |
command-line-arguments.waitForBlockWithUpdatedValsAndValidateIt(0xc4200f6b40, 0x7, 0xc420af8d80, 0xc420adc780, 0x7, 0x7, 0xc420058bc0, 0x7, 0x7) | |
/gocode/src/github.com/tendermint/tendermint/consensus/reactor_test.go:347 +0xe8 | |
command-line-arguments.TestReactorValidatorSetChanges(0xc4200f6b40) | |
/gocode/src/github.com/tendermint/tendermint/consensus/reactor_test.go:231 +0x710 | |
testing.tRunner(0xc4200f6b40, 0x18aa860) |
diff --git a/codec.go b/codec.go | |
index f3f2eaf..35a6c3a 100644 | |
--- a/codec.go | |
+++ b/codec.go | |
@@ -219,7 +219,7 @@ func (cdc *Codec) getTypeInfoFromPrefix_rlock(iinfo *TypeInfo, pb PrefixBytes) ( | |
return | |
} | |
if len(infos) > 1 { | |
- err = fmt.Errorf("Conflicting concrete types registered for %X: e.g. %v and %v.", pb) | |
+ err = fmt.Errorf("Conflicting concrete types registered for %X: e.g. %v and %v.", pb, infos[0].Type, infos[1].Type) |
``` | |
sdk.ChainDecorators( | |
... | |
customTxParseDecorator, | |
auth.Decorator(perms.SetFn("AUTH")), | |
coins.Decorator(perms.Get("AUTH"), perms.SetFn("COINS")), // set ctx.Set(coinstore.coinsPerm, coinstore.NewCoinStore(ms.GetKVStore("main"))) | |
fees.Decorator(perms.Get("COINS")) // ctx.Get(coinstore.coinsPerm).(CoinStore), | |
sketchy.Decorator, // doesn't have authKey | |
... | |
.WithHandler( |
This document is now a Github issue: golang/go#23157
balance = 1.0 # amount of reserve tokens | |
supply = 1000.0 # amount of smart tokens | |
crr = 0.001 # arbitrary reserve ratio | |
def printInfo(): | |
price = computePrice() | |
print "balance", balance, "supply", supply, "price", price | |
def computePrice(): | |
return balance / (supply * crr) |
* state/execution.go | |
- // ApplyBlock executes the block, then commits and updates the mempool atomically | |
becomes... | |
// ApplyBlock executes the block, updates state w/ ABCI responses, then commits and updates the mempool atomically, then saves state | |
- execBlockOnProxyApp should return relevant ABCI responses | |
- Between s.ExecBlock and s.CommitStateUpdateMempool, add a function to save ABI responses, 's.SaveABCIResponses'. Make the ABCI responses a simple field of state.State. Make it a pointer, and have State.Copy() just copy the pointer -- ABCI responses are not mutable. | |
- Move call to 's.SetBlockAndValidators' to between s.SaveABCIResponses and s.CommitStateUpdateMempool. Also move calls to 'updateValidators' and 'IncrementAccum' into s.SetBlockAndValidators. Change s.SetBlockAndValidators to include ABCI responses as arguments. | |
- After s.CommitStateUpdateMempool, save the state. | |
* In state/state.go | |
- Change 'updated at end of ExecBlock' to 'updated at end of SetBlockAndValidators' |
// A Basecoin user account | |
type Account struct { | |
PubKey crypto.PubKey | |
Sequence int | |
Balance Coins | |
} | |
type Coin struct { | |
Denom string // e.g. "BTC", "ATOM" | |
Amount int64 |