Changelog
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
14.1.0 (2025-04-29)
Features
- account: add sync versions of AccountMnemonicFactory methods (1d60eac)
- account: detect MetaMask over EIP-6963 (9e74b53)
- account: experimental support of Ledger app v1.0.0 (0116d74)
- account: init AccountMnemonicFactory by seed (fe74643)
- account: add
unsafeSign, deprecatesign(b0288cc) - add
ensureEncoded,isEncoded; deprecateisAddressValid(5a11dc3) - add
hashMessage, deprecatemessageToHash(5306e6b) - add
verifyMessageSignature, deprecateverifyMessage(f862b67) - add
verifySignature, deprecateverify(a4a0232) - aens: add
getAuctionStateto Name (4150890) - aens: add
idgetter to Name (8700534) - aens: add
isName, deprecateisNameValid(88c242a) - aens: allow to pass salt between Name while claiming (c8dc8cc)
- node: add Hyperchain endpoints (05fcdfd)
- node: ignore consensus protocol version if
ignoreVersionset (e2f83d6) - node: warn if incompatible version when
ignoreVersionset (2d6c59d) - oracle: add
getQueriesto OracleBase (0af61da) - contract: show function name along its hash if missed in bytecode (2727713)
Bug Fixes
- account: implicitly connect to Aeternity snap, clean up flow (e347d25)
- aens:
computeAuctionEndBlockreturns value according to Ceres (3b2f20c) - aens: handle
highestBidas BigInt in auction details (847bfa6) - aens: make
getState's options override instance options (2e0d672) - aens: mark
started_atas required in auction details (fba1012) - chain: set correct poll interval on hyperchain (0454c62)
- contract: type checking of contract call return value (4c8926b)
- middleware: generate api based on 1.97.1 (359c17a)
- node,middleware: more strict enum handling (d3c5f0f)
- tx-builder: replace OracleResponseTx with OracleRespondTx (19ec9b3)
- wallet: don't require
debugflag in BrowserRuntimeConnection (997db99)
14.0.0 (2024-10-20)
⚠ BREAKING CHANGES
Please check out the migration guide and a tool to convert to convert secret keys.
- CommonJS bundles have cjs extension instead js
- aepp: AeSdkWallet requires
onAskToSelectNetworkconstructor option - tx-builder:
ChannelClientReconnectTxremoved - node: Node returns time in KeyBlock and MicroBlockHeader as Date
- middleware: require 1.81.0
- sdk requires nodejs@18.19 or newer
- sdk types requires TypeScript@4.8 or newer
- account: Save HD wallets methods removed
- account:
sign,signMessageremoved - account:
isValidKeypairremoved - account:
getAddressFromPrivremoved - account:
generateKeyPairremoved - account:
generateKeyPairFromSecretremoved recover,dumpremoved (AEX-3 keystore implementation)- node,compiler,middleware: $host is readonly in generated APIs
- account: MemoryAccount accepts secret key as sk_-prefixed string
- account:
generateKeyPairreturns secretKey encoded as sk_-prefixed string - aepp: RpcBroadcastError not exported anymore
NAME_BID_MAX_LENGTHnot exported anymore- contract:
encodeFateValue,decodeFateValuenot exported anymore - Iris is not supported
- middleware: sdk requires middleware@1.77.5 and above
- node: sdk requires aeternity node 7.1.0 and above
- account: AccountBase inheritors required to implement
signTypedData,signDelegation signDelegationToContractremovedsignNameDelegationToContractremovedsignAllNamesDelegationToContractremovedsignOracleQueryDelegationToContractremoved- wallet,aepp: delegations used in Iris removed from aepp-wallet connection
createDelegationSignatureremoved- compiler: CompilerCli uses aesophia@8 by default
- compiler: CompilerCli8 removed
- compiler: CompilerCli and CompilerHttp requires aesophia@8
- aens: aens* methods removed
- tx-builder:
NAME_*TTL,CLIENT_TTLnot exported anymore - oracle:
pollQueriesdon't return responded queries by default - oracle:
pollForQueriesmethod removed - oracle:
extendOracleTtlmethod removed - oracle:
respondToQuerymethod removed - oracle:
getOracleObjectmethod removed - oracle:
registerOraclemethod removed - oracle:
getQueryObjectremoved - oracle:
postQueryToOracle,pollForQueryResponsemethods removed - tx-builder:
ORACLE_TTL,QUERY_TTL,RESPONSE_TTLnot exported anymore - tx-builder:
buildTx/unpackTxworks only with transactions - tx-builder:
Taginclude only transactions - tx-builder:
buildTxdoesn't acceptprefixanymore - contract:
AeSdk:initializeContractremoved
Features
- account: add
ensureReadymethod to AccountLedgerFactory (5047e43) - account: add AccountMetamaskFactory (e9f9694)
- account: add AccountMnemonicFactory (c785521)
- account: encode secret key as sk_-prefixed string (b94e198)
- account: expose
secretKeyin MemoryAccount (d4320e6) - aepp: add api to ask wallet to select network (9871c91)
- aepp: extract class to connect to wallet from AeSdkAepp (c3570ac)
- middleware: add
requestByPathmethod (ee5ac0c) - middleware: allow navigate to next/prev pages (b89cf5b)
- middleware: mark as stable api (e25b06d)
- middleware: prefixed types provided by OpenApi instead of strings (0b16a32)
- middleware: return time as Date instance (e48ffd1)
- middleware: switch to v3 api (b0015c0)
- node: return time as Date instance (e0e33ea)
- oracle: add
includeRespondedoption to Oracle:pollQueries (78a07ab) - oracle: add Oracle:handleQueries method (03c77c0)
Bug Fixes
- account: improve Account:publicKey type (1652a4b)
- aens: validate minus chars in name as node does (329de9e)
- aepp: don't require subscription to request addresses (2b247ff)
- channel:
channelIdtype, more accurate types (e572fae) - channel: accept
hostonly if initiator (a7d4dde) - channel: reestablish flow (1f4a0c1)
- channel: remove
statePasswordunsupported on node side (5cec07b) - channel: remove unsupported ways to reopen channel by a transaction (f3746a1)
- middleware: accurate coin amounts (00a4f3e)
- middleware: word casing in activity types (f1fbb29)
- node,compiler,middleware: mark $host as readonly (9e47d5c)
- node: avoid complex types by code replacements instead generics (4f531b1)
- oracle: emit unhandled rejection instead printing error (3a57665)
- tx-builder: count amount in execution cost when spend to yourself (5153649)
- tx-builder: remove unused
ChannelClientReconnectTx(e6e954a) - wallet: generate random string instead using external uuid dep (f8640d4)
- wallet: origin if opened over file:// (cordova) (d529f30)
Commits with breaking changes
- account: make
signTypedData,signDelegationabstract (f2c6d1d) - account: remove
generateKeyPair(18c6789) - account: remove
generateKeyPairFromSecret(2cbaa7c) - account: remove
getAddressFromPriv(9446639) - account: remove
isValidKeypair(512385a) - account: remove
sign,signMessage(30077bc) - account: remove save HD wallet functions (10e7c89)
- aens: replace aens methods with Name class (956daac)
- aepp: remove RpcBroadcastError (1f0b3bb)
- compiler: drop aesophia@7 support (df0e050)
- contract: don't depend on Contract in AeSdk (00b4f86)
- contract: remove
encodeFateValue,decodeFateValue(c521597) - drop Iris support (61554b3)
- drop typescript@4.1 support (4008d12)
- middleware: require 1.77.5 (08783fd)
- middleware: require 1.81.0 (3243768)
- node: require 7.1.0 (0dd3b49)
- oracle: add Oracle class (54ee614)
- oracle: add OracleClient class (0293fe4)
- oracle: replace
getQueryObjectwith OracleBase (bcab498) - remove
createDelegationSignature(651b6ec) - remove
NAME_BID_MAX_LENGTH(83797a4) - remove
signAllNamesDelegationToContract(60a729d) - remove
signDelegationToContract(cd495a6) - remove
signNameDelegationToContract(9ab8f41) - remove
signOracleQueryDelegationToContract(f948492) - remove keystore implementation (5e64ec9)
- rename legacy bundles to cjs (46cd27b)
- require nodejs@18.19 or newer (84d868c)
- tx-builder: extract entries into separate builder (d5fde18)
- tx-builder: remove deprecated constant exports (2ecf0f4)
- tx-builder: remove deprecated constant exports (2342aa6)
- update @types/node, drop TS below 4.8 (9d36e6c)
- wallet,aepp: remove
delegationToContract.signmethod (c4d62b0)
13.3.3 (2024-07-17)
Bug Fixes
- account: improve Account:publicKey type (0524553)
- aens: validate minus chars in name as node does (15063c6)
- aepp: don't require subscription to request addresses (8ce976e)
- channel:
channelIdtype, more accurate types (2b064d8) - channel: accept
hostonly if initiator (cfdfd72) - channel: remove
statePasswordunsupported on node side (74db9bb) - don't allow upgrades
@azure/core-rest-pipeline(03058d4) - don't allow upgrades
@ledgerhq/hw-transportto 6.31.0 (1ef43e6) - wallet: origin if opened over file:// (cordova) (4ee44be)
13.3.2 (2024-04-22)
Bug Fixes
- contract: detect if ACI doesn't match called contract (8c4287f)
- ttl validation error in dev mode by reducing polling intervals (6f8cdc9)
13.3.1 (2024-04-19)
Bug Fixes
- node: mark as compatible with 7.0.0 (562eda9)
13.3.0 (2024-04-08)
⚠ Ceres and aehopsia@8 compatibility not stable, since they are not officially released yet
Features
- accept multiple encodings in
isAddressValid, add TS asserts (2c21139) - add
getContextmethod to AeSdk (04508d0) - aens: support update with raw pointers (db2659a)
- aepp,wallet: allow raw data sign (7d0136d)
- chain: add
cacheoption togetHeight(c7d0955) - compiler: add CompilerCli8 class (29f1cd3)
- compiler: provide compilation warnings (d0ec012)
- compiler: update cli and http compilers to 7.4.0 (2041d8b)
- contract: resolve names on node side in Ceres (474f0fd)
- contract: support all names delegation to contract (92dae86)
- jwt utilities (c747ce6)
- node: add param indicating retry (6f0dbd8)
- node: show error code if available (2cce91d)
- spend to payable contract (7621716)
- support new delegation format in Ceres (786e954)
- tx-builder: get actual gas price from node (09d19bf)
- tx-builder: pick
queryFeefrom the node if not provided (ca495c8) - tx-builder: reject used accounts in GaAttachTx in Ceres (88b1d5d)
- tx-builder: validate
nameTtlin NameUpdateTx (bca877e)
Bug Fixes
- aens: make
extendTtlargument optional (028876f) - aens: reduce default client ttl to one hour (daf7fa0)
- chain: poll till ttl if defined to ensure tx can't be mined (0751244)
- contract: build address by signed tx (60a283b)
- contract: don't duplicate NoSuchContractFunctionError message (2f3bba5)
- improve error message when no wrapped value (054bc89)
- node,middleware,compiler: version check if deployed at path (450296e)
- node,middleware: remove duplicate retry policy (f6470a2)
- node: add missed conversion of
difficultyandhashrateto number (271ff5e) - node: don't remember failed version request (fba0e79)
- node: show correct error message if body is missed (ed10482)
- node: show correct error message if ECONNREFUSED (ef347a1)
- tx-builder: don't accept ttl equal to block height (d9cde12)
- tx-builder: don't estimate gas for non-transactions (f72167a)
- tx-builder: limit ttl to 3 in case tx built internally (08d14c2)
- tx-builder: remove invalid oracle tx type in validator (78e7c48)
13.2.2 (2023-09-20)
Bug Fixes
- use proper vm version in Ceres (bcaa5cf)
- aepp,wallet: connect to web-extension if opened over file:/// (da6a025)
- aepp: use complete type of WalletInfo object (eeba565)
- contract: don't mark contract as deployed if tx failed (cc4222d)
- contract: use current nonce in static calls (758bdfc)
- node: don't retry 500 code responses (696e7db)
- node: throw clear error message if unsupported protocol (21dfe34)
- node: uncatchable exception if request failed in queue (dec62a4)
- typos in error messages and docs (5c84671)
13.2.1 (2023-07-28)
Bug Fixes
- use
Numberinstead of unary plus for BigInt (33fcfb4)
13.2.0 (2023-07-28)
Features
- account: add methods to generate delegation signatures (18bdf5a)
- aepp,wallet: support delegation signatures (fd0dc43)
Bug Fixes
- account: add implementation of
signTypedDatain AccountBase (fc6e42f) - wallet: don't ask to confirm unsubscription (e2ffc25)
- wallet: don't require to be subscribed to request addresses (36920b4)
- wallet: return accounts according to subscription (fa900c0)
13.1.0 (2023-07-07)
Features
- account: support signing typed data (e5acdd4)
- aens: add
ensureNamehelper to check names (f1322b1) - aens: support unicode names claim (f837e90)
- aepp,wallet: support inner transaction signing (725782b)
- aepp,wallet: support signing typed data (78ce3b2)
- compiler: add
generateAci,generateAciBySourceCode(981bcf2) - middleware: generate autorest wrapper (bd08a08)
- middleware: implement MiddlewareSubscriber (b51b0a3)
Bug Fixes
onAccountoption in AeSdkMethods (290758b)- aens: more accurate name check in
isNameValid(b62dcc6) - aepp: call
onDetectedalways withnewWallet(80d97fa) - contract: use fallback account if
onAccountnot provided (9033cd7) - converting proxied options to JSON (efebbd1)
- provide types in exports field of package.json (dbd19e7)
- reject prefixes other than provided in isAddressValid (9462add)
- tx-builder:
buildTxproduces the same type asunpackTxaccepts (d3d6c88) - tx-builder: decode tag in entry error message (db0d96f)
- wallet: emit internal error if something broke while broadcast (332d1b5)
- wallet: throw reason of internal error to handle it in wallet (276699b)
13.0.1 (2023-04-24)
Bug Fixes
13.0.0 (2023-04-06)
⚠ BREAKING CHANGES
Please check out migration guide, and release notes for the beta release.
- aepp: All wallet provided nodes have the same name
Specified in
nameoption ofconnectToWallet. - aepp: Select option removed from connectToWallet
If you are using
connectNodethen the current node would always be the same as wallet provides.
Features
Bug Fixes
- aepp: use the same name for all nodes provided by wallet (0ece313)
- chain: reduce /2 number of blocks to wait before throwing timeout (44de66b)
-
contract: add missed
sourceCodePathcases (5be4cd9) -
aepp: remove select option in connectToWallet (adf9c3e)
13.0.0-beta.0 (2023-03-01)
⚠ BREAKING CHANGES
Wallet
onSign,onMessageSigncallbacks were removed on the wallet side
Contract
- ACI format used the same as returned by aesophia_cli
createAensDelegationSignature,createOracleDelegationSignaturereplaced withcreateDelegationSignatureparamsargument in$deployand$callis requiredAeSdk.getContractInstancerenamed toAeSdk.initializeContractgetContractInstancefunction replaced with Contract class- Contract methods accessible on the instance itself
contract.methods.<name>.get,sendremovedcontract.bytecode,sourceCodemoved tocontract.$optionscontract.calldatarenamed tocontract._calldatacontract.deployInforemovedcontract.optionsrenamed tocontract.$optionscontract.decodeEventsrenamed tocontract.$decodeEventscontract.callrenamed tocontract.$callcontract.compilerenamed tocontract.$compilecontract.deployrenamed tocontract.$deploy- use
sourceCodeinstead ofsource getContractInstanceacceptsaddressinstead ofcontractAddressprepareTxParams,getVmVersionare not exported anymoreisGAmethod removed
Transaction builder
- StateTrees fields decoded as objects mapping key to decoded entry instead of internals
- The content of Tag.*Mtree entries decoded and moved to
payloadfield - TX_SCHEMA, TxParamsCommon, TxSchema, TxTypeSchemas not exported anymore
- AeSdk.buildTx accepts
tagin options TX_TTLnot exported anymore- sync
buildTxacceptsdenominationin the first argument - Enum
FIELD_TYPESis not exported anymore - Not able to build/unpack CompilerSophia entry (tag 70)
- Enums
PROTOCOL_VM_ABI, interfaceCtVersionnot exported anymore - Enums
VM_VERSIONS,ABI_VERSIONS,PROTOCOL_VERSIONSrenamed stateHashof Channel entry decoded asst_-prefixed string instead of hexkeyof MtreeValue entry decoded as a buffer instead of a hex- SpendTx
payloaddoesn't accept arbitrary strings anymore unpackTxreturn an object of transaction parametersunpackTxdoesn't returnrlpEncodedanymoreverifyTransactiondoesn't accept parent tx types anymore- TxBuilder accepts and returns
poifield unpacked as TreesPoi buildTxaccepts transaction type and version in the first argumentbuildTxreturn string instead of objectbuildTxdoesn't returntxObjectanymorebuildTxdoesn't returnbinaryanymorebuildTxdoesn't returnrlpEncodedanymorebuildTxdoesn't acceptexcludeKeysoption anymore- Use
versioninstead ofVSN,vsninunpackTx,buildTx txTypeproperty ofunpackTxremovedgetmethod of MPTree accepts and returns typed valueswriteIntfunction removedreturnTypeof contract call result structure is a value of CallReturnType enumwriteId,readIdfunctions removedreadPointers,buildPointersfunctions removedformatSaltfunction removedvalidateParams,unpackRawTxfunctions removedAMOUNTconstant removed
Compiler
- Methods of
CompilerHttpmoved toapiproperty Compilerexport renamed toCompilerHttp- removed
compilerUrl,setCompilerUrl - Dropped compatibility with aesophia_http below 7.1.1, aesophia_cli below 7.0.1
Account
createGeneralizedAccountacceptssourceCodein optionscreateMetaTxremovedAccountRpcconstructor accepts arguments one by oneAccountMemoryrequiresnetworkIdinsignTransactionAccountBasesimplifiedaddressinAccountBaseis a property- MemoryAccount accepts only secretKey
- MemoryAccount is not compatible with GA
Node
urlproperty ofNoderemoved
Oracle
QUERY_FEEis not exported anymore- Oracles created without queryFee by default
- AeSdk:extendOracleTtl, AeSdk:respondToQuery doesn't accept oracleId
onQuerycallback ofpollForQueries,oracle.pollQueriesaccepts a single query
Chain
sendinlined intosendTransaction
AENS
heightremoved from the output ofaensPreclaim
Channel
- Channel:state returns unpacked entries
- All channel events emitted in snakeCase
- Channel:poi returns unpacked TreesPoi
Other
onAccountdoesn't accept keypairbigNumberToByteArrayremovedstr2buffunction removedgetAddressFromPrivdoesn't accept private key as base64-encoded or raw stringisValidKeypairdoesn't accept public key as base64-encoded stringbytesToHexfunction removedhexToBytesfunction removed- rename umd export to
Aeternity - Subpaths imports of SDK are not allowed
- Removed
getNetworkIdfromAeSdkBase addressa getter in AeSdkBaseaddAccountis a sync functionverifyMessageremoved from accounts and AeSdkBaseverifyandverifyMessageaccepts address instead of hex string or Uint8Array- node@12 not supported
removeAccountthrows an error if the account is not foundsignMessagealways returnsUint8ArrayencryptKey,decryptKeyare not exported anymoresha256hashnot exported anymoreheightmethod removedsignUsingGAmethod removedPOINTER_KEY_BY_PREFIXremovedID_TAG_PREFIX,PREFIX_ID_TAG,ID_TAGremovedTX_TYPEremoved.GAS_MAXremovedcalculateMinFeeremovedsalt,createSaltremovedPointerremoved
Features
- account: accept async function in
authDataof AccountGeneralized (c1066c5) - account: override
fee,gasPriceof GaMetaTx inauthData(177a100) - chain:
getBalanceaccepts OracleAddress (df2e5e3) - channel: emit
newContractevent (8d71bba) - contract: add ability to compile by path in node.js (74867b7)
- contract: add CompilerCli (de56cbe)
- contract: allow to create GA using
sourceCodePath,bytecode(9410af2) - contract: decode emitted events of contract deploy (bf46eb6)
- contract: don't require compiler (d2f9fa8)
- contract: extract $getCallResultByTxHash method (0a8d138)
- contract: support unit type (b5bf7a8)
- node: exponential retry of requests on failure (aadec0d)
- setup downleveled types for typescript@4.2 and above (fd2b97f)
- support CERES protocol version (8960a91)
- tx-builder: deserialisation of
channels.get.offchain_state(ed31aff) - tx-builder: implement buildAuthTxHashByGaMetaTx (bd656c2)
- tx-builder: implement getExecutionCost and related functions (33085c2)
- tx-builder: implement getTransactionSignerAddress function (2360cd2)
- tx-builder: support incomplete MPTrees (115bcf5)
- tx-builder: support recursive types (4f4dff6)
- tx-builder: typed decoding of MPTrees (da1e35a)
- tx-builder: unpack
poifield of channel CloseSolo Slash tx (4a49b03) - tx-builder: validate address and enum fields in runtime (5898b3a)
- account: add
generatemethod to MemoryAccount (e0fa641) - add Ledger HW support (587e058)
- ensure that used correct account type while signing transaction (46e8db3)
- extract AeSdkMethods class with minimal interface (fd0fe76)
- restore the ability to specify an array of accounts in AeSdk constructor (aba9b9f)
Bug Fixes
- aepp: don't require connection to wallet to make a static call (bab9eee)
- channel: increase pong timeout 3 times (to 15 seconds) (d03ec1c)
- channel: return type of
state(3c34457) - compatibility with @vue/cli@4 (41521ff)
- contract: avoid
anyin arguments (70453f1) - contract: don't mark
eventfield as required in Aci (2c44cd1) - contract: dry-run accept
topas number (ebe5986) - contract: static call at specific height (99441dd)
- contract: type of FunctionAci (0929304)
- node: don't throw unhandled exception if version check failed (d4e5250)
- oracle: ask height right before querying oracle to avoid not found (42706ca)
- oracle: import
getHeightinstead of using a missing context (565c827) - tx-builder: calculation of
gasLimitMax(0fb8a37) - tx-builder: don't check consensus protocol if sdk knows a single (6b8888b)
- tx-builder: drop nonce validator to avoid false positive (a669aae)
- tx-builder: ensure that TX RLP have the same length as schema (c042d73)
- tx-builder: field DelegateIds in ChannelCreateTx (405243c)
- tx-builder: provide proper type depending on checks being done (3cff062)
- wallet: don't use Event.hasListeners that is not available in FF (05c0424)
- wallet: explicitly convert error to JSON to don't pass stack trace (3948153)
- wallet: provide origin on webext side instead of empty string (662d8d0)
- channel:
logfield type in result ofgetContractCall(600d9e7) - channel: add missed types for
minimumDepth,fee,gasPrice(a14ddfc) - channel: emit incoming message handler error instead of printing (d71efad)
- channel: messageQueue type (1197ec4)
- contract: don't throw ambiguous error if event types the same (669c326)
- contract: don't throw error if already compiled (dcedb61)
- contract: more specific error on calling without address (5c5a241)
- don't swallow errors without checking their type and message (7456b0f)
- don't use any in AeSdkBase constructor options (51fd3ae)
- sync options between Contract and AeSdkBase (6acebaf)
- tx-builder: avoid extra requests in tx validator (03c77e5)
- tx-builder: mark
nameTtlasshortUIntinNameUpdateTx(3bfbb52) - tx-builder: type of binary fields (e979224)
- use crypto random to generate salt (88dcf38)
13.0.0-alpha.1 (2023-01-13)
13.0.0-alpha.0 (2022-12-08)
12.1.3 (2022-08-24)
Bug Fixes
- deps: update calldata to 1.3.0 (3eacc29)
12.1.2 (2022-08-09)
Bug Fixes
12.1.1 (2022-07-28)
Bug Fixes
- export and implementation of calculateMinFee (cee0f7c)
12.1.0 (2022-07-28)
Features
- export Encoding enum (7ebc67f)
Bug Fixes
- ability to use sdk without nodes (8fa29e4)
- aepp,wallet: avoid invalid message errors using third-party tools (4d4d117)
- AeSdkBase: don't mutate the options argument (a574b7f)
- awaitHeight: allow to wait for arbitrary number of blocks (918a885)
- channel: handle round as number (97d7984)
- getNetworkId throw proper error without node (3d9e73c)
- move type packages required by TS projects to dependencies (90c5eb8)
- node: avoid ts-expect-error missed in generated d.ts file (60d9755)
- node: don't transform autorest properties (7982327)
- Node: tread
nameTtl,clientTtlas number (b82c398) - pollForQueryResponse: poll until query is expired (436f4a9)
- sendTransaction: don't fall if
onAccountmissed in AeSdkBase (eebbcb7) - switch to aepp-calldata with fixed decoding of lists (c1a3b24)
12.0.0 (2022-06-17)
⚠ BREAKING CHANGES
General
Universal,RpcAepp,RpcWalletstamps replaced withAeSdk,AeSdkAepp,AeSdkWalletclasses- all combined exports are inlined (
require('@aeternity/aepp-sdk').generateKeyPair()) AccountBaseand inheritors are classes nowChainNode,Contract,Oracle,Aens,Ae,GeneralizedAccountstamps not exported in the root, their methods exported instead
Node and Compiler
Node,Compiler(previouslyContractCompilerHttp) are classes instead of a stampsNode,Compilerdoesn't check version on the first request instead of initgetNetworkIdreturns a promisegetNetworkIdignoresforceoptionapiand static properties are removed inNodeNodereturns BigInts for coin amount fields instead of string or numberNodenot acceptsinternalUrl- removed
mempoolmethod inNode compilerVersionis removed inCompilersetCompilerUrlchanges compiler URL in sync- methods of
Compilerrequiresoptionsobject according to their specification - methods of
Compilerreturns and accepts keys named in camelCase instead of snake_case
Transaction builder
- removed methods to generate a transaction of specific type
- removed ability to generate transaction on the node side
nonce,ttl,gasdecoded and accepted as numbers instead of stringsgasrenamed togasLimitunpackTxnot accepting transaction asBuffer, only as tx-encoded stringunpackTxdoesn't havebinaryfield in result- encode: since the prefix is evaluated by the type itself the required prefix parameter is no more accepted
calculateMinFeereturns BigNumber instead of string- Fee helpers not exported anymore (
BASE_GAS,GAS_PER_BYTE,KEY_BLOCK_INTERVAL,TX_FEE_BASE_GAS,TX_FEE_OTHER_GAS,calculateFee,DEFAULT_FEE) buildRawTx,calculateTtlnot exported anymoreTX_TYPEmapped to tag (number) instead of stringOBJECT_ID_TX_TYPEnot exported anymoreTX_SERIALIZATION_SCHEMAcombined withTX_DESERIALIZATION_SCHEMA- Transaction schemas doesn't contain tag anymore
AENS
computeBidFeeacceptsstartFee,incrementas optionsNAME_BID_TIMEOUTSnot exposed anymorecomputeAuctionEndBlockaccepts and returns height as number- removed
ensureNameValid name.update,name.revokedoesn't accept address inonAccount, only instances ofAccountBase
Oracle
extendOracleTtlaccepts oracle ttl inoracleTtlTypeandoracleTtlValuefieldsdecodemethod ofgetQueryObjectremoved
Contract
createAensDelegationSignatureacceptscontractId,name, optionscreateOracleDelegationSignatureacceptscontractId,queryIdas a property of options- call arguments in
createGeneralizedAccountis required filesystemoption renamed tofileSystem- Contract instance doesn't accept address in
onAccount, only instances ofAccountBase
Chain
- removed
balance,tx,getTxInfomethods
Other
getAccountNonceremovedAeSdkdoesn't accept array of accountsdestroyInstancemethod removedNodePool,AccountMultipleare removed (reimplemented inAeSdk)DENOMINATION_MAGNITUDEnot exposed anymore- The result of
unpackTxreturned instead ofTxObject(intxObjectoption ofonSignhandler on wallet side; intxfield of contract call result) validateKeyObjremovedderiveKeyUsingArgon2idremoved- removed extra implementation of
getAddressFromPrivin keystore genSwaggerClientremoved
Aepp Wallet communication
- BrowserRuntimeConnection, BrowserWindowMessageConnection are classes
- ContentScriptBridge, WalletDetector rewrited to plain functions (
connectionProxy,walletDetector) - RpcClient: removed
originproperty - RpcClient:
sendMessageis a private method - RpcClient:
handlersparameter is removed - RpcClient: doesn't contain aepp info anymore
- RpcClient: doesn't contain
networkIdanymore - RPC helpers are not exposed anymore (
isInIframe,sendMessage,getHandler,message,responseMessage,sendResponseMessage,isValidAccounts)
Aepp
connectToWalletaccepts wallet connection as the first argumentdisconnectWalletruns in sync andsendDisconnectarg removedsendConnectRequestremoved- doesn't accept
connectionanymore - removed
isConnected,isSubscribedAccountmethods signMessagereturns Buffer by default
Wallet
- BrowserRuntimeConnection requires
portparameter - requires
id,typein params getBrowserAPIhelper removedshareWalletInfoaccepts rpcClientId instead of callbackshareNodeargument in accept callback ofonConnectionremoved- can't handle specific set of accounts for an app
txObjectparameter ofonSigncallback is removed- callbacks accepts aeppId, params, and origin
rpcClientsin wallet is not exposed anymoreonDisconnectcallback on wallet side accepts client id instead of RpcClient- wallet can't selectively notify aepps about selecting/adding account
- wallet can't provide metadata for accounts
- removed
action.{accept,deny}in permission callbacks
Features
- aepp: support external accounts in
onAccount(9745c73) - ga: implement buildAuthTxHash function (73eae4e)
- NodeInvocationError: store tx-encoded transaction (a74da7c)
Bug Fixes
- aepp: use networkId in rpc tx signing (916dba0)
- importing in mjs (0fc7418)
- messageToHash: support messages longer than 252 chars (b4aa456)
- wallet: revert to returning complete tx data instead of just hash in rpc wallet signing (c3ada74)
Refactoring with breaking changes
- generate compiler api in TypeScript using autorest (777e990)
- generate node api in TypeScript (5576cf9)
- compiler: init in sync, check version on making request (a7fe956)
- aci: accept onAccount as AccountBase (e816428)
- ae: drop stamps and use plain functions (8ed55d0)
- aepp rpc: accept wallet info separately (baad98e)
- aepp-rpc: depend on simplified version of RpcClient (f329549)
- aepp-rpc: extract common error checks (eaa8683)
- aepp-wallet: rewrite to ts all except rpc (19cb42f)
- AeppRpc: make to init in sync (86c9d6c)
- chain: drop stamps and use plain functions (4197b3d)
- chain: remove deprecated methods (cefaa55)
- compiler: extract genVersionCheckPolicy (ac14fd1)
- don't provide default fee when transaction is not present (b004694)
- drop
ensureNameValid(d0d1258) - drop compiler stamp (ddf1363)
- drop functions to generate txs with specific type (3cf767d)
- drop TxObject wrapper (a083c7b)
- encoder: remove required prefix param (dec13d7)
- export in tree shaking friendly way (40aca86)
- extract all fee-related stuff into a separate module (cebb90b)
- extract base sdk classes (487cc14)
- fix spend types (6b089e7)
- getNetworkId: drop unnecessary
forceoption (7d6549a) - getQueryObject: remove deprecated
decodemethod (7e9835c) - inline NAME_BID_TIMEOUTS into computeAuctionEndBlock (5fdb80e)
- NodeApi: return BigInt instead of string | number (7f37e74)
- node: drop
internalUrl(8336673) - node: rewrite to ts, drop stamp (370635e)
- oracle: drop stamps and use plain functions (04ce814)
- prepareTxParams: inline calculateTtl (2f03793)
- remove ability to connect without sharing node if requested (7dd4af5)
- remove extra
getAddressFromPriv(0f88c39) - remove getAccountNonce (62a00e5)
- remove outdated destroyInstance method (0213375)
- rename
gastogasLimitwhere possible (dece758) - rewrite AE_AMOUNT_FORMATS to enum (448a2a3)
- rewrite ae/contract to ts (8159d84)
- rewrite TX_TYPE to enum (f97e479)
- rpc account: don't pass extra options through rpc connection (141e932)
- rpc-client: add notify method (9e97a1a)
- rpc-client: provide method handlers instead of onMessage (5f1a007)
- RpcClient: remove custom set of accounts (5c26f3a)
- RpcClient: remove origin property (7155ed3)
- rpc: inline extra helpers (9a0a2eb)
- rpc: use webextension-polyfill (a54fdfd)
- simplify transaction schema (5f720ec)
- tests: migrate remaining tests ts (4e2ece7)
- tx schema: add shortInt type for fields not needed big numbers (0095455)
- unpackTx: accept only tx_string, don't return binary (658adee)
- use
calculateMinFeeinstead ofcalculateFee(4ea59d7) - utils: migrate keystore.js to ts (c013c01)
- wallet rpc: don't pass networkId from aepp to wallet (153fd89)
- wallet-rpc: drop
infoobject in RpcClient (010ebbb) - wallet-rpc: remove
meta, conditionunused by known wallets (4630643) - wallet-rpc: return value/throw error instead of accept/deny (98b9955)
- wallet-rpc: rewrite to TypeScript (930e7d7)
- wallet-rpc: simplify callback arguments (5fc6f8a)
- wallet-rpc: store rpc data in maps instead of objects (0d3f04f)
- wallet-rpc: switch to TypeScript version of RpcClient (7d8f6d7)
11.0.1 (2022-04-07)
Bug Fixes
- contract: do not check payable if contract call is init (c09fc0c)
- importing in mjs (01d493b)
- oracle: do not include address for oracle respond signature (ad4bddc)
11.0.0 (2022-03-18)
Request batching: SDK now supports batching transactions
Custom error types: Introduced error types
Naming convention: Instances of the SDK in the examples and tests are now called as aeSdk.
⚠ BREAKING CHANGES
- return empty array instead of throwing UnsignedTxError
- rpc: remove forceValidation flag
- hd-wallet: expect that bip39 used externally
- hd-wallet: remove default export
- crypto: make (encode/decode)Base(58/64)Check private
- use bs58 instead of bs58check
- update rlp to 3.0.0
- tx builder: throw exception if deposit is not zero
- tx schema: remove default NAME_FEE equal to 0
- tx builder: accept unencoded name in nameClaimTx
- spelling of GeneralizedAccount
- aci: remove call/callStatic from deployInfo
- aci: remove createdAt property generated at client
- contract: remove deprecated contractCallStatic
- contract: remove deprecated contractDeploy
- contract: remove contractCompile
- contract: remove deprecated contractCall
- remove deprecated topBlock
- remove unused functions
- contract events: remote contract support
- contract instance: store aci as it is
- wallet-rpc: inline resolveOnAccount helper
- aepp-wallet schema: convert to TS
- aepp-wallet schema: rearrange METHODS enum
- aepp-wallet schema: remove unused enums
- contractCompile: remove encodeCall
- compiler: remove contractEncodeCallDataAPI
- compiler: remove getCompilerVersion
- contract: remove compileContractAPI
- contract: remove contractGetACI
- contract: remove contractDecodeCallDataByCodeAPI
- contract: remove contractDecodeCallDataBySourceAPI
- contract: remove contractDecodeCallResultAPI
- compiler: remove validateByteCodeAPI
- compiler: remove getFateAssembler
- compiler: remove getBytecodeCompilerVersion
- poll: avoid extra transaction info request to node
- drop https scheme workaround for hosted compiler
- node: don't wrap internal endpoints if internalUrl missed
- tx builder: inline VALIDATION_MESSAGE
- decodeEvents: accept event schemas as it is in ACI
- contract: remove already processed fields from decoded events
- aci: drop redundant per-method event decoding
Features
- aci: use dry-run to estimate gas and get rich errors (bb6977d)
- calculate default polling intervals depending on node settings (d9c6cf9)
- chain: combine multiple dry-run requests at one (ddcdaef)
- contract events: ability to resolve multiple definitions of event (c5b77fa)
- contract events: remote contract support (c7599c7)
- createGeneralizeAccount: estimate gas limit instead of using const (da88852)
- decode encode: validate base58 prefix and payload length (e836260)
- error: introduce error types (#1345) (444bb33)
- package: build es version compatible with node (480c747)
- poll: use getCheckTxInPool if available (690db5b)
- swagger: converts operationId in snake case to pascal (e52b739)
- swagger: split transactions by queues to post batch of txs from one account (0023fc7)
- tx builder: accept unencoded name in nameClaimTx (eea92be)
- tx builder: don't require produceNameId to create AENS txs (57ef9c7)
- tx builder: provide default name fee (18e4bab)
- validator: check contractId (5e667a5)
- wallet: add switch for aepp wallet node sharing (b5640d6)
- wallet: enable aepp to wallet node connection (d87e1fa)
- wallet: provide switch for aepp wallet node connection (dfbab59)
Bug Fixes
- aens helpers: improve naming, add additional validations (d2a10e1)
- babel: compatibility with create-react-app (e4b56fe)
- babel: depend on buffer package in es build (0ba51e9)
- babel: don't rewrite import of rlp package for @vue/cli@4.5.15 (0fdd296)
- chain: don't require address function to post transaction (07bc105)
- channel force progress: add missed binary prefixes (78660d2)
- channel: ignore messages that can't be handled, print to console (aaad8e3)
- compatibility: update argon2-browser to version with default export (0e69d8b)
- compatibility: use blakejs that doesn't refer to Buffer (94f1879)
- contract events: don't throw error if events emitted by remote (fa1c569)
- delegate signature: don't encode address depending on onAccount (563a972)
- dry-run: don't combine requests by default (0f36efc)
- error: remove duplicate error message (8b4df9a)
- es: babel build on windows (30f5213)
- keystore: encoding of hex privateKey, simplify tests (9f3ad6b)
- spelling of GeneralizedAccount (21c1dd3)
- tx builder: reject more than 32 pointers (9c06dab)
-
tx builder: throw exception if deposit is not zero (7b3d0e3)
-
aci: drop redundant per-method event decoding (a84d781)
- aci: remove call/callStatic from deployInfo (84d082d)
- aci: remove createdAt property generated at client (406684c)
- aepp-wallet schema: convert to TS (1775e91)
- aepp-wallet schema: rearrange METHODS enum (8a40105)
- aepp-wallet schema: remove unused enums (95bf0e9)
- compiler: remove contractEncodeCallDataAPI (7d02317)
- compiler: remove getBytecodeCompilerVersion (13283be)
- compiler: remove getCompilerVersion (fb929f8)
- compiler: remove getFateAssembler (165d492)
- compiler: remove validateByteCodeAPI (90ba164)
- contract instance: store aci as it is (978225e)
- contractCompile: remove encodeCall (6d0ade5)
- contract: remove already processed fields from decoded events (45bae5f)
- contract: remove compileContractAPI (5ae9c62)
- contract: remove contractCompile (7390629)
- contract: remove contractDecodeCallDataByCodeAPI (2fe798a)
- contract: remove contractDecodeCallDataBySourceAPI (8b13f70)
- contract: remove contractDecodeCallResultAPI (b9fbfa6)
- contract: remove contractGetACI (23ada71)
- contract: remove deprecated contractCall (c079e6e)
- contract: remove deprecated contractCallStatic (1e3ac6d)
- contract: remove deprecated contractDeploy (08e423e)
- crypto: make (encode/decode)Base(58/64)Check private (c151183)
- decodeEvents: accept event schemas as it is in ACI (17b9cc4)
- drop https scheme workaround for hosted compiler (9fc0a02)
- hd-wallet: expect that bip39 used externally (f6243ad)
- hd-wallet: remove default export (951ebb2)
- node: don't wrap internal endpoints if internalUrl missed (50d7bba)
- poll: avoid extra transaction info request to node (22c4838)
- remove deprecated topBlock (4535c07)
- remove unused functions (8c00de5)
- return empty array instead of throwing UnsignedTxError (c6bacdf)
- rpc: remove forceValidation flag (9f958c3)
- tx builder: inline VALIDATION_MESSAGE (defb7e1)
- tx schema: remove default NAME_FEE equal to 0 (9d8339a)
- update rlp to 3.0.0 (bb32b77)
- use bs58 instead of bs58check (32e836b)
- wallet-rpc: inline resolveOnAccount helper (1277b5b)
10.0.0 (2021-12-07)
⚠ BREAKING CHANGES
- crypto: remove unused asymmetric encode/decode functions
- aens: don't limit pointer keys
- specify browserlist to better choice of features to transpile
- aci: don't require source code
- make contractDeploy a wrapper, remove unused code
- inline getConsensusProtocolVersion function
- invert and rename forceCodeCheck option to validateByteCode
- require compiler 6 and above
- make contractCall/Static a wrapper around getContractInstance
- contract instance: thread all extra options as contract's
- contract instance: remove unnecessary
setOptionsfunction - remove contractDecodeData as extra wrapper
- remove contractEncodeCall as extra wrapper
- don't accept ak_ addresses as hash, bytes and signature
- transformation: drop extra wrapper around bindings
- transformation: don't export extra functions
- drop unnecessary skipTransformDecoded option
- drop unnecessary skipArgsConvert option
Features
- aci: don't require source code (5c690d2)
- aens: don't limit pointer keys (f6b8999)
- aens: enable commitmentHash preclaim in tests (5de05e5)
- decode using calldata package (2bb494d)
- encode using calldata package (eeebbd5)
- poll-interval: reduce poll interval to be a more sensible default (9e55b2b)
- support for new node feature next-nonce of release 6.2.0 (#1299) (e40b046)
Bug Fixes
- commitlint issue (2c1cf54)
- compiler errors: construct error message by server response (8621352)
- don't accept ak_ addresses as hash, bytes and signature (cbaac62)
- events: don't require function name for events decoding (f963bdb)
- events: fix event decoding order and address prefix (faad530)
- events: fix test for incorrect address return type (31aaeec)
- events: ignore unknown events in decoding (45795fa)
- node errors: construct error message by server response (d556936)
- semverSatisfies: ignore build number (c3cce0a)
- swagger: detection of empty response (9bfab02)
- contract instance: remove unnecessary
setOptionsfunction (b88e767) - contract instance: thread all extra options as contract's (10fb7ba)
- crypto: remove unused asymmetric encode/decode functions (51def34)
- drop unnecessary skipArgsConvert option (6d4a599)
- drop unnecessary skipTransformDecoded option (bb49239)
- inline getConsensusProtocolVersion function (75f0447)
- invert and rename forceCodeCheck option to validateByteCode (72122fa)
- make contractCall/Static a wrapper around getContractInstance (c4ec019)
- make contractDeploy a wrapper, remove unused code (48d36f9)
- remove contractDecodeData as extra wrapper (5df2285)
- remove contractEncodeCall as extra wrapper (a4b303f)
- require compiler 6 and above (f9cef12)
- specify browserlist to better choice of features to transpile (c2ec71a)
- transformation: don't export extra functions (fa38b40)
- transformation: drop extra wrapper around bindings (9b70f8e)
10.0.0-beta.1 (2021-11-24)
⚠ BREAKING CHANGES
- specify browserlist to better choice of features to transpile
- aci: don't require source code
- make contractDeploy a wrapper, remove unused code
- inline getConsensusProtocolVersion function
- invert and rename forceCodeCheck option to validateByteCode
- require compiler 6 and above
- make contractCall/Static a wrapper around getContractInstance
- contract instance: thread all extra options as contract's
- contract instance: remove unnecessary
setOptionsfunction - remove contractDecodeData as extra wrapper
- remove contractEncodeCall as extra wrapper
- don't accept ak_ addresses as hash, bytes and signature
- transformation: drop extra wrapper around bindings
- transformation: don't export extra functions
- drop unnecessary skipTransformDecoded option
- drop unnecessary skipArgsConvert option
Features
- aci: don't require source code (5c690d2)
- decode using calldata package (2bb494d)
- encode using calldata package (eeebbd5)
- poll-interval: reduce poll interval to be a more sensible default (9e55b2b)
- support for new node feature next-nonce of release 6.2.0 (#1299) (e40b046)
- aens: enable commitmentHash preclaim in tests (5de05e5)
Bug Fixes
- compiler errors: construct error message by server response (8621352)
- events: fix event decoding order and address prefix (faad530)
- events: fix test for incorrect address return type (31aaeec)
- node errors: construct error message by server response (d556936)
- semverSatisfies: ignore build number (c3cce0a)
- commitlint issue (2c1cf54)
- don't accept ak_ addresses as hash, bytes and signature (cbaac62)
- drop unnecessary skipArgsConvert option (6d4a599)
- drop unnecessary skipTransformDecoded option (bb49239)
- inline getConsensusProtocolVersion function (75f0447)
- invert and rename forceCodeCheck option to validateByteCode (72122fa)
- make contractCall/Static a wrapper around getContractInstance (c4ec019)
- make contractDeploy a wrapper, remove unused code (48d36f9)
- remove contractDecodeData as extra wrapper (5df2285)
- require compiler 6 and above (f9cef12)
- specify browserlist to better choice of features to transpile (c2ec71a)
- contract instance: remove unnecessary
setOptionsfunction (b88e767) - contract instance: thread all extra options as contract's (10fb7ba)
- remove contractEncodeCall as extra wrapper (a4b303f)
- transformation: don't export extra functions (fa38b40)
- transformation: drop extra wrapper around bindings (9b70f8e)
9.0.1 (2021-10-04)
Refactoring
- Remove channel from universal stamp (63e88ce74)
9.0.0 (2021-09-30)
⚠ BREAKING CHANGES
- drop following AENS delegation signature methods over the new common
createAensDelegationSignatureimplementation which accepts an object as param (456fe00) delegateNamePreclaimSignaturedelegateNameClaimSignaturedelegateNameTransferSignaturedelegateNameRevokeSignature- drop following oracle delegation signature methods over the new common
createOracleDelegationSignatureimplementation accepts an object param (88b7bf3) delegateOracleRegisterSignaturedelegateOracleExtendSignaturedelegateOracleRespondSignature- drop
assertedType, usedecodeinstead (00d563f) - drop
waitMinedstatic method (2f299de) - tx-validator now gives different, more meaningful, errors (95a2a23)
- no longer exports buildHash function, use hash or buildTxHash (9e1fde7)
- tx-verification is now done by default (989b36f)
Features
payForTransactionmethod (fbf204d)- don't check is GA if innerTx (0ee9db4)
- don't sent to blockchain if innerTx (523e9bb)
- deposit-trap: enforce zero value for
depositduring contract deploy (cfb5f22)
Maintenance
- change default gas limit to 25000 (831e4dd)
Bug Fixes
- AENS: name length minimum bid fee (db6ca4c)
- delegate-signature: stop using the default account in the context of signing (29d760e)
- mustAccountStamp: process accounts only if supplied (10ec2c3)
- swagger https issue (3a876bb)
- tx serialisation: accept unpackTx output produced by deserialisator (ff0b3f5)
8.2.1 (2021-06-21)
Bug Fixes
- swagger file of aeternity's compiler (4001e64)
- swagger file of aeternity's latest compiler (a1caa03)
8.2.0 (2021-06-17)
⚠ BREAKING CHANGES
- crypto: remove outdated generateSaveWallet function
- crypto: remove unused prepareTx, encodeTx, decodeTx functions
- crypto: remove unused hexStringToByte function
- crypto: rename messageToBinary to messageToHash adding hashing
- crypto: drop extra "personal" from message functions
- crypto: remove unused formatAddress function
- crypto: remove unused addressToHex function
- node-pool: inline helpers, export by default
- string: use isAddressValid instead of isAeAddress
- string: remove unused snakeOrKebabToPascal function
- drop outdated protocols and transactions schemas
- drop compatibility with node@5
Bug Fixes
- export aepp-wallet-communication (d5d741c)
- ponyfill
Bufferin browser (953bf08) - ponyfill
processin browser (798ab63) - rlp: import as it is (736b0f5)
- typo name of broadcast failed error generator (ae7e823)
-
examlple-aepp: open only when ready to accept connection (4872eb9)
-
crypto: drop extra "personal" from message functions (34288cb)
- crypto: remove outdated generateSaveWallet function (37298be)
- crypto: remove unused addressToHex function (93f9def)
- crypto: remove unused formatAddress function (a5d4b62)
- crypto: remove unused hexStringToByte function (ed39a76)
- crypto: remove unused prepareTx, encodeTx, decodeTx functions (64d15eb)
- crypto: rename messageToBinary to messageToHash adding hashing (df37004)
- node-pool: inline helpers, export by default (ed1cfb5)
- string: remove unused snakeOrKebabToPascal function (79bdc04)
- string: use isAddressValid instead of isAeAddress (ac7d827)
- drop compatibility with node@5 (f5e2fdb)
- drop outdated protocols and transactions schemas (f18d305)
8.1.0 (2021-05-31)
Bug Fixes
- poi-tx schema: use proper type name (9e7c7b2)
- wait-for-tx-confirm: validate transaction height after awaitHeight (95e0d93)
Features
- support compiler@6.0.0 and above (3cdc7f9)
8.0.0 (2021-05-18)
Bug Fixes
- avoid instanceof between possible not/polyfilled objects (906ee0e)
8.0.0-beta.2 (2021-05-12)
Bug Fixes
- revert conversion of case in calls to compiler (0a69e49)
Maintenance
- avoid ts definitions based on broken JsDoc (572d19f)
8.0.0-beta.1 (2021-05-6)
Important changes
- Iris compatibility (compatible with nodes >= 5.2.0 < 7.0.0)
- initial TypeScript support (not enough type definitions yet)
- documentation is generated using MkDocs on Travis
BREAKING CHANGES
- Drop old aepp-wallet RPC interface (254f5a93)
- refactor: don't retrieve account from process.env (59e5c9b5)
- refactor(crypto): don't reexport RLP methods (c6004bc7)
- refactoring: remove legacy contractDecodeDataAPI compiler method (dfadac8d)
- refactor: rename
forceCompatibilityto more clearignoreVersion(72f1d326) - refactoring: require compiler above or equal to 4.1.0 (c9f48f91)
- RpcClient: Drop unnecessary action stuff (84545fd7)
- Combine RpcWallet and RpcClients (12892002)
- Drop old names support, split ensureNameValid and isNameValid (315a78a9)
- refactor(contract-aci): export single function instead of stamp (091b3282)
- Combine Accounts and Selector into AccountMultiple (0cacd3b3)
- Use swagger-client instead of a custom implementation (4b3260d5)
- Remove OracleNodeAPI wrapper (c6f9a76d)
- Flatten options of contractCallStatic, remove extra dryRunContractTx (f3ffb664)
- txDryRun: Simplify arguments, support
txEventsoption (401c53da) - contracts: Mark handleCallError as private, simplify arguments (bdf76e24)
- import/no-named-as-default linter error (d63e1511)
- oracle: make pollForQueries a sync function (dc955e14)
- chore: drop aevm support and backend (compiler) option (6eb702dd)
- refactor(schema): export enum with consensus protocol versions (e92f187d)
Features
- swagger: allow to provide external specification (683082b3)
- swagger: make compatible with OpenAPI 3 (1d83f1a4)
- switch to v3 endpoints on Iris (eca6697b)
- traverse-keys: add keysOfValuesToIgnore option as a workaround (8ff5afe4)
- Use es modules version in browser if supported (b49c38f0)
- Add typescript support (abde033a)
Docs
- contract: fix default backend value (9fcbeb32)
- wallet-iframe: fix disconnect button (59014bd0)
- examples-browser: rearrange files and docs (985e3b96)
- use relative links between docs pages (d34d8181)
- remove outdated aecrypto example (7df05bfe)
- refactor node examples (e8c443cf)
- changelog: add missed single quote in example (45fd0002)
- resolveName: Document verify option (ca865596)
- Remove outdated docs (cf9c166f)
- decodeTx: Fix arg naming and annotation (883819c0)
- contract-events: Remove outdated contract, update links and markup (37d39d61)
- Update docs/guides/import-nodejs.md (9dc274ed)
- Update docs/guides/import-nodejs.md (93bfce11)
- break down json obj keys necessary for account initialization in nodejs docs (af5ee41d)
- Ignore pycache in the docs folder (9989e8e7)
- Specify the python version more precisely (d6204523)
- Add pycache to .gitignore (f0b7e1f1)
- Add navigation and update some titles (8ad15ced)
- docco template: Remove extra new lines around code, skip extra blocks (65ce3cf1)
- aecontract: Make a list out of a long sentence (8ff7839c)
- aens-usage: Use more semantic markup, compatible with mkdocs (de3d3cd5)
- docs readme: Fix typos and formatting (5b0c790d)
- Add initial mkdocs and readthedocs configuration (b688a96b)
- Extract quick-start to guides (28f7e6f7)
- Update testnet URL (7bb823f8)
- assertedType: Make the last parameter more obvious (50094d3a)
- travis: Build docs to gh-pages (7c935a2b)
- Docs root: Add link to API reference (4a36102d)
- Move outdated disclaimer to the root readme (80a6a663)
- Remove generated docs (fd802b00)
- Fix api docs generation (56e3aa9d)
Code Refactoring
- use BigNumber constructor instead of custom wrapper (4488b4d7)
- avoid extra object nesting (f99d3045)
- compiler: use swagger file (0d821614)
- semver-satisfies: remove extra splitting by dash (35d5c11a)
- remove extra char in regex (37eeefae)
- refactor wallet detector (1bc8d027)
- shareWalletInfo: Don't create unnecessary copy of info (3a4e50b9)
- Inline receive helper that is used once (a4a13889)
- rpc: Inline helpers used once (21903f4d)
- rpc: Prefer default export (70fc3f0f)
- rpc helpers: Remove unused getWindow function (c12b528f)
- don't use AsyncInit where it is not necessary (84373697)
- contract-aci: reuse defaults from Contract stamp (47013962)
- cleanup MIN_GAS_PRICE (a5b28842)
- remove unused option string (0e28af23)
- remove unused dryRunAccount default option (8c42b706)
- Consistent new on Error creation (39f93d3f)
- height: Use a shorter syntax (b013bf9d)
- height: Improve naming of internal promise (7915119a)
- Move source code to "src" folder (ddbce389)
- sign-using-ga: don't pass extra options (44bab6d0)
Bug Fixes
- traverse-keys: add missed null check (7b724b86)
- swagger: add workaround to get transaction details of GAAttachTx (bb7ec479)
- top-block: use getTopHeader on Iris, mark deprecated (2b410257)
- nonce-verification: add missed space (3f244dfb)
- missed aepp id in wallet connect handler (1ed9284a)
- get-node-info: bring url and internalUrl back (e984f3b3)
- contract error decoding (d56931ac)
- contract-aci: don't proxy prepareArgsForEncode from helpers (7e40eda0)
- Improve handling of call error (584eb5e4)
Maintenance
- Use ts-standard instead of standard (be5aece7)
- tsconfig: Set target version to es5 (ed131b1b)
- Fix eslint errors manually (dfe3a05e)
- require node below 7.0.0 (ae1a5ef5)
- require node above or equal to 5.2.0 (ebb36f06)
- update dependencies (d876cff7)
- deps: bump ssri from 6.0.1 to 6.0.2 (e0dfb8c9)
- deps: bump y18n from 4.0.0 to 4.0.1 (9e4acd61)
- deps: bump elliptic from 6.5.3 to 6.5.4 (feb3aa68)
- deps: bump axios from 0.19.2 to 0.21.1 (0f619f27)
- deps: bump ini from 1.3.5 to 1.3.7 (95580324)
- deps: bump highlight.js from 10.4.0 to 10.4.1 (9fcfadfe)
- deps: bump highlight.js from 10.1.1 to 10.4.0 (43aff25f)
- deps: bump node-fetch from 2.6.0 to 2.6.1 (80ed6d70)
- Update node to 5.8.0 (b6ff3422)
- Update .gitignore (1f1563dc)
- add vscode .history folder to gitignore (f4d61df4)
- Update testnet URL in JS files (dc1b807a)
- add Iris consensus protocol (41fd4a13)
- add vsn 2 version of GA_META transaction (b5abe098)
- add new versions of CHANNEL, CHANNEL_CREATE transactions (366981a3)
- support compilers below 6.0.0 (876e5164)
Performance
- Optimize height queries (f74ca4cb)
Tests
- simplify GA tests (7b9628c2)
- oracle: avoid explicit waiting for 1 second (f81cd3a1)
- passing of forceCompatibility flag (6f900b98)
- contract: remove extra backend option (184566f9)
- update channel tests to fate (35a996d8)
- Faster tests (5d629103)
- Extract strings tests into separate file (f3c7d3fa)
- ga: Remove extra await (72bfc746)
- Make tests more precise (fe7a8567)
7.7.0 (2020-08-18)
Features
- transferFunds: Accept onAccount option (#1060)
- bigNumberToByteArray: Avoid unexpected behaviour by throwing exception (#1066)
- example: Add disconnect button on wallet side (#1056)
Code Refactoring
- Use external version of json-bigint (#1033)
- Make tests configuration more flexible (#1037)
- test-else: Exclude aens tests and speedup jobs (#1040)
- Avoid unnecessary eslint-disable (#1043)
- Add lint script (#1045)
- Refactor tests (#1039)
- Refactor bytes unit tests (#1050)
- travis: Run linter and unit tests firstly (#1051)
- Disable Travis on all branches except master, develop (#1054)
- Refactor contract, oracle, chain (#1048)
- Refactor state channels (#1047)
Docs
- Fix typo in Readme.md (#1053)
7.6.0 (2020-07-22)
Features
- wallet-detector: allow to connect wallet to aepp between iframes (3f74a05)
7.5.0 (2020-06-18)
Features
- Account: Build signature from transaction hash (#1025) (2cb8cc2)
- ACI: External contract integration (#1027) (a14d13a)
Refactor
- Deps: Clean up repository (#1029)
- Env: Simplify Travis and docker-compose (#1031)
- Env: Remove unused packages (#1032)
7.4.2 (2020-06-10)
Bug Fixes
Refactor
- AEX-2: Add debug option for
getHandler. Hide unknown message logs (#1021) (22c452c) - Contract Add AENS name resolver for Contract API
7.4.1 (2020-05-30)
Bug Fixes
7.4.0 (2020-05-29)
Bug Fixes
Features
7.3.1 (2020-05-25)
Improvements
- AEX_2: Handle network switch and update state on both sides. Adjust networkId check for signing request. Add node switcher for example apps (#996)
7.3.0 (2020-05-20)
Bug Fixes
Features
- ACI: expose events decoding through Contract ACI stamp (#971) (4930635)
- AEX_2: Allow to connect without node (#991) (87b9ef9)
- AEX_2: Connect to extension from iframe (#992) (47179f7)
- Build: Expose
ACIHelpersandACITransformationto bundle (#970) (8b475e0) - Chain: Add option
allowUnsyncedforpollmethod which allow to depend onget tx/infoAPI (9c80ce0) - Channel: add timeout message handler (#983) (1940a15)
- Channel: Channel force progress (#964) (8f15bef)
- Contract: Add unpacked transaction to contract call with error (#981) (4efd341)
- Node: Add
debugoption to Channel stamp (#967) (68fcba5)
7.2.1 (2020-03-25)
Fix
- build Remove resolving of
minimistusingnpx
7.2.0 (2020-03-24)
Docs
- Guide: Adjust guide for RPC Wallet/Aepp usage
Code Refactoring
- RPC: Refactor rpc-related stuff (#921)
- Build: Include amountFormatter and SCHEMA in bundle(#936)
- Examples Update examples apps
Features
- TX: Introduce new stamp
TxObject(#933) This stamp give more flexibility on transaction serialization/deserialization process - Keystore: Allow to store secret as hex or buffer (#939)
- AEX-2: Add permission layer for account management (#937)
7.1.1 (2020-02-27)
Bug Fixes
7.1.0 (2020-02-25)
Refactor
- AEX: Simplify message id processing (#916). Pass AEEP
originto Wallet callback (#918) - Node: Move
getNetworkIdto helpers (#910) - ACI: Minor ACI validation improvement. Move decoding of events to builder. Add ability to decode events without ACI
Features
- ACI: Implement Contract Events for ACI(Contract Event Guide)
- Contract: Helpers for Oracle and AENS signature delegation(Signature delegation guide)
- AmountFormatter: Rework amount formatter. Change formatter units naming. Add more units (#909) (6970efe)
- TxBuilder: Integrate amount formatter to transaction builder (#897)
- Account: Implement Message Signing (
singMessage,verifyMessage) (#903) - AEX-2: Add
removeRpcClientmethod to RpcClient/RpcWallet stamp's(#912)
7.0.0 (2020-01-31)
Bug Fixes
Features
- Chain: add new method
waitFOrTxConfirm. Add new option { confirm: 3 } to all of high lvl SDK API. Add tests. Adjust docs (#874) (43528f9) - Compiler: Add new compiler methods API (#875) (a939395)
- network: Throw error when can not get networkId (#863) (41b7bd1)
Docs
- Guide Add 7.0.0 migration guide
- Guide: Add Oracle, AENS and Contract guides
BREAKING CHANGES
Please check out 7.0.0 migration guide
This release include all changes from 7.0.0-next.1, 7.0.0-next.2, 7.0.0-next.3
7.0.0-next.3 (2020-01-22)
Features
- aens: implement aensExtendTtl function. Refactor aensUpdate (#866) (72b073a), closes #865
aensUpdatenow accept array of pointersaensUpdatehave new optionextendPointers=falsewhich retrieve pointers from the node and merge with provided - Build: update node to
5.4.0and compiler to4.2.0 - Guide Add guide for
AENSusage
BREAKING CHANGES
- AENS: Change AENS methods arguments
Now all of AENS module methods accept
nameas a first argument instead ofnameId
7.0.0-next.2 (2020-01-10)
Bug Fixes
- codecov: Adjust codecov badge. Move @babel/runtime to dev-deps (#848) (109b851)
- AEX-2: Fix
getBrowserAPIfunction for firefox (#853)
Features
- Account: Add ability to pass
keypairorMemoryAccountas nAccount` option (#847) (75d8ad8) - Test: Increase code coverage (#830) (6f760fb)
- Chain: Extend transaction verification error (#849)
- Aepp<->Wallet: Add tests for Aepp<->Wallet communication (#834)
Documentation
- Guide: Add guide for Contract ACI usage (#852)
7.0.0-next.1 (2019-12-18)
Bug Fixes
- Contract/Chain: Using { waitMined: false } with Contract high lvl API (#828) (475c2aa)
- HdWallet: Fix derive function (#801) (6c6177d)
- Compiler: Filter compiler options
Code Refactoring
- Cross-Node: Remove cross-node compatibility code (#829) (b29a162)
- Chain: Handle time until tx is not added to mempool (#816)
- Git: Update issue template(#806)
- Flavors: Remove deprecated code (#697)
- Test: Increase code covarage (#830) (6f760fb)
Features
- Wallet<->AEPP: Add new Wallet<->Aepp communication API
Add two new stamps
RpcWalletandRpcAeppExample of usage you can find heere: Aepp example and Wallet example
- Wallet: Use
postMessagefor communication with extension wall… (#815) (dc7b4c2) - CI: Move to Travis CI (#809) (2d77f20)
- CI: enable daily builds on latest node and compiler and enable codecov (#820) (3c52a1e)
- ACI: Add check for contract address validity and existence. Add
forceCodeCheckoption for bytecode verification skip (#788) (c0cccc9) - Contract: Add ability to pass arguments or callData for contract
deploy/call/callStaticAPI (#768) (a828076) - Contract: Adjust
feecalculation forcontractCalltx usingFATEbackend (#793) (7254ac1) - Compiler: Add new API
validateByteCodeAPIavailable on compiler >= 4.1.0 (#788) (c0cccc9) - Tx: Always verify transaction before send it to the node (#798) (170f479)
BREAKING CHANGES
- Tx: By default
sdkmake a transactionverification - Node: Change node compatibility range to
node >= 5.0.0 && node < 6.0.0 - Compiler: Drop compiler version to
version >= 4.0.0 && version < 5.0.0 - ACI: Add additional method to RPC communication. Required sdk update on wallet side
Add
getContractByteCodeAPI -
Flavor: Remove deprecated params:
-
remove
urlandinternalUrlinstead usenodes: [ { name: 'NODE_NAME', instance: await Node({ url, internalUrl }) } ] - remove
keypairparams instead useaccounts: [MemmoryAccount({ keypair })] - remove
setKeypairfunction fromAccountstamps
6.1.3 (2019-12-11)
Bug Fixes
- Channel: 5.2.0 compatibility (4be8eb8)
6.1.2 (2019-11-12)
Bug Fixes
- Composition: Chain composition (9ac705f)
6.1.1 (2019-11-12)
Bug Fixes
- ACI: Disable bytecode check for source and code on-chain. This changes will be included in next major release (#783) (fe6021b)
Features
6.1.0 (2019-11-11)
Bug Fixes
- AENS: auction end block calculation (#746) (4c1f5e4)
- AENS: Fix
produceNameIdfunction(Make name lowercase). Enable … (#750) (fd14225) - state channels: wait for connection to be established before sending generic message (#723) (c5f35d1)
- TxHelpers: Use BigNumber in auction end block calculation (777c012)
Features
- ACI: Add validation for contractAddress (#764) (07cb0e7)
- AENS: Add nameFee validation to TxValidator (#765) (5250e75)
- AENS: Increase default nameTtl (#775) (c5f2582)
- Contract: Add ability to pass arguments or callData for contract
deploy/call/callStaticAPI (#768) (12aaca3) - Http: Assign error object to http error (#770) (87062ea)
- state channels: add round method (#763) (c950937)
- state channels: allow off chain updates to be cancelled with custom error code (#753) (ae4426e)
- state channels: allow to pass metadata to transfer update (#755) (ddc6611)
- state channels: make state channels compatible with node v5.0.0… (#688) (deed7fc), closes #632 #653 #658 #660 #680 #693 #687
- state channels: make state channels compatible with node v5.1.0… (#776) (74952aa)
6.0.2 (2019-10-31)
Bug Fixes
- name claim: Revert ignoring waitMined from user passed options (#727)
6.0.1 (2019-10-29)
Bug Fixes
6.0.0 (2019-10-16)
Code Refactoring
Features
- State Channels: make state channels compatible with node v5.0.0… (#688) (23936f5), closes #632 #653 #658 #660 #680 #693 #687
- AENS: Change tld for Lima from
aettochain(#714) (323ef6a) - AENS: Implement name
bidfunction (#706)) - AENS: auction name fee calculation. Name fee validation and calculation in
claim/bid(#706) - AENS: Add
nameIdcomputation function (#709) (#706)
BREAKING CHANGES
- AENS: Change
tldfor Lima from.aetto.chain
5.0.0 (2019-10-04)
Bug Fixes
Code Refactoring
Features
- AENS: Add ability to spend by name (#682) (0d43804)
- AENS: Add ability to claim contract, oracle, SC (#671) (49fd0fd)
- GA: enbale GA (#692) (eded912)
- Lima: Lima compatibility (#683) (a88042e), closes #632 #653 #658 #660 #680 #693 #687
- AENS auction support
- compiler 4.0.0 support
- node 5.0.0 support
- SDK use
FATEfor contract by default - AE: Add pointers verification for spend by name
BREAKING CHANGES
- aci: Change Sophia option type representation in ACI
// from
await contract.methods.optionFn(Promise.resolve(1) || Promise.reject());
// to
await contract.methods.optionFn(1 || undefined);
5.0.0-next.1 (2019-09-10)
Bug Fixes
Features
- Contract/ACI Add
payablefeature - Compiler: Compiler 4.0.0 compatibility (#632) (d5f1632)
- Contract/ACI: Add ability to use contract with external namespaces(
include "someLib") (#653) (9708b43)
4.7.0 (2019-09-11)
Features
- Oracle: Add methods for polling queries #637
- Chain: Add
getBalancemethod (#655) (15147af) - state channels: add reconnect method (#662) (9d8d1e8)
- state channels: add backchannel updates test#664
4.6.0 (2019-08-28)
Bug Fixes
- Compiler: Fix
forceCompatibilityoption (26beba8)
Features
- Lima: add preliminary support for lima
- ACI/Contract: Implement static-call for deploy transaction for ACI methods/Contract low lvl API (#630) (5b7eeb4)
Notes
GA support has been disabled until further notice due to node compatibility issues This version support aeternity node up to 5.0.0-rc.1
4.5.1 (2019-08-22)
Refactor
- Example Add node info to AEPP (#620)
Bug Fixes
- GA Fix GA account composition (211e409)
4.5.0 (2019-08-20)
Bug Fixes
- Crypto: Fix
keypairverification (#605) (83a52fb) - RPC: Remove NodePool stamp from AE composition (#612) (21af2eb)
- state channels: add missing argument in onOnChainTx callback (#604) (165cfe8)
- state channels: fix awaitingOnChainTx state handler (#608) (8b7b65a)
- Swagger: Always throw error from
axioserror handler (#607) (0e5cf61)
Features
- MemoryAccount: Add validation of keypair (#594) (b8c2b20)
- state channels: handle BigNumbers with json-bigint (#596) (14eaa3d)
- state channels: send generic messages immediately (#600) (8ad7583)
- Generalize Account Implement Generalized account support (#449)
const authContract = `YOUR_AUTH_CONTRACT`
// Make current account Generalized
await client.createGeneralizeAccount(authFnName, authContract, [...authFnArguments]
// Make spend transaction using GA
// One Way
// encoded call data for auth contract
const callData = 'cb_...'
await client.spend(10000, receiverPub, { authData: { callData } })
// or
// sdk will prepare callData itself
await client.spend(10000, receiverPub, { authData: { source: authContract, args: [...authContractArgs] } })
4.4.0 (2019-08-09)
Bug Fixes
- Package: update commander to version 3.0.0 (#597) (9aaa05c)
- Contract: Fix dry-run without account (227fc5c)
Features
- Contract: add ability to use call-static/dry-run without keyPair (#577) (c38edd9)
- AE: Add ability to make operation on specific account using
onAccountoption.Exm: await client.spend(1, receiver, { onAccount: 'PUBLIC_KEY' }) Add `onAccount` to `AENS`, `Contract`, `Oracle`. Add tests for using specific account to Contract, ACI, Account. - JSON:: Add serialization to JSON for bigNumbers
- MemoryAccount: Add validation of
keypair(#594) (b8c2b20) - State Channels: persist connection by pinging every 10 seconds (#571) (a70f919)
4.3.0 (2019-08-05)
Bug Fixes
- State Channels: Fix onChainTx event params (#566) (11c85eb)
- State Channels: Fix websocket url (#558) (33c1fd8)
- Swagger: Pass query params in case of get request (#570)
Code Refactoring
- State Channel: Do not include white space for outgoing websocket messages (#559)
Features
- ACI: Implement sophia
varianttype (#567) (8505dcf) - Contract: add ability to use call-static/dry-run without keyPair (#577) (c38edd9)
- NodePool: Implement NodePool stamp (#574) (674166c)
- State Channel: make state channel compatible with aeternity@4.0.0 (#568) (0d0e09b)
- TxBuilder: Add helper for producing tx hash (#579) (e1b405e)
- AE Make all AE stamps composed with Accounts (#581)
Docs
- ACI Add some additional clarification to
getContractInstance
4.2.0 (2019-07-15)
Bug Fixes
- package: update libsodium-wrappers-sumo to version 0.7.5 (#541) (956ed75)
- rpc-server: Fix type 'object' check (#526) (48c42e4)
Code Refactoring
- swagger: Speedup initialisation
- AENS: Remove unused param from claim method
- AENS: Fix exception if not waiting for mining(claim)
- Test: Add test for contract namespaces
Features
- Node: Add 4.0.0 node compatibility
- Compiler: Add compatibility with compiler 3.2.0
- Channel: Implement GA awareness of State Channels
4.1.0 (2019-06-22)
Bug Fixes
- Node: Do not throw error if
internalUrlnot provided. Instead useurl(#503) (053faae) - TXBuilder: Fix payload serialization if you try to unpack and pack tx. (#498) (73552e5)
- TxValidator: Fix validation of state channel open transaction (#496) (325cc90)
Features
- ACI: Refactor ACI module. Split to separated files. (#505) (fb7bc00)
- Selector: If default account
addressnot provided use the first - ACI: Handle ACI without init function
- ACI: Automatically decide to send transaction on-chai or call-static.
Add
optionsobject like last arguments of generate fn underinstance.methodsconst instance = await client.getContractInstance(source) // Deploy contract await.contract.init(100, 'test', options) //or await.contract.deploy([100, 'test'], options) // Call function const result = await instance.call('sum', [2, 5], options) // // Automatically decide to send tx on-chain or call-static(dry-run) base on if function stateful or not const result = await instance.methods.sum(2, 5, options) // Manually make on-chain const result = await instance.methods.sum.send(2, 5, options) // Manually make call-static const result = await instance.methods.sum.get(2, 5, options) //
Docs
- Usage:: Add instructions about how to include directly the
SDKin ahtml page
4.0.1 (2019-06-13)
Bug Fixes
- RPC: Add contract contractDecodeCallResultAPI to RPC (#482) (7eb6bd8)
- README: Fix flavor link (#480)
Code Refactoring
- Compiler: Fix compiler compatibility mechanism (#479) (78cc990)
- Utils: Move json-bigint implementation to
utils(#486) (1538867)
Build
- webpack: Add another bundle(
dist/aepp-sdk.browser-script.js) for using in<script>tag (#485)
4.0.0 (2019-06-12)
Bug Fixes
- Ae: Fix exception when it used without Contract stamp
Code Refactoring
- SCM: Update compatibility range for node: 3.0.1 - 4 and compiler 3.1.0 - 4 (#474) (a1494fd)
- Test: Simplify client creation
Features
- Docs chore(Docs): new docs (#370)
- Compiler: Add
getCompilerVersionto compiler stamp - ACI: Make compatible with compiler 3.1.0 (#457) (d92f2c7), closes #458
- ACI: Generate JS function proto for each of contract function (#439) (2f47b4d)
- Compiler/ACI: Make ACI compatible with compiler 3.0.0 (#441) (2a8eb1a)
- Node: Avoid usage of "universal-url" package (#434) (a8268d5)
- TX: encode payload as base64 (#460) (ad490af)
- TX_BUILDER: Fix bug related to contract fee calculation. (#472) (7214cfb)
BREAKING CHANGES
- DOCS Restructure and rework sdk documentation
- SCM: This change will make the release not compatible with older version of the node and compiler
- ACI: Change Contract low lvl API:
- change
contractDecodeDatainterface from:(type:String, data: String) => Anyto(source: String, fn: String, callValue: String, callResult:String) => Any. (callResultiscallTypefrom call result, can beok,revert, ...)
3.4.1 (2019-06-05)
Bug Fixes
- Deps: Update axios lib to 0.19.0 due to security issue (f951765)
3.4.0 (2019-05-22)
Bug Fixes
Features
- Transaction Builder: Improve min fee calculation(Reduce the fee) (#424)
- AXIOS: Add ability to intercept error from axios (#431)
Added additional param to sdk initialization
axiosConfigExample:
Universal({ axiosConfig: { config: { // axios config object }, errorHandler: (err) => throw err }})
- Transaction Builder: Implement vm/abi validation for contract/oracle tx based on consensus protocol version. Add custom verification based on transaction type (#425) (#426)
3.3.0 (2019-05-17)
Bug Fixes
- AEP exampe: Fix contract in AEPP example (e2fec19) fix(AEP exampe): Fix contract in AEPP example
Features
- Consensus: Add function to get consensus version. (#413) (46027cd)
- State Channels: Make state channels compatible with aeternity 3.0.0 (#415) (668e7f1)
- Transaction Builder: Add serializations for transactions introd… (#416) (fd7b8ce)
BREAKING CHANGES
- NODE Change compatibility from
2.3.0to3.0.0
3.2.1 (2019-05-16)
Bug Fixes
- Joi: Add
JOIbrowser comparability
3.2.0 (2019-05-16)
Bug Fixes
- ACI: Add ability to pass zero address as number. (#396) (b5b5c61)
- ACI: Fix address type transformation when decoding data (#335) (e37cdfc)
- Contract: Add error handling(decoding) in low lvl contract API (#386) (e1fdce0)
- Dependencies: Use URL class instead of "url" package
- Dependencies: Use custom version of json-bigint
- Dependencies: Avoid usage of semver package and cleanup deps
- RPC: rpc client: Handle case if aepp opened without wallet
- Channels: Fix state channel test's
Features
- KEYSTORE: Add browser compatibility
- TX: Handle VM/ABI fields serialization and validation basaed on tx type and node version
- ACI: Add
contract,address,recordtypes argument/result transformation (#349) (0599d7d) - WEBPACK: webpack configs: Mark all dependencies as external
- WEBPACK: Setup webpack-bundle-analyzer plugin
- ACI: Add
Optionsophia type to ACI (#390) (83f5279) - ACI: Implement arguments validation for generic sophia types(list, map, tuple, record) (#384) (956e59e)
- ACI: Update due to compiler API changes (#331) (e047f3b)
- AE: Allow to spend % of balance. (#371) (f97a2ae), closes #336
- Aepp: Add Compiler to Aepp rpc methods. Update example app (#312) (9c72521)
- Aepp: Refactor Aepp example app. Allow to spend with payload and add reverse iframe approach.
- Compiler: Add decode CallData by source/bytecode (#354) (761f36b)
- Fortuna: Node 3.0.0 compatibility (#397) (17b78d5)
- RPC: Add
getNodeInfoto AEPP stamp through RPC (#359) (2ddeea8) - State Channels: Add cleanContractCalls method (#338) (778159a)
- State Channels: Ping every 10 seconds to persist connection (#324) (6d0e156), closes #276 #299 #300 #303 #302 #279 #275 #276 #299 #300
- State Channels: Remove endpoint param (#391) (8d9ea7e)
BREAKING CHANGES
- State Channels: Endpoint param is removed and no longer defaults to "/channel". This means that "/channel" (or other path) must be appendend to url para
3.1.0 (2019-04-24)
Bug Fixes
Features
- ACI: Add
contract,address,recordtypes argument/result transformation (#349) (0599d7d) - ACI: Update due to compiler API changes (#331) (e047f3b)
- Aepp: Add Compiler to Aepp rpc methods. Update example app (#312) (9c72521)
- Compiler: Add decode CallData by source/bytecode (#354) (761f36b)
- RPC: Add getNodeInfo and getNetworkId to AEPP stamp through RPC (#359) (2ddeea8)
- State Channels: Add cleanContractCalls method (#338) (778159a)
- State Channels: Ping every 10 seconds to persist connection (#324) (6d0e156)
3.0.0 (2019-04-17)
Bug Fixes
Features
- TX_BUILDER: Channel tx serializations
- TxValidator: Add minGasPrice validation to contract transactions
- ACI: Update due to compiler API changes (#331) (e047f3b)
- Aepp: Add Compiler to Aepp rpc methods. Update example app (#312) (9c72521)
- State Channels: Add cleanContractCalls method (#338) (778159a)
BREAKING CHANGES
- ACI Remove 2.0.0 compiler compatibility
2.4.1 (2019-04-17)
Features
- ACI: Add transform decoded data for 'address' type
- AEPP: Add Compiler to Aepp rpc methods. Update example app
- Channel: Add call contract static support
- Channel: Add get contract state support
- Channel: Get full channel state support
- DOCS: Adjust ACI, Contract and Usage
Bug Fixes
- HTTP: Handle no response in http stamp error handler
- Crypto: Fix crypto
formatAddress - Crypto: Move ADDRESS_FORMAT to crypto
BREAKING CHANGES
- Channels:
channel.state()now returns offchain state instead of last co-signed offchain transactionchannel.update(...).statehas been renamed tosignedTxchannel.withdraw(...).statehas been renamed tosignedTxchannel.deposit(...).statehas been renamed tosignedTxchannel.leave().statehas been renamed tosignedTxchannel.createContract(...).statehas been renamed tosignedTxchannel.callContract(...).statehas been renamed tosignedTx
2.4.0 (2019-04-17)
Features
- Chore: Install and configure
commitizen - Crypto: Add
formatAddressfunction toCrypto - Contract: Add Contract Compiler API stamp to
es/contract(now using instead contract node API) - Utils: Add basic
httpclient stamp (es/utils/http) - Contract: ACI stamp (New Contract interface base on contract ACI schema)
const contractIns = await client.getContractInstance(contractSourceCode) console.log(contract) { interface: String, // Contract interface source code aci: String, // Contract interface json schema source: String, // Contract source code compiled: String, // Compiled contract code deployInfo: { address: contractAddress } // Object with deploy transaction, // Function compile: () => this, // Compile contract, deploy: (init = [], options = { skipArgsConvert: false }) => this, // Deploy contract (compile before if needed) call: (fn, params = [], options = { skipArgsConvert: false, skipTransformDecoded: false, callStatic: false } => CallRersult: Object // Call contract function } - Account: Extend
Account.address()withaccountFormatternow you can do
export const ADDRESS_FORMAT = {
sophia: 1, // return address like `0xHEX_ADDRESS`
api: 2, // return address like `ak_9LJ8ne9tks78hTD2Tp571f7w2MJmzQMRsiZxKCkMA2d2Sbrc4`
}
//
export { ADDRESS_FORMAT } from 'es/account'
await account.address(format: ADDRESS_FORMAT) // default ADDRESS_FORMAT.api
- Channel: Improve channel rpc usage
- Channel: Improve channel tests and error handling
- Channel: Improve state channel params handling
- Chain: Add ability to get
account/balanceon specific blockhash/height - Universal: Add
{ compilerUrl }toUniversal, Contract, Walletstamp initialization
Bug Fixes
- Contract: decode node error coming from contract
callandcallStatic - Chain: Throw native error instead of object in chain
chain.sendTransaction - Crypto: fix arguments parsing in
Crypto.sing - Crypto: Fix
name hashfunction arguments parsing inCrypto
BREAKING CHANGES
- Contract: Remove
ContractNodeAPIstamp - Contract: Change Contract stamp API
1) Use Compiler instead of node API for encode/decode call-data and compile. 2) Change Contract interface: - contractCallStatic (address, abi = 'sophia-address', name, { top, args = '()', call, options = {} } = {}) -> (source, address, name, args = [], { top, options = {} } = {})) - contractCall (code, abi, address, name, { args = '()', options = {}, call } = {}) -> (source, address, name, args = [], options = {}) - contractDeploy (code, abi, { initState = '()', options = {} } = {}) -> (code, source, initState = [], options = {}) - contractEncodeCall (code, abi, name, args, call) -> (source, name, args) // 'source' is -> Contract source code or ACI interface source
2.3.2 (2019-03-04)
Features
- Contract: Change default
gasPricefrom1e6to `1e9z - AEPP: Fix
AEPPexample app - Build: Force
imagepull beforebuilds
2.3.1 (2019-02-22)
Features
- Oracle:
Oraclefee calculation - Tx:
getAccountNoncefunction totxstamp - TX_BUILDER: Change
FEE_BYTE_SIZEfrom 1 to 8 bytes infeecalculation - TX_BUILDER: Improve error handling in
txbuilder
2.3.0 (2019-02-22)
Features
- Node:
Minervacomparability - Utils:
Mnemonicwallet implementationes/utils/hd-wallet - Oracle: Change Channel
legacyAPI toJSON RPC - Oracle: Change default
gasPriceto1e6 - Oracle: Change
minFeecalculation, multiply min fee by1e9
BREAKING CHANGES
- Node: Change supported node version range to
1.4.0 <= version < 3.0.0 - This release contain changes from: 2.3.0-next, 2.2.1-next, 2.1.1-0.1.0-next, 2.1.0
2.3.0-next (2019-02-21)
Features
- Channel:
channelwithdrawanddepositmethods - TX_BUILDER: Change default
gasPriceinContractstamp andTxstamp to1e9 - TX: Fix
contracttxfeecalculation - Chain: Refactor error handling in
sendTransactionfunction - Contract: Change default
gasPriceto1e9 - TX_BUILDER: Change
Feebyte_size to 1
2.2.1-next (2019-02-21)
Feature
- TX_BUILDER: Add
deserializationschema forChanneltransactions(channelCreate,channelCloseMutual,channelDeposit,channelWithdraw,channelSettle) - Chain: Add
rawTxandverifyTxto error from poll function(when you wait for transaction will mined) - Chore: Depend on
bip39from npm instead of git repo - Channel: Change Channel
legacyAPI toJSON RPC - TX_BUILDER: Change
minFeecalculation, multiply min fee by 10^9
2.1.1-0.1.0-next (2019-02-21)
Bug Fixes
- Chore: Fix linter errors
2.1.0 (2019-02-21)
Features
- Node:
Minervacomparability - Utils: Add
Mnemonicwallet implementationes/utils/hd-wallet
BREAKING CHANGES
- Node: Change supported node version range to
1.4.0 <= version < 3.0.0
2.0.0 (2019-02-21)
Features
- TX_BUILDER: Add
unpackedTx,txTypeandsignaturetovalidatetransaction function - Contract: Add
topparam to contractstatic call(dry-run) - Contract: Add errors handling for
dry-run - Docs: Add
keystoredocs - Ae: Add
verifyoptions tosendfunction which verify tx before broadcasting and throw error if tx is invalid - Rpc: Add
dryRuntoRPCmethods - Rpc: Add
Oracletransaction creation toAepprpc - Docs: Add
tx builderdocs - Docs: Add doc's for
utils/bytesand tx builderschema - TX_BUILDER: refactor
calculateFeefunction inTxBuilder(use BigNumber) - TX_BUILDER: Extend response of
Oracle,Aens,ContratwithrawTx - Ae: Change response of
sendfunction now it's and object with transaction data(hash, rawTxHash, ...) - Chain: Move
ContractandOracleAPI wrapper's toChainstamp - Chore: Rename
epochinCHANGELOG,README,HACKING
Bug Fixes
- Rpc:
RpcServer: Avoid storing ofwindowininstanceproperties - Chain: Disable
balance formattingby default - Chain: Move
verification of transactiontochainstamp - Node: Retrieve
nodeversion from/api - Chore: Fix unpack tx example in
bin/aecrypto.js - Chore: Remove unused function's from
crypto.js
BREAKING CHANGES
- TX: Remove old transaction builder
es/tx/js.js(Please usees/tx/builderinstead) - Chore: Rename
es/epoch.jstoes/node.js - Chore: Rename
Oracle,Contract,ChainAPI wrapper files fromepochtonode - Chore: Rename
Contractapi wrapper method's
1.3.2 (2019-02-01)
Features
- Ae: Add
destroyInstancefunction toAestamp which remove all listeners for RPC event's - Docs: Add docs for
TransactionValidatorandTxBuilderstamp's - Build: Add
TxBuilderHelperto bundle - Chore: Contract call static now using
dry-runAPI - Test: Improve test's for Transaction verification
Changed
- Docs: Adjust doc's for
ContractandAensstamp's - Chore: Fix decoding of address from contract call
1.3.1 (2019-01-29)
Features
- Build: Remove KeyStore from bundle due to build issue(for now you can export it only using tree-shaking
import * as Keystore from '@aeternity/aepp-sdk/utils/keystore')
1.3.0 (2019-01-29)
Features
- Channel: Add support for State Channels
- TX_BUILDER: New transaction builder going through schema(build, unpack)
- TX_VALIDATOR: Add new stamp
TransactionValidatorwhich can verify your transaction - Chore: Rename epoch to aeternity node(docker configs, some docs)
- Tx: Use new tx builder in TX stamp
- Contract: Set default values for amount and deposit to 0 for
contracttransaction - Rpc: Improve RPC server
Notes and known Issues
- Old transaction builder
es/tx/js.jswill be removed in next major release.
1.2.1 (2018-12-21)
Features
- Chain: amount formatter
- Chain: amount format balance
client.balance('AK_PUBLICKEY', { format: true }) - Aepp: Oracle and Contracts API to Aepp stamp
- Chore: Use
prepareinstead ofpostinstall-build(thanks @davidyuk) - Docs: Refreshed Docs: README.md + docs/usage.md
Bug Fixes
- Chr: Fix Import RLP package (thanks @davidyuk)
- Rpc: Fix for NetworkId propagation and override
- Tx: TxJS is not a stamp anymore, and instead: it exports helper functions
BREAKING CHANGES
- Tx: TxJs stamp (not a stamp anymore)
- Chain: balance now answer a formatted string composed of
AMOUNT + ' ' + unit(eg.10 exafor 10 AE)
Notes and known Issues
- Chore:
10 exashould be10 ae - Chain: format shouldn't be a flag, but a request for
uniteg.{ format:ae}
1.1.2 (2018-12-15)
Feature
- Chore: isAddressValid check
- Tx: Tx Fee formulas
Bug Fixes
- Rpc: Fixed networkId propagation (and overriding on init of Flavors)
- Crypto: Fixed encodeBase58Check by feeding Buffered input
BREAKING CHANGES
- Chore: Compatibility with Node >= 1.0.0 and <= 1.1.0
1.1.1 (2018-12-11)
Features
- Rpc: Added a command to remove images after CI testing
Bug Fixes
- Rpc: Fix Testing
- Rpc: Fixed Oracle error for Wallet flavor
1.1.0 (2018-12-11)
Features
- Oracle: Oracles functionality and flavor
- Aepp: Simple example of aepp-in-aepp (see
/examplesfolder)
Bug Fixes
- Tx: Fixed issue with big numbers and
TX
1.0.1 (2018-11-30)
Features
- Node: ability to support Node range(s) using semver package (see https://www.npmjs.com/package/semver#ranges)
BREAKING CHANGES
- Node: Support for Node >= 1.0.0 and < 2.0.0
1.0.0 (2018-11-30)
Features
- Contract: Contract native Transactions
Bug Fixes
- BigNumber: Rolled back to bignumbers.js for easier fix with axios.get/post
BREAKING CHANGES
- Node: Support for Node < 1.0.0
- Build: New NETWORK_ID (also used in docker/sdk.env for CI tests)
- Protocol: Encoding of transaction (and other objects) changed from base58check to base64check
Notes and known Issues
- Channel: State Channels have been excluded for problems with CI, will be included in next release
0.25.0-0.1.1 (2018-11-30)
Notes and known Issues
- Chore: See [0.25.0-0.1.0]
0.25.0-0.1.0 (2018-11-30)
Features
- Utils Parsing of
feeusingbignum.js - Account Add
networkIdas param toAccountflavor(default:ae_mainnet) - Tx Implement native build of
AENStransaction. - Keystore Update keystore for new requirements
BREAKING CHANGES
- CLI AE CLI and AE PROJECT CLI moved to separate repos and packages
- Node Support for < 0.25.0
0.25.0-0.1.0-next (2018-11-30)
Features
- Contract Contract type checked call (Ability to call contract using contract address)
- Contract Use ES methods instead of Ramda, where possible
Bug Fixes
- Contract Fixed keystore by adding a salt param for derivedKey function
Breaking Changes
- Contract Support for < 0.25.0
- Contract Aens use domain
.testinstead of.aet(see here) - Contract Use NETWORK_ID for signing (see here)
0.24.0-0.2.0 (2018-10-30)
Features
- Rpc RPC Client improvements
- Rpc
onContractGuard - CLI born
- CLI
Hostparameter becameUrl. (-ufor hostname,-Ufor internal) - CLI New keystore following these specifications: https://www.pivotaltracker.com/n/projects/2124891/stories/155155204
BREAKING CHANGES
- Chore The
Cliflavor is nowUniversal - Chore the keypair keys changed from
{ pub, priv }to{ publicKey, secretKey }for consistency with other systems using them (eg. AirGap and HD Wallet)
Notes and known Issues
- Chore CLI and AE PROJECT CLI will move to a separate package
0.24.0-0.1.0 (2018-10-23)
Features
- Node Full support of Node-0.24.0
- CLI Develop
decode base58address command incryptomodule - CLI Add
nonceparam to all tx command's - CLI Add
gasparam todeployandcallcommands - Tx Add ability to create
spendtransaction natively - Keystore Implement
ethereum keystoreusingAES-126-CTRandSCRYPTas key derivation function - CLI Change
--privateKeytoflagonACCOUNT ADDRESScommand - Build Change
node versioninDockerfile - Node API endpoints to meet new Node specifications
- Chore Update
doccoconfig and changerenamepackage torecursive-rename - Docs Improved documentation
BREAKING CHANGES
- Node Support for < 0.24.0
- Keystore
ethereum keystoreusage will be removed in the next release - CLI CLI will move to a separate package
0.22.0-0.1.0-beta.1 (2018-10-02)
Features
- CLI Add CLI implementation
- Crypto nameId function for commitment hash calculations
- Node API endpoints to meet new Node specifications
- Tx Add Nonce calculation on SDK side
- Contract Add check for MAX_GAS in call and deploy contract
- Chore change hash prefix separator from $ to _
- Chore Add keywords ('SDK', 'CLI') to package.json
- CLI Link aecli to
./bin/aecli.jsin package.json (After "npm link" you can use CLI globally) - Aens Wait until pre-claim transaction block was mined before send claim transaction
- Build Updated
webpack,webpack-cliand added new dev deps accordingly - Node Add Node Compatibility Check
Bug Fixes
- Crypto Fixes commitment hash calculations in naming system, to be
Hash(nameId(name) + name_salt)instead ofHash(Hash(name + name_salt)).
BREAKING CHANGES
- Node Support for < 0.22.0
0.18.0-0.1.1 (2018-07-31)
Features
- Docs Lots of new documentation (prose and API)
- Docs Fancy badges to README
- Build Transitive dev dependencies for standard-loader not covered by pnpm
- Build CI Dockerfile to include pnpm
- Docs Fancy-shmancy diagram in README
- DocsGenerated documentation files since they are linked in static docs
- Build Switch from Yarn to pnpm for building
- Docs Structure of documentation
- Docs Generate Markdown from Docco
0.18.0-0.1.0 (2018-07-24)
Features
- Node Support for Node 0.18.0 (changed endpoints)
- RPC Wallet/Aepp RPC support
- Contract Contract call result decoding support
- Docs Per-module API documentation (Markdown based on JSDoc)
- Docs More API documentation (still incomplete)
- Build SDK entrypoint factories (in
/es/ae/universal.js) - Build Module load path (src -> es)
- Chore Lower mining rate (5s) in docker-compose
Bug Fixes
- Crypto Symmetric key encryption/decryption
BREAKING CHANGES
- Node Support for < 0.18.0 (changed endpoints)
0.15.0-0.1.0 (2018-06-12)
Features
- Node Legacy Swagger file loading
- Node Compatibility with < 0.15.0
Bug Fixes
- Contract Contract unit state initialization
- Node Missing required parameter for name transfers (workaround for Swagger file bug)
0.14.0-0.1.0 (2018-06-11)
Features
- API New, opinionated top-level API
- API Rest of legacy API now uses new API as well
- API Generated API now encapsulated in
apiobject - API Automatic case conversion for remote parameter names
- API Remaining tests to use new API
- API Adapted new method of obtaining transaction hash, breaks compatibility (see below)
Bug Fixes
- API [GH-49]: Handle existing path components correctly
BREAKING CHANGES
- API Remove Oracle API (for the time being)
- API Remove Legacy API and tests
- API Remove Compatibility with older versions of Node which provide the transaction hash the old way
0.13.0-0.1.1 (2018-05-24)
Features
- Node Switch to curve ed25519 (from secp256k1) to align with Node protocol changes
- Node Generate basic API directly from Swagger files, also validate input data
- Build Compiled library now self-contained with all dependencies
- Build Use Webpack 4 based cross-platform (Node/Web) compilation
- Docs Package description now reads
SDK for the æternity blockchain - Chore Authors are now taken from
AUTHORSinstead ofpackage.json - Docs Moved code examples from README to separate file in docs
BREAKING CHANGES
- Node Defunct scripts; will be brought back later
Bug Fixes
- Chore More consistent code examples