/
onflow.org
Flow Playground

Unreleased

  • YYYY-MM-DD BREAKING? -- description

0.0.68-alpha.10 - 2021-03-05

  • 2021-03-05 -- Additional Configuration

    • app.detail.title -- the title of the application
    • app.detail.icon -- url for an icon image for the application
    • service.OpenID.scopes -- register interest for scopes to be returned by the wallet

New configuration works like older configuration:

import * as fcl from "@onflow/fcl"

fcl
  .config()
  .put("app.detail.title", "My Great Application")
  .put("app.detail.icon", "https://avatars.onflow.org/avatar/dapp")
  .put("service.OpenID.scopes", "email email_verified name")

All OpenID data returned should be considered optional. For the time being it will be visable as a service in the current user, but in the future we will provide additional ways to subscribe and access this data.

Info on what could be there is specified in OpenID Connect Spec in particular under 2.4 Scope Values and 2.5 Standard Claims.

Wallets are not expected to implement the open-id service, and if they do we suggest best practice is for wallets to allow the account owner to decide what information is shared (all, none, somewhere in between), for stable applications we also highly recommend you do not depend on a wallet returning this info for a given user.

As always with services, an example of the data they are supposed to return can be found in their normalization file: normalize/open-id.js

0.0.68-alpha.9 - 2021-03-02

  • 2020-03-02 -- VSN @onflow/sdk 0.0.45-alpha.9 -> 0.0.45-alpha.10

0.0.68-alpha.[7..8] - 2021-03-02

  • 2021-03-02 -- Authn now uses frame mechanism from Authz flow.

    • This is in prep for sending config details to wallet during handshake.
    • Enables standardized FCL:FRAME:CLOSE message for closing frame
    • Introduces a new standardized response FCL:FRAME:RESPONSE for wallets to pass the final response back.
    • (EXPERIMENTAL) Introduces a new standardized open response FCL:FRAME:OPEN for wallets that need to escape the iframe in web browser
    • This is backwards compatible with older versions of the FCL wallet spec, but will not be included in V1 release.
  • 2021-03-02 -- Introduced new config discovery.wallet. This will eventually replace challenge.handshake.

    • Current implementation will look for discovery.wallet first and then fallback onto challenge.handshake.
    • This is backwards compatible with older version of FCL, but will not be included in V1 release.

New Wallet AUTHN Flow will now look like this:

FCL                         Wallet
 |                            |
 |-------[Render Frame]------>|
 |                            |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[OPTIONAL READY FLOW]
 |<----[FCL:FRAME:READY]------|  // Enables wallet to receive
 |----[APP DETAILS/NEEDS]---->|  // Application specific details/needs
 |     [handles details]------*
 |                            |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[OPTIONAL TAB FLOW] (EXPERIMENTAL)
 |<----[FCL:FRAME:OPEN]-------|  // Some authentication flows cant
 |------[Open Tab]----------->|  // Be handled in an iframe
 |                            |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[GOLDEN AUTH PATH]
 |<----[FCL:FRAME:RESPONSE]---|
 *-------[handles auth]       |
 |-------[Close Frame]---X    |
 |--------[Close Tab]----X    |
 |                            |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[CANCEL AUTH PATH]
 |<----[FCL:FRAME:CLOSE]------|
 |-------[Close Frame]---X    |
 |--------[Close Tab]----X    |
 |                            |

FCL:FRAME:OPEN payload needs to look like this:

{
  "type": "FCL:FRAME:OPEN",
  "endpoint": "https://google.com"
}

The opened tab (web view in something like Unity/iOS?) will not be responsible for sending the Final FCL:FRAME:RESPONSE or FCL:FRAME:CLOSE messages (this will need to be the frame), but FCL will attempt to close the tab one authn is complete.

0.0.68-alpha.[1..6] - 2021-02-02

  • 2021-02-02 -- Adds support for new GetEvents, GetBlockHeader, GetBlock, GetTransaction interactions.

0.0.67 - 2021-01-14

  • 2021-01-14 -- General Cleanup

0.0.67-alpha.43 - 2020-12-11

  • 2020-12-11 -- Disables setting keyId in fetch signatures

0.0.67-alpha.42 - 2020-12-11

  • 2020-12-11 -- VSN @onflow/sdk-send 0.0.9 -> 0.0.10
  • 2020-12-11 -- VSN @onflow/sdk-resolve 0.0.9 -> 0.0.10
  • 2020-12-11 -- VSN @onflow/sdk-account 0.0.7 -> 0.0.8

0.0.67-alpha.41 - 2020-12-08

  • 2020-12-08 -- FIX: issue with multi-sig from same account (@boczeraturl)

