- add the
Singleton
class (Singleton v1.1 support) - add tests for the
Singleton
class (full coverage) - make
Singleton
available to apps asgreenweb.Singleton
greenweb.sexp
:- add new helper method:
bytesToAtom()
- add the
singletonPuzzle()
andsingletonSolution()
methods - add the
singletonLauncherSolution()
method (the puzzle is the same for all singletons) - add the
payToSingletonPuzzle()
andpayToSingletonSolution()
methods - add more puzzle constants:
SINGLETON_TOP_LAYER_v1_1_PROGRAM_MOD
SINGLETON_TOP_LAYER_v1_1_PROGRAM_MOD_HASH
SINGLETON_LAUNCHER_PROGRAM
SINGLETON_LAUNCHER_PROGRAM_HASH
P2_SINGLETON_PROGRAM_MOD
- add tests
- add new helper method:
greenweb.spend
:- add the
singletonLaunchConditionsAndCoinSol()
method - add the
launchSingleton()
method - add the
useP2SingletonCoinsConditionsAndCoinSol()
method - add tests
- add the
- add more tests to ensure full code coverage (100%)
- update docs to reflect changes
PrivateKeyProvider
: thesignCoinSpends
now accepts a second, optional argument:customGenesisChallenge
- add the
CAT
class (CAT1 support) - add tests for the
CAT
class (full coverage) - create
greenweb.spend
- new method:
bundleCATs()
- new method:
bundleStandardCoins()
- new method:
bundle()
- new method:
mergeSpendBundles()
- add tests
- new method:
greenweb.sexp
:- add the
uncurry()
method - add the
standardCoinSolution()
method - add the
CATPuzzle()
andCATSolution()
methods - rename
P2_DELEGATED_PUZZLE_OR_HIDDEN_PUZZLE_PROGRAM
toP2_DELEGATED_PUZZLE_OR_HIDDEN_PUZZLE_PROGRAM_MOD
- add more puzzle constants:
CAT_PROGRAM_MOD
CAT_PROGRAM_MOD_HASH
GENESIS_BY_COIN_ID_TAIL_MOD
GENESIS_BY_PUZZLE_HASH_TAIL_MOD
EVERYTHING_WITH_SIGNATURE_TAIL_MOD
DELEGATED_TAIL_MOD
- add TAIL-building helper methods:
-
genesisByCoinIdTAIL()
genesisByPuzzleHashTAIL()
everythingWithSignatureTAIL()
delegatedTAIL()
- update tests
- add the
SmartCoin
: BREAKING CHANGES- add
solution
property and thewithSolution()
&isSpendable()
methods - spend no longer requires the solution parameter
- update tests
- add
StandardCoin
: BREAKING CHANGES- rename
publicKey
tosyntheticKey
- use
syntheticKey
andpublicKey
parameters instead ofpublicKey
andisSyntheticKey
- remove the
forceUsePuzzle
parameter - remove the
send()
andmultisend()
methods (replacement:greenweb.spend.bundle()
) - add the
withSyntheticKey()
method - add the
addConditionsToSolution()
method - update tests
- rename
- Add
greenweb.util.hexlify
andgreenweb.util.unhexlify
- Fix
SmartCoin
bug (thanks,polkom21
) - Update docs to reflect changes
- Bump version to 1.1.7
- Add a changelog (
CHANGELOG.md
) - Add
StandardCoin
, which can be used to create standard transactions more easily. - Make the
SmartCoin
class 'immutable'.setParentCoinInfo
& co. are nowwithParentCoinInfo
& co. and return a new class instance. Also added thecopyWith
method. - Add
greenweb.util.key
- a collection of methods to help with key generation and derivation. Most important functions include ,masterSkToWalletSk()
,masterSkToWalletSkUnhardened()
,masterPkToWalletPk()
, as well ashexToPrivateKey()
,hexToPublicKey()
,privateKeyToHex()
, andpublicKeyToHex()
. - Add
greenweb.util.key.mnemonic
, which can be used to convert bytes from and to mnemonic strings, as well as mnemonic strings to seeds and private keys. New functions:bytesToMnemonic()
,bytesFromMnemonic()
,mnemonicToSeed()
,privateKeyFromMnemonic()
. XCHModule
: add thecreateProvider()
method, which can be used to easily create aMultiProvider
- Add
greenweb.util.key.impl
, which exposes more key derivation functions such asmasterSkToFarmerSk()
andmasterSkToPoolingAuthenticationSk()
SExpUtil
: Use Chia'ssha256tree_module
clvm program.SExpUtil
: Add thecurry()
functionSmartCoin
: Add thecurry()
function, which returns a new class instanceSExpUtil
: Expose more Chia wallet puzzles (P2_DELEGATED_PUZZLE_OR_HIDDEN_PUZZLE_PROGRAM
,DEFAULT_HIDDEN_PUZZLE_PROGRAM
,DEFAULT_HIDDEN_PUZZLE_HASH
,CALCULATE_SYNTHETIC_PUBLIC_KEY_PROGRAM
) and exposecalculateSyntheticPublicKey()
andstandardCoinPuzzle()
, which are used byStandardCoin
Provider
: Modify return types of thetranfer()
,transferCAT()
, andacceptOffer()
methods fromPromise<boolean>
toPromise<Optional<SpendBundle>>
- Create
greenweb.util.goby
, which can be used to parse Goby'sSpendBundle
,CoinSpend
, andCoin
objects - Expose
SyntheticKeyUtil
viagreenweb.util.key.synthetic
; functions:calculateSyntheticOffset()
andcalculateSyntheticSecretKey()
. - Tests: 100% coverage