0.0.67-alpha.[36..40] - 2020-12-03

  • 2020-12-03 -- Updates @onflow/send -- This includes some fixes involving how signatures are added to transaction rpc calls
  • 2020-12-03 -- FIX: fcl.serialize respects injected resolver propoerly.
  • 2020-12-03 -- Prep for Resolver extraction.

0.0.67-alpha.[19..35] - 2020-11-26

  • 2020-11-26 -- pre-authz golden path tested on testnet with dapper
  • 2020-11-26 -- Early exit HTTP/POST so that it can work like an HTTP/RPC
  • 2020-11-26 -- added an alias from HTTP/RPC to HTTP/POST
  • 2020-11-26 -- additional pre-authz debuging in current user
  • 2020-11-26 -- service-endpoint includes l6n as window.location.origin

0.0.67-alpha.18 - 2020-11-26

  • 2020-11-26 -- pre-authz flatmaps exec-services response

0.0.67-alpha.17 - 2020-11-23

  • 2020-11-23 -- pre-authz flow executed
  • 2020-11-23 -- fcl.serialize now accepts custom resolver

0.0.67-alpha.16 - 2020-11-20

  • 2020-11-20 -- Rough in pre-authz flow

0.0.67-alpha.[7..15] - 2020-11-19

  • 2020-11-19 -- Experimental IFRAME/RPC strategy

0.0.67-alpha.6 - 2020-11-19

  • 2020-11-19 -- IFRAMES can be closed with an {type: "FCL:FRAME:CLOSE"} postMessage

0.0.67-alpha.5 - 2020-11-19

  • 2020-11-19 -- Auto replace known cadence addresses
  • 2020-11-17 -- Auto resolve sequence number for proposer if its not there

Example references this contract: Testnet Profile Contract

// Config fcl with contract addresses
// Their config key must start with `0x`
fcl.config()
  .put("env", "testnet")
  .put("0xProfile", "0x1d007d755506c469")

// Your transactions can now look like this
await fcl.send([
  fcl.proposer(fcl.authz),
  fcl.authorizations([fcl.authz])
  fcl.payer(fcl.authz),
  fcl.limit(35),
  fcl.args([
    fcl.arg("Bob", t.String),
  ]),
  fcl.transaction`
    import Profile from 0xProfile

    transaction(displayName: String) {
      prepare(account: AuthAccount) {
        account
          .borrow<&{Profile.Owner}>(from: Profile.privatePath)!
          .setDisplayName(displayName)
      }
    }
  `
])

// Your scripts can now look like this
await fcl.send([
  fcl.args([
    fcl.arg("0xba1132bc08f82fe2", t.Address),
  ]),
  fcl.script`
    import Profile from 0xProfile

    pub fun main(address: Address): Profile.ReadOnly? {
      return Profile.fetchProfile(address)
    }
  `,
]).then(fcl.decode)

0.0.67-alpha.4 - 2020-11-17

  • 2020-11-17 -- Fix small issues involving NPM

0.0.67-alpha.3 - 2020-11-17

  • 2020-11-17 -- Fix issue where validation for composite signature for keyId of zero was counted as false

0.0.67-alpha.2 - 2020-11-17

  • 2020-11-17 -- Injected in a custom resolver in prep for pre-authz service

0.0.67-alpha.1 - 2020-11-17

  • 2020-11-17 -- Added fcl.account
  • 2020-11-17 -- Added fcl.reauthenticate
  • 2020-11-17 -- Added fcl.authz
  • 2020-11-17 -- Added fcl.signUp
  • 2020-11-17 -- Added fcl.logIn
// fcl.account - A convenience function for fetching an account
/* old */ await fcl.send([fcl.getAccount("0x1d007d755706c469")])
/* new */ await fcl.account("0x1d007d755706c469")

// fcl.reauthenticate - Logs the current user out before attempting to authenticate again
await fcl.reauthenticate()

// fcl.authz - alias for fcl.currentUser().authorization
await fcl.send([
  fcl.transaction(txCode),
  fcl.proposer(fcl.authz),
  fcl.payer(fcl.authz),
  fcl.authorizations([fcl.authz]),
])

// fcl.signUp and fcl.logIn - Currently these alias fcl.authenticate, eventually they will pass additional context to the wallets
await fcl.signUp()
await fcl.logIn()

0.0.67-alpha.0 - 2020-11-17

  • 2020-11-17 -- VSN @onflow/sdk-latest-block 0.0.2 -> 0.0.3
  • 2020-11-17 -- VSN @onflow/sdk-account 0.0.2 -> 0.0.3
  • 2020-11-17 -- VSN @onflow/sdk-send 0.0.3 -> 0.0.5

0.0.66 - 2020-11-09

  • 2020-11-09 -- Adds a handshake mechanism to exec-authz-service to allow clients to request signable message when ready

0.0.65 - 2020-11-04

  • 2020-11-05 -- sansPrefix required addresses

0.0.64 - 2020-11-04

  • 2020-11-04 -- VSN @onflow/sdk-send 0.0.2 -> 0.0.3

0.0.63 - 2020-11-04

  • 2020-11-04 -- VSN @onflow/sdk-resolve 0.0.3 -> 0.0.4

0.0.62 - 2020-10-29

  • 2020-10-29 -- Fixed an issue regarding fetching transaction statuses

0.0.61 - 2020-10-28

  • 2020-10-28 -- VSN @onflow/sdk-decode 0.0.0 -> 0.0.1
  • 2020-10-28 -- VSN @onflow/sdk-build-authorizations 0.0.0 -> 0.0.1
  • 2020-10-28 -- VSN @onflow/sdk-latest-block 0.0.0 -> 0.0.2
  • 2020-10-28 -- VSN @onflow/sdk-account 0.0.0 -> 0.0.2
  • 2020-10-28 -- VSN @onflow/sdk-send 0.0.0 -> 0.0.2
  • 2020-10-28 -- VSN @onflow/sdk-resolve 0.0.0 -> 0.0.3
  • 2020-10-28 -- Added in persistSession config flag (defaults to true)

0.0.61-alpha.5 - 2020-10-08

  • 2020-10-08 -- ADD PROXY latestBlock exports directly to @onflow/sdk-latest-block
  • 2020-10-08 -- ADD PROXY account exports directly to @onflow/sdk-account
  • 2020-10-08 -- PROXY send export directly to @onflow/sdk-send
  • 2020-10-08 -- PROXY decode export directly to @onflow/sdk-decode
  • 2020-10-08 -- VSN @onflow/decode 0.0.7 -> 0.0.8
  • 2020-10-08 -- VSN @onflow/sdk-build-get-account 0.0.0 -> 0.0.1

0.0.61-alpha.4 - 2020-10-07

  • 2020-10-07 -- remove resolvers and replace with @onflow/sdk-resolve

0.0.61-alpha.3 - 2020-10-07

  • 2020-10-07 -- remove use of sdk
  • 2020-10-07 -- use @onflow/sdk-resolve-ref-block-id package directly

0.0.61-alpha.2 - 2020-10-07

  • 2020-10-07 -- VSN @onflow/sdk-resolve-signatures 0.0.0 -> 0.0.1
  • 2020-10-07 -- VSN @onflow/sdk 0.0.35 -> 0.0.37

0.0.61-alpha.1 - 2020-10-07

  • 2020-10-07 -- proxy to packages directly instead of via sdk
  • 2020-10-07 -- allow for authn iframe to be closed by content

0.0.60 -- 2020-10-05

  • 2020-10-05 -- iframe feature policy allows usb on all contexts

0.0.59 -- 2020-09-29

  • 2020-09-29 -- VSN @onflow/sdk 0.0.31 -> 0.0.35
  • 2020-09-29 -- use @onflow/sdk-resolve-validators package directly
  • 2020-09-29 -- use @onflow/sdk-resolve-signatures package directly
  • 2020-09-29 -- use @onflow/sdk-resolve-accounts package directly

0.0.58 -- 2020-09-29

  • 2020-09-29 -- use @onflow/sdk-resolve-arguments package directly

0.0.57 -- 2020-09-29

  • 2020-09-29 -- add a z-index value to service frame
  • 2020-09-29 -- resolveParams -> resolveCadence

0.0.56 -- 2020-09-04

  • 2020-09-04 -- Fixed some issues involving FCL talking to iframes

0.0.55 -- 2020-09-04

  • 2020-09-04 -- Wallet Provider Services

0.0.54 -- 2020-09-03

  • 2020-09-03 -- Authn and Authz iframes allow usb feature policy.

0.0.53 -- 2020-08-26

  • 2020-08-26 -- @onflow/sdk VSN 0.0.30 -> 0.0.31
  • 2020-08-20 -- Adds Authorization Function Documentation

0.0.52 -- 2020-08-18

  • 2020-08-18 -- Authorization persists using local storage (this isnt the final solution, but creates the experience we want for now)
  • 2020-08-18 -- authn and authz iframes are now full width and height
  • 2020-08-18 -- Fixed an issue where unauthenticating the currentUser wasnt clearning the address on the user
  • 2020-08-18 -- Added two new util functions fcl.withPrefix and fcl.sansPrefix

0.0.51 -- 2020-08-14

  • 2020-08-14 -- fcl.tx(resp).once* throw errors when statusCode is non-zero, errors can be suppressed (previous behaviour) py passing {suppress: true} to the .once* function.
  • 2020-08-14 -- fcl.tx(resp).subscribe(callback) callback will only be called when the status is different to what it was before.

0.0.50 -- 2020-08-14

  • 2020-08-14 -- Fixeds some small bugs due to typos

0.0.49 -- 2020-08-13

  • 2020-08-13 -- Adds export of fcl.events(eventKey).subscribe(callback)

0.0.48 -- 2020-08-13

  • 2020-08-13 -- Removed resolveSequenceNumber from default resolver

0.0.47 -- 2020-08-13

  • 2020-08-13 -- @onflow/config VSN 0.0.1 -> 0.0.2
  • 2020-08-13 -- @onflow/util-actor VSN 0.0.1 -> 0.0.2
  • 2020-08-07 -- Adds resolvers resolveRefBlockId and resolveProposerSequenceNumber to fcl resolve.

0.0.46 -- 2020-07-27

  • 2020-07-27 -- VSN @onflow/sdk 0.0.28 -> 0.0.30

0.0.45 -- 2020-07-22

  • 2020-07-22 -- deprecate fields on CurrentUser data structure

0.0.44 -- 2020-07-22

  • 2020-07-22 -- added tx(r).onceFinalized() and tx(r).onceExecuted.
  • 2020-07-22 -- added tx.isFinalized(txStatus) and tx.isExecuted(txStatus).

0.0.43 -- 2020-07-21

  • 2020-07-21 -- VSN @onflow/sdk 0.0.27 -> 0.0.28

0.0.42 -- 2020-07-20

  • 2020-07-20 -- Convert config and actor to use external @onflow/confg and @onflow/util-actor

0.0.41 -- 2020-07-13

  • 2020-07-13 -- VSN @onflow/sdk 0.0.26 -> 0.0.27

0.0.40 -- 2020-07-09

  • 2020-07-09 -- Bring in resolveSignatures fix from SDK that passes arguments to the encoder function

0.0.39 -- 2020-07-09

  • 2020-07-09 -- Expose fcl.args and fcl.arg
  • 2020-07-09 -- Bring in resolveSignatures fix from SDK that deals with signatures better
  • 2020-07-08 -- Updates FCL's resolve implementation according to the new resolvers available in the SDK.
  • 2020-07-08 -- VSN @onflow/sdk 0.0.23 -> 0.0.24

0.0.38

  • 2020-06-23 -- Added fcl.serialize

0.0.37 -- 2020-06-04

  • 2020-06-04 -- VSN @onflow/sdk 0.0.22 -> 0.0.23

0.0.36 -- 2020-06-03

  • 2020-06-03 -- VSN @onflow/sdk 0.0.21 -> 0.0.22

0.0.35 -- 2020-05-15

  • Rerelease because funky build

0.0.34 -- 2020-05-15

  • 2020-05-15 -- VSN @onflow/sdk 0.0.20 -> 0.0.21

0.0.33 -- 2020-05-07

  • 2020-05-07 -- VSN @onflow/sdk 0.0.19 -> 0.0.20

0.0.32 -- 2020-05-07

  • 2020-05-07 -- add .npmignore with src/

0.0.31 -- 2020-05-07

  • 2020-05-07 -- VSN @onflow/sdk 0.0.17 -> 0.0.19

0.0.30 -- 2020-05-07

  • 2020-05-07 -- Created and exposed a top level tx function
  • 2020-05-07 -- actor spawn now excepts an object of handlers
  • 2020-05-07 -- Moved common actor logic into actor (where, all)
  • 2020-05-07 -- Exposed fcls actor registry to window

0.0.29 -- 2020-05-06

  • 2020-05-06 -- Fixed an issue with custom decoders
  • 2020-05-06 -- Leverage named imports to enable better tree shaking
  • 2020-05-06 -- Proxy @onflow/sdk through fcl to enable single import
  • 2020-05-06 -- VSN @onflow/sdk 0.0.16 -> 0.0.17
  • 2020-05-05 -- VSN @onflow/sdk 0.0.15 -> 0.0.16
  • 2020-05-05 -- Update resolvers based on sdk update
  • 2020-05-05 -- VSN @onflow/sdk 0.0.14 -> 0.0.15 Breaking Change
  • 2020-04-29 -- authn challenge response no longer locks to handshake origin
  • 2020-04-28 -- fcl.user(addr).info() does a send([getAccount(addr)]) returning the account
  • 2020-04-23 -- fcl.authenticate() renders iframe for config: challenge.handshake

0.0.28 -- 2020-04-20

  • 2020-04-20 -- VSN @onflow/sdk 0.0.12 -> 0.0.14
  • 2020-04-20 -- Remove @onflow/send in favour of @onflow/sdk

0.0.27 -- 2020-04-18

  • 2020-04-18 -- VSN sdk 0.0.4 -> 0.0.5
  • 2020-04-18 -- VSN sdk 0.0.11 -> 0.0.12
  • 2020-04-18 -- VSN jest 25.1.0 -> 25.3.0
  • 2020-04-18 -- VSN microbundle 0.11.0 -> 0.12.0-next.8

0.0.26 -- 2020-04-17

  • Pre Changelog